Разработки проекта PuppyRus > Разработка PFS и Initrd

Файловая система (и соответственно FULL ОС) полностью в RAM (решено)...

(1/10) > >>

Harzah2:
Сделал (для дистрибутива на основе Debian) возможность загрузки полностью в ОЗУ. Сам код я брал из статей в интернете, 2011 и 2015 годов. Всё работает, но меня интересует возможность сделать так же, только для Gentoo, кто поможет разобраться? Моя заметка на эту тему.

Разница в том, что Debian использует mkinitrd, а Gentoo - dracut или genkernel. Куда можно положить похожий код, не могу понять. Или может есть какой-то альтернативный вариант поместить всю систему в память?

Способ:
1. В файле /usr/share/initramfs-tools/scripts/local ищем на строках 179-185 (предварительно сделав бэкап файла):

--- Код ---
checkfs "${ROOT}" root "${FSTYPE}"

# Mount root
# shellcheck disable=SC2086
if ! mount ${roflag} ${FSTYPE:+-t "${FSTYPE}"} ${ROOTFLAGS} "${ROOT}" "${rootmnt?}"; then
panic "Failed to mount ${ROOT} as root file system."
fi

--- Конец кода ---
И меняем этот код на такой:

--- Код ---
#checkfs "${ROOT}" root "${FSTYPE}"

# Mount root
# shellcheck disable=SC2086
mkdir /ramboottmp
mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} /ramboottmp
mount -t tmpfs -o size=100% none ${rootmnt}
cd ${rootmnt}
cp -rfa /ramboottmp/* ${rootmnt}
umount /ramboottmp

--- Конец кода ---
2. Сохраняем файл. И вводим команду в терминале от рута:

--- Код ---
mkinitramfs -o /boot/initrd.img-ramboot

--- Конец кода ---
3. Проверяем, что файл создан в папке /boot и возращаем старый local в папке  /usr/share/initramfs-tools/scripts/local на место (или удаляем все наши изменения, которые мы сделали в шаге 1).
4. Идём в папку /etc и находим файл fstab, сохраняем его копию и редактируем его, ищем в первых строках что-то вроде этого:

--- Код ---
UUID=35378150-4a4b-4405-b856-c5f533a971e2 / ext4 defaults 1 1

--- Конец кода ---
и меняем на:

--- Код ---
none / tmpfs defaults 0 0

--- Конец кода ---
5. Сохраняем и идём в папку /boot/grub, находим grub.cfg и изменяем (предварительно сохранив копию) эти строки 106-121:

--- Код ---
menuentry 'MX 19.2 patito feo, with Linux 4.19.0-12-amd64' --class mx --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19.0-12-amd64-advanced-35378250-4a4b-4405-b956-c5f546a970e2' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd2,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd2,msdos3 --hint-efi=hd2,msdos3 --hint-baremetal=ahci2,msdos3  35378250-4a4b-4405-b956-c5f546a970e2
else
  search --no-floppy --fs-uuid --set=root 35378250-4a4b-4405-b956-c5f546a970e2
fi
echo 'Loading Linux 4.19.0-12-amd64 ...'
linux /boot/vmlinuz-4.19.0-12-amd64 root=UUID=35378250-4a4b-4405-b956-c5f546a970e2 ro  quiet hush
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.19.0-12-amd64
}

--- Конец кода ---
на тот код, что находится ниже, то есть, просто добавляем ещё одно меню, немного видоизменённое в названии и на строчке initrd (для других систем, этот код меню, естественно, будет другой, но те изменения, которые сделали мы, будут те же самые):

--- Код ---
menuentry 'RAMBOOT' --class mx --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19.0-12-amd64-advanced-35378250-4a4b-4405-b956-c5f546a970e2' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd2,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd2,msdos3 --hint-efi=hd2,msdos3 --hint-baremetal=ahci2,msdos3  35378250-4a4b-4405-b956-c5f546a970e2
else
  search --no-floppy --fs-uuid --set=root 35378250-4a4b-4405-b956-c5f546a970e2
fi
echo 'Loading Linux 4.19.0-12-amd64 ...'
linux /boot/vmlinuz-4.19.0-12-amd64 root=UUID=35378250-4a4b-4405-b956-c5f546a970e2 ro  quiet hush
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-ramboot
}
menuentry 'MX 19.2 patito feo, with Linux 4.19.0-12-amd64' --class mx --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19.0-12-amd64-advanced-35378250-4a4b-4405-b956-c5f546a970e2' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd2,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd2,msdos3 --hint-efi=hd2,msdos3 --hint-baremetal=ahci2,msdos3  35378250-4a4b-4405-b956-c5f546a970e2
else
  search --no-floppy --fs-uuid --set=root 35378250-4a4b-4405-b956-c5f546a970e2
fi
echo 'Loading Linux 4.19.0-12-amd64 ...'
linux /boot/vmlinuz-4.19.0-12-amd64 root=UUID=35378250-4a4b-4405-b956-c5f546a970e2 ro  quiet hush
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.19.0-12-amd64
}

--- Конец кода ---

Второй способ:
Тут.

sfs:

--- Цитата: Harzah2 от 29 Октябрь 2020, 08:40:36 ---возможность загрузки полностью в ОЗУ
--- Конец цитаты ---
http://wiki.puppyrus.org/setups/start#frugal_initrd В большинстве live дистров такой функционал "из коробки"

--- Цитата: Harzah2 от 29 Октябрь 2020, 08:40:36 ---Разница в том, что Debian использует mkinitrd
--- Конец цитаты ---
Можете подсунуть любой инитрд от любого дистра с copy2ram. Только модули ядра поменяйте на свои или используйте наши или porteus ядра с монолитными ФС и пр.
Только он после этого сам обновляться не будет при смене ядра и т.п.

--- Цитата: Harzah2 от 29 Октябрь 2020, 08:40:36 ---Gentoo - dracut
--- Конец цитаты ---
http://wiki.puppyrus.org/soft/uird

Чем нравится гента? Пересобрать ВСЕ полностью можно в любом дистрибе. А смысл? Пересобрать только некоторые проги не достаточно?
В том же арче в aur , вроде рецептов сборки побольше , чем в генту


--- Цитата: Harzah2 от 29 Октябрь 2020, 08:40:36 ---Моя заметка на эту тему
--- Конец цитаты ---
Для каких задач, если не секрет, у Вас 20gb RAM ?  ;)

В итоге :
1. Не изобретайте велосипед. Есть куча готовых решений. Подключайтесь к работе над наиболее Вам подходящим
2. Не надо переоценивать copy2ram
3. Не теряйтесь. Заинтересованные люди, способные что-то делать с результатом очень нужны нашему форуму

Harzah2:

--- Цитата: sfs от 29 Октябрь 2020, 09:35:25 ---Можете подсунуть любой инитрд от любого дистра с copy2ram.
--- Конец цитаты ---
Хм, надо попробовать.


--- Цитата: sfs от 29 Октябрь 2020, 09:35:25 ---Чем нравится гента? Пересобрать ВСЕ полностью можно в любом дистрибе. А смысл?
--- Конец цитаты ---

Calculate нравится. Стабильностью, пакетами, да и вообще удобно в нём, настраивается всё так, как мне надо и удобно. Большой репозитарий. Компилировать как раз и не обязательно, так как в основном всё бинарное идёт, а компиляция нужных мне программ не такая уж и долгая. Также нравится, что из коробки нет systemd и можно настроить ALSA или Pulseaudio.

Пробовал неоднократно тот же MX Linux, Debian, Ubuntu, но они все ломаются периодически, надо заново перестанавливать на новый раздел. А Calculate живёт столько, сколько живёт твой жёсткий диск. PuppyLinux тоже пробовал и мне он нравится. Но невозможность убрать всё из Puppy мне не нравится. То есть, я хочу чистый Линукс, без всяких дополнительных утилит, которые невозможно удалить, но вместе с тем, чтобы он нормально работал.Например, в Calculate есть CLS, вообще без графических утилит, но с иксами. Пользуясь USE-флагами я могу собрать то, что мне надо и это будет совместимо с Calculate Linux, то есть я также смогу удалять и устанавливать программы. Более того, мне кажется для Puppyrus оверлеи Генту - это именно то, что нужно, чтобы одновременно иметь и большой выбор программ и свои настройки...

Арч мне разонравился, так как они изменили своей идеологии (KISS), впихнув в дистрибутив systemd, монстра, который не нужен и содержит в себе то, что не должно быть в системе инициализации дистрибутива. Также то, как его продвигают и впихивают везде вызывает отторжение и желание от него избавиться.


--- Цитата: sfs от 29 Октябрь 2020, 09:35:25 ---Для каких задач, если не секрет, у Вас 20gb RAM ?
--- Конец цитаты ---
В основном для виртуальных машин. Если запущены несколько, то нужно много оперативной памяти. Плюс, я присматриваюсь к Qubes OS. Но так как он пока на Fedora основан (а в ней всё тот же systemd), то буду ждать каких-нибудь кастомных сборок или изменения дистрибутива по умолчанию в Qubes OS.


--- Цитата: sfs от 29 Октябрь 2020, 09:35:25 ---Не изобретайте велосипед. Есть куча готовых решений. Подключайтесь к работе над наиболее Вам подходящим
--- Конец цитаты ---
Да есть. И если бы в Puppyrus Linux было возможно создать свой чистый iso (без папирусовских утилит) и можно было бы подключить репозитарий Calculate, я бы выбрал такой Puppyrus. Просто сохранёнка, XFCE, работа полностью в RAM. Мне, по сути не так много нужно. Вы делаете большую работу, создавая отдельный дистрибутив, создаёте свои ядра и программы. Почему вы не посмотрите на готовые решения? Тот же AppImage позволит использовать программы и не надо создавать отдельный репозитарий своих программ. Более того, эти программы загружались бы где угодно.


--- Цитата: sfs от 29 Октябрь 2020, 09:35:25 ---Не надо переоценивать copy2ram
--- Конец цитаты ---
Я не переоцениваю, на самом деле. Просто это на самом деле удобно, быстро, безопасно и полностью имеешь контроль над системой. Что удалять, что сохранять всё в твоих руках, так как копия файлов расположена на HDD.


--- Цитата: sfs от 29 Октябрь 2020, 09:35:25 ---Не теряйтесь. Заинтересованные люди, способные что-то делать с результатом очень нужны нашему форуму
--- Конец цитаты ---
Да я, как-бы, давний пользователь этого форума. Просто больше читаю, потому и захожу редко. А так, наблюдаю за развитием Puppyrus. Помню ещё пользовался вашим дистрибутивом SFSLinux (самоделка).

krasnyh:

--- Цитата: sfs от 29 Октябрь 2020, 09:35:25 ---http://wiki.puppyrus.org/soft/uird
--- Конец цитаты ---

--- Цитата: Harzah2 от 29 Октябрь 2020, 11:23:00 ---Calculate нравится.
--- Конец цитаты ---
Пробовал Funtoo запустить с uird, фулл. Привлекла эта система подсобранными сборками под субархитектуру процессора (core2, intel64-skylake...).
Плюс на выбор для каждого процессора три вида сборок:

--- Цитата ---Выбор stage3 для ...
    stage3 является более традиционной, минимальной и неграфической установкой Funtoo. YЗатем вы соберете свою систему до желаемого состояния, используя emerge.

Выбор gnome для...
    gnome установочного образа, если таковой имеется, включает в себя полную среду GNOME, а также Firefox уже оптимизированый для вашего оборудования. После установки вы можете продолжить дальнейшую настройку системы.

Выбор lxd для...
    Образ lxd предназначен для использования с LXD и не используется для установки непосредственно на настольный компьютер или ноутбук, поэтому вам не следует выбирать этот вариант для обычных установок.
--- Конец цитаты ---

Но что-то не пошло. Uird отработал, а дальше... курсор мигает и не понятно, то ли копирует систему в память, то ли еще что.


Может betcher глянет, как будет время, что там не работает.
Моя запись в menu.lst:

--- [ Читать далее ] ---
title ▒▒ Funtoo  UIRD загрузка FULL  чистый режим + конфиг: legacy + uird.shutdown + uird.preinit
root (hd0,2)
set d=funtoo
set k=kernel-debian-sources-lts-x86_64-4.19.132
kernel /%d%/boot/%k% uird.basecfg=legacy uird.from=/dev/sda3;/%d%::FORCE=yes::TIMEOUT=3 uird.shutdown uird.preinit uird.union=overlay
initrd  /%d%/boot/uird.funtoo.cpio.xz
--- Конец цитаты ---

sfs:

--- Цитата: Harzah2 от 29 Октябрь 2020, 11:23:00 ---невозможность убрать всё из Puppy мне не нравится. То есть, я хочу чистый Линукс, без всяких дополнительных утилит, которые невозможно удалить,
--- Конец цитаты ---
Это вы пишете про классический puppy - woof. Вроде, там тоже есть ремастеринг
Там сейчас есть целая линейка дистров с apt - DebianDog
Ну и мои дистры все с ПакетнымМенеджером. Можете пересобрать

--- Цитата: Harzah2 от 29 Октябрь 2020, 11:23:00 ---USE-флагами
--- Конец цитаты ---

--- Цитата: Harzah2 от 29 Октябрь 2020, 11:23:00 ---оверлеи Генту
--- Конец цитаты ---
Слабо знаком с Генту. Можно подробнее

--- Цитата: Harzah2 от 29 Октябрь 2020, 11:23:00 ---Арч мне разонравился, так как они изменили своей идеологии (KISS), впихнув в дистрибутив systemd
--- Конец цитаты ---
http://forum.puppyrus.org/index.php?topic=23018.0

--- Цитата: Harzah2 от 29 Октябрь 2020, 11:23:00 ---если бы в Puppyrus Linux было возможно создать свой чистый iso (без папирусовских утилит)
--- Конец цитаты ---
Я же выше написал - как это сделать.
Ну или универсально  : распаковываете нужный дистр + chroot + ПМ добавить \ удалить
Ядро (с AUFS или  overlayfs) и инитрд - любые с сохраненкой и copy2ram

--- Цитата: Harzah2 от 29 Октябрь 2020, 11:23:00 ---AppImage позволит использовать программы и не надо создавать отдельный репозитарий своих программ
--- Конец цитаты ---
http://forum.puppyrus.org/index.php?topic=20026.msg134598#msg134598

--- Цитата: Harzah2 от 29 Октябрь 2020, 11:23:00 ---эти программы загружались бы где угодно.
--- Конец цитаты ---
Это не так. Нередко либ не хватает

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии