LINUX.ORG.RU

загрузочные скрипты в tiny core linux


0

1

Установил экстремально быстрый небольшой livecd дистрибутив, установил его на hda1, загружается. Корневая файловая система монтируется в RAM, это повышает скорость этой оси, программы она хранит на hda1 и загружает от туда при повторном запуске. Потребовалось добавить команды настройки сети (ip адрес, маршруты) в /opt/bootlocal.sh, но после ребута все изменения теряются. Читал секцию Persistence на http://wiki.tinycorelinux.net/ но так и не понял этот материал. Помогите, пожалуйста, разобраться.

Корневая система у вас расположена в образе squashfs, эта файловая система доступна только для чтения, чтобы внести в него изменения вам надо загрузиться с любого другого livecd, с поддержкой squashfs в ядре, подмонтировать эту файловую систему куда-либо скопировать ее содержимое в каталог, внести изменения и потом опять сделать из него образ.

# mount -t squashfs /mnt/sq
# cp -R /mnt/sq /mnt/new
# vim /mnt/new/opt/bootlocal.sh
# cd ~/
# mksquashfs /mnt/new/* newimage.sq

Также возможно squashfs не обычная, а имеет не стандартный метод сжатия lzma или xz., так что не всякое ядро способно его смонтировать.

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

Так же я уверен что в дистрибутиве должен пристутствовать метод, создания образа с файловой системой доступной для записи, подключаемый в качестве кэша., что бы при каждом изменении не пересоздавать squashfs образ.

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

Как мне кажется корневая система у меня расположена в образе initramfs.

gzip -d microcore.gz

file microcore

microcore: ASCII cpio archive (SVR4 with no CRC)

cd cpio/ && cpio -id < ../microcore

15902 блоков

ls bin dev etc home init lib mnt opt proc root sbin sys tmp usr var

Осталось только отредактировать все что нужно, запаковать в cpio и создать образ initramfs???

amator_unix
() автор топика
Ответ на: комментарий от amator_unix

Да, примерно так,

с помощью этих командой вы можете распаковать initramfs:

        mkdir /tmp/initramfs
        cd /tmp/initramfs
        gunzip -c -9 /boot/tinycore.gz | \
        cpio -i -d -H newc --no-absolute-filenames 

А запаковать обратно можно командой:

        cd /tmp/initramfs
        find . | cpio -o -H newc | gzip -9 > /boot/tinycore2.gz

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

Проделал все перечисленное, создал с помощью genisoimage загрузочный livecd. Ругнулся can't find microcore.gz. Затея не удалась, буду искать легковесный дистрибутив без гуев, который установит корневую фс на hdd

amator_unix
() автор топика
Ответ на: комментарий от amator_unix

Ну вы хоть find . | cpio -o -H newc | gzip -9 > /boot/tinycore2.gz
здесь имя правильно указали и в isolinux.cfg?

Так же можно попробовать сжимать без "-9" или вообще не сжимать, он его и так должен монтировать.

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