Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

soft:porteus-initrd [2020/01/31 12:40]
127.0.0.1 внешнее изменение
soft:porteus-initrd [2023/02/14 14:46] (текущий)
sfs [from=]
Строка 8: Строка 8:
   *лог загрузки /var/log/porteus-livedbg   *лог загрузки /var/log/porteus-livedbg
   *очень быстро грузится   *очень быстро грузится
-  *не содержит либ ядра (при смене ядра не надо пересобирать). Ядро нужно с вкомпиленной поддержкой файловых систем.+  *не содержит модулей ядра (при смене ядра не надо пересобирать). Ядро нужно с вкомпиленной поддержкой файловых систем. С версии 221224 можно [[soft/porteus-initrd?&#аналог_udev|любые ядра]]
   *база строится из любого количества модулей лежащих в /porteus/base. Слои по алфавиту. Верхний zzz*. Верхний слой AUFS - это который перекрывает файлы нижнего   *база строится из любого количества модулей лежащих в /porteus/base. Слои по алфавиту. Верхний zzz*. Верхний слой AUFS - это который перекрывает файлы нижнего
     *В pra-porteus изменен порядок слоев [[http://wiki.puppyrus.org/setups/aufs|AUFS]] загружаемых модулей. 08*.pfs 09*.pfs всегда в верхнем слое     *В pra-porteus изменен порядок слоев [[http://wiki.puppyrus.org/setups/aufs|AUFS]] загружаемых модулей. 08*.pfs 09*.pfs всегда в верхнем слое
   *загрузка всех или указанных модулей в память    *загрузка всех или указанных модулей в память 
   *выполнение после загрузки указанных скриптов   *выполнение после загрузки указанных скриптов
-  *сохраненка на девайс, в папку или файл (можно зашифровать)+  *сохраненка на раздел носителя, в папку или файл (можно зашифровать)
   *автозагрузка перечисленных модулей  //extramod=/mnt/sdb3/porteus-modules ; extramod=/mnt/sdb3/porteus-modules;/mnt/sdc4/inkscape_modules// выше базы   *автозагрузка перечисленных модулей  //extramod=/mnt/sdb3/porteus-modules ; extramod=/mnt/sdb3/porteus-modules;/mnt/sdc4/inkscape_modules// выше базы
   *можно указать опции mount : //mopt=realtime,sync,users,nosuid,noexec//   *можно указать опции mount : //mopt=realtime,sync,users,nosuid,noexec//
Строка 19: Строка 19:
   *Выделение памяти под / :ramsize=40%   *Выделение памяти под / :ramsize=40%
   *PXE загрузка из сети   *PXE загрузка из сети
 +  *[[soft/porteus-initrd?&#from|Поддержка Ventoy]] from=/path/porteus.iso (загрузка из .iso)
 Это не весь список.  Это не весь список. 
   *Полный в [[http://www.porteus.org/component/content/article/26-tutorials/general-info-tutorials/117-cheatcodes-what-they-are-and-how-to-use-them.html|документации]].    *Полный в [[http://www.porteus.org/component/content/article/26-tutorials/general-info-tutorials/117-cheatcodes-what-they-are-and-how-to-use-them.html|документации]]. 
   *Ниже перевод, сделанный for_wov и sfs. Перевод соответствует initrd из porteus v.2   *Ниже перевод, сделанный for_wov и sfs. Перевод соответствует initrd из porteus v.2
 ====== Структура каталогов ====== ====== Структура каталогов ======
-Все модули грузятся в алфавитном порядке (z.pfs окажется выше a.pfs)+  *Все модули загружаются в алфавитном порядке (z.pfs окажется выше a.pfs).  
 +  *Все из /base и /modules (кроме указанных в noload=)  
 +  *Перечисленные в load= из /optional
 ===== Слои aufs ===== ===== Слои aufs =====
 [[/setups/aufs|AUFS]] [[/setups/aufs|AUFS]]
Строка 32: Строка 35:
   */extramod   */extramod
   *089-*.pfs (исправления ошибок)   *089-*.pfs (исправления ошибок)
-  *090-*.pfs (сохранение состояния системы в модуль)+  *090-*.pfs (сохранение состояния системы в модуль; может быть несколько модулей одновременно)
   */[[http://www.porteus.org/tutoriels/26-general-info-tutorials/112-howto-use-the-rootcopy-directory.html|rootcopy]] ; [[http://www.porteus.org/tutorials/45-other/100-howto-create-and-use-magic-folders.html|magic-folgers]] ;сохраненка (файл, папка, раздел)   */[[http://www.porteus.org/tutoriels/26-general-info-tutorials/112-howto-use-the-rootcopy-directory.html|rootcopy]] ; [[http://www.porteus.org/tutorials/45-other/100-howto-create-and-use-magic-folders.html|magic-folgers]] ;сохраненка (файл, папка, раздел)
   *-верх-   *-верх-
Строка 46: Строка 49:
   *Модули не должны содержать /home /root. Иначе они перекроют сохраненкy.pfs   *Модули не должны содержать /home /root. Иначе они перекроют сохраненкy.pfs
 ===== /optional ===== ===== /optional =====
-  *Модули.pfs загружаются в алфавитном порядке выше base, modules при указании load=module[1];module[n]. Кроме указанных в noload=+  *Модули.pfs загружаются в алфавитном порядке выше base, modules ТОЛЬКО при указании load=module[1];module[n]. Кроме указанных в noload=
   *Рекомендуется для хранения и горячего подключения не постоянно используемых модулей софта. Например gparted   *Рекомендуется для хранения и горячего подключения не постоянно используемых модулей софта. Например gparted
   *Модули не должны содержать /home /root. Иначе они перекроют сохраненкy.pfs   *Модули не должны содержать /home /root. Иначе они перекроют сохраненкy.pfs
Строка 73: Строка 76:
  
 ===== changes= ===== ===== changes= =====
-  *changes=/dev/device раздел +  *changes=каталог, указанный в [[https://wiki.puppyrus.org/soft/porteus-initrd#dir|dir=]] , т.е. changes=pra - создаст внутри каталога с дистрибутивом pra - каталог pra/changes 
-  *changes=/path/ папка +  *changes=/dev/device раздел 
-  *changes=/path/file.dat контейнер +  *changes=/path/ каталог 
-  *[[puppyrus/pra?&#%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D0%B5%D1%81%D1%81%D0%B8%D0%B8|альтернатива]] - squashfs модуль сохранения или rootcopy+  *changes=/path/file.dat контейнер 
 +  *[[puppyrus/pra?&#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0_%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_frugal_%D1%81%D0%B5%D1%81%D1%81%D0%B8%D0%B8|альтернатива]] - squashfs модуль сохранения или rootcopy
  Без changes= все изменения в системе, до перезагрузки сохраняются в памяти   Без changes= все изменения в системе, до перезагрузки сохраняются в памяти 
  Если устройство (раздел жесткого диска) имеет linux файловую систему (напр. ext) можно использовать   Если устройство (раздел жесткого диска) имеет linux файловую систему (напр. ext) можно использовать 
Строка 83: Строка 87:
  При использовании папки - система создаст подпапку 'changes' внутри '/path'  При использовании папки - система создаст подпапку 'changes' внутри '/path'
  Если нужно сохранять на разделах с FAT или NTFS - используйте контейнер (file.dat).   Если нужно сохранять на разделах с FAT или NTFS - используйте контейнер (file.dat). 
- Создается скриптом make-changes или :+ Создается скриптом make-changes или (в Linux):
  
-  truncate -s 2G /test/ext2.dat && losetup /dev/loop40 /test/ext2.dat && mkfs.ext2 /test/ext2.dat && losetup -d /dev/loop40+  truncate -s 2G ext2.dat && losetup /dev/loop40 ext2.dat && mkfs.ext2 /test/ext2.dat && losetup -d /dev/loop40
  
 +Вместо ext2 можно любую поддерживаемую дистрибутивом Linix файловую систему. Например ext4
 ===== copy2ram ===== ===== copy2ram =====
  
Строка 115: Строка 120:
  'extramod=/mnt/sdb3/porteus-modules'  'extramod=/mnt/sdb3/porteus-modules'
  'extramod=/mnt/sdb3/porteus-modules;/mnt/sdc4/inkscape_modules'  'extramod=/mnt/sdb3/porteus-modules;/mnt/sdc4/inkscape_modules'
 + 'extramod=_krn/modules' - если _krn и base на одном разделе
 Если нужно подключение не всех модулей, а одного или нескольких - это можно сделать:  Если нужно подключение не всех модулей, а одного или нескольких - это можно сделать: 
   *через noload=    *через noload= 
Строка 128: Строка 134:
  'from=/mnt/sda2/linux-testing'  загрузка из  папки 'linux-testing' на втором разделе.  'from=/mnt/sda2/linux-testing'  загрузка из  папки 'linux-testing' на втором разделе.
  'from=/linux-ISO/porteus.iso' загрузка из ISO-файла внутри папки 'linux-ISO'.  'from=/linux-ISO/porteus.iso' загрузка из ISO-файла внутри папки 'linux-ISO'.
 + 'from=/porteus.iso' - так работает с https://ventoy.net в режимах nоrmal и grub2
  Если раздел не указан - загрузочный скрипт будет искать данные на всех разделах  Если раздел не указан - загрузочный скрипт будет искать данные на всех разделах
 +
 +Пример загрузки из iso для grub2:
 +  menuentry "LFD10" {
 +    set k=6.0.0-pf2-pts+                                                                                                       
 +    set f=/iso/lfd10-23.01-x86_64.iso                                                                                         
 +    search --no-floppy --file --set=root $f                                                                                                                                                  
 +    loopback loop $f                                                                                                           
 +    linux (loop)/${c}/vmlinuz-${k}_64 dir=${d} from=$f  quiet                        
 +    initrd (loop)/${c}/initrd.xz                                                                                           
 +  }  
  
 ===== fsck ===== ===== fsck =====
Строка 267: Строка 284:
  Например: 'sgnfile=porteus-usb.sgn'  Например: 'sgnfile=porteus-usb.sgn'
  
 +В PRA модификации по умолчанию sgnfile=initrd.xz. Т.е. если initrd.xz лежит в каталоге дистрибутива (dir=) - sgnfile можно не указывать
 ===== timezone=region/zone *===== ===== timezone=region/zone *=====
  
Строка 293: Строка 311:
 ===== zram ====== ===== zram ======
  
- Задейстует использование zram - блочного устройства внутри памяти (RAM) которое ведет себя как swap.  + Создает swap in zram
- Zram работает быстрее чем swap на жестком диске и создает больше (виртуальной) памяти чем использование  +
- только памяти (RAM), т.к. данные внутри сжаты. Это даст прирост производительности на системах с  +
- меньшим количеством памяти (RAM), но для этого используется больше частоты процессора (для компресси и  +
- декомпрессии данных) чем при работе со swap. +
- Не используйте вместе с обычным swap (на диске)+
  
- Например: 'zram=33%' назначит 33% вашей памяти(RAM) для zram-диска.+  *Этот параметр обрабатывается в дистрибутиве. В LF дистрибутивах /etc/rc.d/zram  
 +  *[[wpru>zRam]] - это блочное устройства со сжатием данных "на лету" в памяти (RAM). 
 +    *ZRAM включён в стандартную поставку ядра Linux начиная с версии 3.14  
 +    *В LF дистрибутивах обрабатывается скриптом /etc/rc.d/zram 
 +    *Работает быстрее чем swap на HDD, SSD, flash.  
 +  *За счет компрессии создается эффект увеличения RAM.  
 +    *zram=150% даст прирост производительности на системах с [[https://forum.puppyrus.org/index.php?topic=23160.msg178228#msg178228|малым количеством памяти (RAM)]].  
 +      *Желательно использование ядер с [[https://github.com/hakavlad/le9-patch#how-to-get-it|le9]] патчем 
 +  *Минус zram - дополнительная нагрузка на процессор (за счет компрессии и декомпрессии данных).  
 +    *Можно [[https://wiki.archlinux.org/title/Improving_performance#zram_or_zswap|регулировать]] использованием типа компрессии.  
 +    *Посмотреть доступные типы : /sys/block/zram0/comp_algorithm 
 +      *По возрастанию : lzo lzo-rle [lz4] lz4hc zstd . lzo самый быстрый, но слабо сжимающий. В [] используемый.  
 +      *Изменить : echo lz4 >/sys/block/zram0/comp_algorithm  
 +  *При использовании swap in zram вместе с обычным swap на диске (не рекомендуется, т.к. после заполнения zram - swap окажется на медленном носителе) - выставляйте zram больший приоритет : swapon --priority 100 /dev/zram0, чтобы он использовался в первую очередь 
 +    *Посмотреть приоритеты : swapon 
 +    *Кроме того, для ускорения медленных носителей можно использовать [[https://wiki.archlinux.org/title/Zswap|zswap]] 
 + 
 + Например: 'zram=33%' назначит 33% вашей памяти(RAM) для swap in zram.
  
 ===== ПРИМЕЧАНИЕ ПО ИСПОЛЬЗОВАНИЮ 'LABEL' И 'UUID': ===== ===== ПРИМЕЧАНИЕ ПО ИСПОЛЬЗОВАНИЮ 'LABEL' И 'UUID': =====
Строка 322: Строка 352:
     * Уменьшенное количество цыклов чтения/записи должно продлить жизнь SSD.      * Уменьшенное количество цыклов чтения/записи должно продлить жизнь SSD. 
   *Единственный недостаток расширения 'EXIT:' при аварийном завершении работы (зависание, пропадание питания) все изменения будут утеряны. Используйте осторожно!   *Единственный недостаток расширения 'EXIT:' при аварийном завершении работы (зависание, пропадание питания) все изменения будут утеряны. Используйте осторожно!
 +  *В итоге актуально использовать только на медленных носителях типа usb-flash
 +  *[[https://forum.puppyrus.org/index.php?topic=14574.15|Обсуждение]]
  
   Например:   Например:
Строка 330: Строка 362:
 Примечание переводчика (for_vow)  Примечание переводчика (for_vow) 
   *Для sdd и прочих [usbflash] устройств, использующих Nand-flash могла бы хорошо подойти f2fs (flash friendly filesystem дружественная к флеш" файловая система) активно внедряемая в последних версиях Puppy Slacko.   *Для sdd и прочих [usbflash] устройств, использующих Nand-flash могла бы хорошо подойти f2fs (flash friendly filesystem дружественная к флеш" файловая система) активно внедряемая в последних версиях Puppy Slacko.
 +
 ===== ПРИМЕЧАНИЕ ДЛЯ ИСПОЛЬЗУЮЩИХ LILO: ===== ===== ПРИМЕЧАНИЕ ДЛЯ ИСПОЛЬЗУЮЩИХ LILO: =====
  
Строка 339: Строка 372:
  
   *Если хотите использовать LILO с настроеными вами cheatcodes при каждой загрузке без их ручного ввода - вы должны изменить /boot/syslinux/lilo.conf и потом повторить установку запустив утититу /boot/Porteus-installer-for-Linux.com  т.к. LILO должен перезагрузить свою конфигурацию.   *Если хотите использовать LILO с настроеными вами cheatcodes при каждой загрузке без их ручного ввода - вы должны изменить /boot/syslinux/lilo.conf и потом повторить установку запустив утититу /boot/Porteus-installer-for-Linux.com  т.к. LILO должен перезагрузить свою конфигурацию.
 +
 +===== Загрузка из iso в grub2 =====
 +  menuentry "iso pporteus" {
 +    set iso=/lfd10-ventoy-230105-x86_64.iso
 +    set d=lfd10
 +    set k=6.0.0-pf2-pts+
 +    search --set=root --no-floppy --file ${iso}
 +    loopback loop $iso
 +    linux (loop)/${dk}/vmlinuz-${k}_64 dir=${d}  rw quiet from=$iso
 +    initrd    (loop)/${dk}/initrd.xz
 +  }
 +
  
 ====== Доработки porteus-initrd для PuppyRus-A (расширение функционала) ====== ====== Доработки porteus-initrd для PuppyRus-A (расширение функционала) ======
-В [[http://www.porteus.org/|porteus]] этот функционал отсутствует +В [[http://www.porteus.org/|porteus 2.0]] этот функционал отсутствует.  
-  *Изменено расширение модулей.  +===== 000-kernel =====  
-    *В porteus: .xzm.  +Изменено название модуля модулей ядра. 
-    *В PRA: .xzm и .pfs  +
-  *Изменено название модуля модулей ядра. +
     *В porteus: 000-kernel.pfs (в PRA тоже работает)     *В porteus: 000-kernel.pfs (в PRA тоже работает)
-    *В PRA 000-kernel-версия_64.pfs, где "версия" - то что для этого ядра выводит uname -r. _64 - архитектура (для 32 -пусто). Из модулей ядра загрузится только 000-kernel-версия_64.pfs, и из видеодров загрузятся только для текущего ядра. Т.е. не надо в load= noload= писать фильтры для разных ядер+    *В PRA 000-kernel-версия_64.pfs, где "версия" - то что для этого ядра выводит uname -r. _64 - архитектура (для 32 -пусто). 
 +    *Из модулей ядра загрузится только 000-kernel-версия_64.pfs, и из видео драйверов загрузятся только для текущего ядра. Т.е. не надо в load= noload= писать фильтры для разных ядер 
 +===== /mnt/home ===== 
   *Cоздание /mnt/home - симлинк на раздел с файлами дистрибутива (как в puppyrus)   *Cоздание /mnt/home - симлинк на раздел с файлами дистрибутива (как в puppyrus)
-  *[[http://forum.puppyrus.org/index.php?topic=17946.0|Возможна работа с любыми aufs ядрами]]. Например от [[http://mirror.yandex.ru/mirrors/manjaro/pool/|manjaro]] +===== Аналог udev =====  
-  *Убран raiserfsfsck +  *[[https://wiki.archlinux.org/title/Udev_(Русский)|udev]] 
-  *Изменен порядок слоев AUFS загружаемых модулей. 08*.pfs 09*.pfs всегда в верхнем слое+  *Скриптом определяются и загружаются нужные для загрузки системы модули ядра. В конце initrd неиспользованные выгружаются 
 +  *[[http://forum.puppyrus.org/index.php?topic=17946.0|Возможна работа]] с любыми aufs ядрами. [[https://forum.puppyrus.org/index.php?topic=16675.msg100386#msg100386|Например]] 
 +  *необходимо добавить в initrd или загрузить вторым инитрд модули нужного ядра 
 +===== Убран raiserfsfsck, e2fsck, ntfs3-g =====  
 +  *raiserfsfsck, e2fsck - т.к. по большей части актуально только для USB флеш-дисков, на которых обычно не используется 
 +  *ntfs3-g - в свежих ядрах монтируется как [[https://forum.puppyrus.org/index.php?topic=23512.msg178582#msg178582|ntfs3]] 
 + 
 +===== 08*.pfs 09*.pfs всегда в верхнем слое =====  
 +Изменен порядок слоев AUFS загружаемых модулей. 08*.pfs 09*.pfs всегда в верхнем слое, не зависимо от того в какой директории находятся
  
  
Строка 370: Строка 423:
   Например:   Например:
   dir=pra   dir=pra
 +Установка в корень раздела (т.е. /base /modules ... вместо /dir/base ...) не рационально и не предусмотрено 
 +
 ===== sort= =====  ===== sort= ===== 
 Сортировка нумерных (название модуля начинается с трех цифр, например 001-Pra03arch12nos.pfs) модулей в AUFS Сортировка нумерных (название модуля начинается с трех цифр, например 001-Pra03arch12nos.pfs) модулей в AUFS
Строка 401: Строка 456:
 </code> </code>
  
 +===== xzm= =====  
 +Расширение модулей дистрибутива. По умолчанию pfs (в этом случае можно не указывать) 
 +  Например: 
 +  xzm=xzm
 ====== Прочие параметры загрузки ядра ====== ====== Прочие параметры загрузки ядра ======
 ===== Стандартные ===== ===== Стандартные =====
Строка 489: Строка 547:
 В дистрибутиве присутствует cryptsetup ([[wpru>LUKS]]) и соответствующие модули ядра. Доступен [[https://wiki.archlinux.org/index.php/Dm-crypt|весь его функционал]]. В дистрибутиве присутствует cryptsetup ([[wpru>LUKS]]) и соответствующие модули ядра. Доступен [[https://wiki.archlinux.org/index.php/Dm-crypt|весь его функционал]].
  
-Кроме того есть возможность шифрования RW(read\write; запись\чтение; changes=/path/file.dat ) и [[http://wiki.puppyrus.org/soft/porteus-initrd?&#%D0%B4%D0%BE%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_porteus-initrd_%D0%B4%D0%BB%D1%8F_puppyrus_%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D0%B0|RO(read only;]] только чтение; changes=RO:) [[http://wiki.puppyrus.org/soft/porteus-initrd#changes|сохранения в файл]]. Такой файл создается "Меню-Настройка-Создание файла сохранения"+Кроме того есть возможность шифрования RW(read\write; запись\чтение; changes=/path/file.dat ) и [[soft/porteus-initrd?&#changes_ro|RO(read only;]] только чтение; changes=RO:) [[soft/porteus-initrd#changes|сохранения в файл]]. Такой файл создается "Меню-Настройка-Создание файла сохранения"
 ==== Сохранение настроек только определенных программ ==== ==== Сохранение настроек только определенных программ ====
 Например, все настройки статически в RO сохраненке.pfs, а настройки браузера хочется динамически сохранять в RW . Переносим только директорию с настройками браузера на носитель. В профиле делаем [[wr>симлинк]] на перенесенное. Например, все настройки статически в RO сохраненке.pfs, а настройки браузера хочется динамически сохранять в RW . Переносим только директорию с настройками браузера на носитель. В профиле делаем [[wr>симлинк]] на перенесенное.
Печать/экспорт