LINUX.ORG.RU

Создание Live CD для LFS?


0

0

Всем добрый вечер. Хотелось узнать, есть-ли у кого-то из читающих опыт создания Live CD? Целью своей имею сделать возможность запуска своего маленького Linux From Scratch с read-only носителя без наличия на компьютере жесткого диска.

Удобства и просвещения для собрал Linux From Scratch 6.6 после чего дособрав для себя нужные мне утилиты. Хотелось сделать вариант с возможностью запуска с CD без наличия на компьютере жестких дисков. Как это удобнее реализовать?

Нутром чувствую что гуглить в сторону initrd, но быть может кто-то уже сталкивался?


Рут на squashfs, как почти во всех лайвсд.

DuratarskeyK
()

Не initrd, а initramfs. Все очень просто, но последний раз проверялось на LFS-6.3, когда я был разработчиком официального LFS LiveCD, поэтому сейчас может не заработать :)

0) Собираем всю систему на loopback-устройстве с файловой системой ext2 или копируем ее туда. Рекомендуемый размер файла - 2 GB.

1) Ставим device-mapper внутрь LFS (которая на loopback-устройстве), а zisofs-tools, cdrtools и isolinux - во внешнюю систему.

2) Ставим патченные lfs-bootscripts (с патчем http://wiki.linuxfromscratch.org/livecd/export/2168/branches/6.3/packages/lfs... , make install-livecd вместо make install)

3) Ставим патченный sysvinit (см. http://wiki.linuxfromscratch.org/livecd/export/2168/branches/6.3/packages/sys... , не факт, что патч нужен с новейшей версией)

4) Берем http://wiki.linuxfromscratch.org/livecd/export/2168/branches/6.3/scripts/shut... , заменяем @LINKER@ на ld-linux.so.2 или ld-linux-x86-64.so.2 в зависимости от архитектуры, сохраняем как /usr/bin/shutdown-helper, добавляем бит исполнимости. В /etc/inittab добавляем строчку: sd:06:once:/usr/bin/shutdown-helper

5) Берем файлы init.in, create-initramfs.in и fakecd.iso.head из http://wiki.linuxfromscratch.org/livecd/browser/branches/6.3/packages , заменяем @LINKER@ на что надо, сохраняем в /usr/share/initramfs/init, /usr/bin/create-initramfs (с битом исполнимости) и /usr/share/initramfs/fakecd.iso.head

6) Создаем initramfs. Для этого надо подправить /usr/bin/create-initramfs на предмет списка модулей и запустить с тремя параметрами: версия LiveCD, версия ядра и выходной файл (например, create-initramfs 6.6 2.6.33.1 /boot/initramfs_data.cpio.gz).

7) Отмонтируем loopback-устройство, сжимаем файл: mkdir ../iso ; mkzftree -F root.ext2 ../iso/root.ext2

8) ставим isolinux (из пакета syslinux, там уже есть готовый бинарный файл) в ../iso/boot, пишем конфиг типа http://wiki.linuxfromscratch.org/livecd/browser/branches/6.3/isolinux/isolinu... , складываем туда же ядро (в виде файла linux) и initramfs (initramfs_data.cpio.gz).

9) делаем ISO-образ: cd ../iso ; mkisofs -z -R -l --allow-leading-dots -D -o ../lfslivecd-6.6.iso -b boot/isolinux/isolinux.bin -c boot/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V «lfslivecd-6.6» ./

Готово!

Если будут вопросы - направляйте мне в jabber или по электронной почте, или звоните. Контакты в профиле.

AEP ★★★★★
()

Кстати, если не жалко памяти, то можно сделать еще проще. Предполагается, что система находится в /mnt/lfs.

0) убрать из /etc/fstab все упоминания дисков

1) Сжать всю систему в initramfs_data.cpio.gz:

ln -s /sbin/init /mnt/lfs/init cd /mnt/lfs ; find . | cpio -o -H newc | gzip -9 >../initramfs_data.cpio.gz

2) Положить в iso/boot ядро, initramfs_data.cpio.gz и isolinux с конфигом

3) Собрать iso-образ, как в предыдущем комментарии

Такой компакт-диск будет всегда грузиться целиком в память в разжатом виде (т.е. требуется как минимум 1 GB RAM для LFS «по книге»). Поэтому диск можно убрать из привода сразу после успешной загрузки с него.

AEP ★★★★★
()

Возьми лучше генту, не заморачивайся с LFS. Где-то в их вики было про создание LiveCD.

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

Спасибо за совет, но гента мне не нравится. Будет достаточно трудно обосновать - это субъективное. LFS это все таки учебник, книга, по сборке системы. С помощью BLFS можно сделать уже полноценную настольную систему. А в Gentoo все как-то упрощено и автоматизированно.

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