LINUX.ORG.RU
решено ФорумAdmin

Автоматизация LiveCD

 ,


0

1

Хочу передать из загрузчика через параметры ядра LiveCD команду на монтирование в загружаемую ОС.

Сделал загрузочную флэшку из LiveCD-сборки Kodi (Helix x64), однако, в Live-режиме не сохранялись конфиги. Делать casper-rw не хотелось - мне нужно чтобы папка ~/.kodi жила на NTFS.

Решил проблему так:

sudo mount --bind /cdrom/KodiOS/kodi_config ~/.kodi
И это работает. Нужно только: выйти из Kodi, выполнить монтирование и войти в Kodi.

Теперь новая проблема - нужно передать эту команду из загрузчика.

Я знаю, что так умеет ядро в сборке Clonzilla, но Kodi с этим ядром не запускается.

Хочу узнать: имеются-ли способы как-либо автоматизировать монтирование каталога?

★★

Ответ на: комментарий от Deleted

fstab

Я не умею пересобирать сквошфс.

P.S.

А на сколько это сложно? Распаковать - обновить - упаковать сквошфс?

zzdnx ★★ ()
Последнее исправление: zzdnx (всего исправлений: 1)
Ответ на: fstab от zzdnx

Да, распаковать, внести изменения, запаковать.

kostik87 ★★★★★ ()
Ответ на: комментарий от kostik87

То есть сделать это через параметры ядра нет возможности?

простите, но, как-то не верится, что пересбор ФС - самый простой выход.

zzdnx ★★ ()
Последнее исправление: zzdnx (всего исправлений: 1)

Параметры ядра описаны вот здесь: https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt

Всё то, чего здесь нет, но передаётся в строке параметров ядра, обрабатывается уже не ядром, а стартовыми скриптами в initramfs или скриптами системы инициализации.

При своём запуске ядро ищет параметр root, который указывает где находится корневая файловая система, далее ядро её монтирует и вызывает процесс init, обычно /sbin/init, ну либо указанный в параметрах ядра.

Далее уже сценарий init, который является стартовым сценарием системы инициализации читает файл /etc/fstab и монтирует указанные там файловые системы, ну и выполняет другие действия.

Указать что-то для монтирования через параметры ядра помимо параметра root можно, но в таком случае тебе надо внести правки либо с сценарии в initramfs, что бы скрипт в Initramfs искал в /proc/cmdline какое-то определённое слово и выполнял некоторые действия, либо внести правки в скрипты системы инициализации на корневой файловой системе, в твоём случае в squashfs, либо просто добавив соответствующую строку в /etc/fstab.

Если тебе лень распаковывать squashfs, т.к. это всё же займёт некоторое немалое время, то можешь распаковать initramfs.

Поищи в Internet, ну или в моих комментариях на форуме по строке

cpio -i -d -H newc
там я описавал как распаковать initrafms и запаковать обратно.

Например, вот: Не подхватывается фирмварь (комментарий)

Но алогоритм сжатия может быть и gzip, и xz, и любой другой.

Как распакуешь изучи скрипты и подумай куда можно добавить код предварительного монтирования нужной тебе файловой системы.

Добавь его и запакую обратно. Заодно изучишь как в действительности обрабатываются параметры ядра и чем.

Удачи.

kostik87 ★★★★★ ()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

Благодарю за роскошный ответ!

Думаю, мне будет проще и полезнее перебрать InitRamFs.

zzdnx ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.