| Иногда появляется необходимость создать LiveCD из уже установленного дистрибутива Linux. Причины могут быть разные - например, вам не хочется разбираться с новым Live дистрибутивом и вы полагаете, что своя рубашка ближе к телу. Также возможно, что создаваемый вами LiveCD имеет другое ядро, существенно отличающееся от имеющихся, так что простой модификацией тут не обойтись. В данном тексте как раз и будет рассказано как из Salckware сделать Использование LiveCD (понятно, что с настройками сети и файрволла, Минус же состоит в том, что CDROM - это далеко не жёсткий диск, у него Как вы знаете (наверное), проблему с отсутствием BIOS кода загружаемые Подготовка образа диска. Итак, задача стоит таким образом. Нам нужно создать систему на CD (или Для начала готовим ветку, которая будет использована в качестве корневой mkdir /tmp/cdrom Затем в эту ветку копируется содержимое корневой файловой системы (cp -a Для установки ядра отличного от ванильного лучше распаковать исходники export INSTALL_PATH=/tmp/cdrom/boot Таким образом после команд make install и make modules_install ядро и Теперь правим конфигурационные файлы (/etc) в соответствии с вашими Раз всё готово, то можно проделать chroot в свежеустановленный каталог. chroot /tmp/cdrom Теперь нужно создать файл /etc/fstab : /dev/cdrom / iso9660 defaults00 и сделать пустой файл /etc/fastboot, чтобы при загрузке не происходила После этого копируем каталоги: cp -a /etc /etc1 Смысл этого действия - /etc, /var будут использоваться как mount-points Создание initrd Initrd - это маленькая файловая система, которая монтируется при Каждый дистрибутив имеет свои средства для создания initrd. В Slackware mkinitrd -m iso9660:tmpfs:... (мы по-прежнему в chroot-e). Параметры - это те модули, которые будут Так или иначе в каталоге /boot появится каталог /boot/initrd-tree. Это if [ ! -r /mnt/sbin/init ]; then и вставим как раз перед ним все те манипуляции с подменой каталогов, о ROOTDEV=$(cat /proc/sys/dev/cdrom/info | sed -rne '/drive name/s%drive name:[[:blank:]]*([[:alnum:]]*)%/dev/1%p') В конце скрипта init происходит подмена /mnt на / с помощью: exec switch_root /mnt /sbin/init $RUNLEVEL Так что файловая система на CD вместе с подмонтированными к ней После того как скрипт поправлен и все остальное на initrd-tree вас Создание образа загрузочной дискеты К этому моменту должны быть в наличии /boot/initrd.gz и ядро Нарежем его. Файл размером 2.88МБ назовём b.bin #dd if=/dev/zero of=/b.bin bs=1K count=2880 Посадим его на /dev/loop0: #/sbin/losetup /dev/loop0 b.bin И отформатируем его. Файловая система может быть любая - хоть DOS, лишь #/sbin/mke2fs /dev/loop0 А теперь создадим mount-point для него, смонтируем и скопируем туда ядро #mkdir /mnt/loop0 Если жалоб на недостаток места не было, то осталось запихнуть туда ещё и #образ дискеты у нас на loopbacke, при этом мы делаем вид, что это диск A с геометрией как у дискетки Осталось только запустить lilo: # /sbin/lilo Если возникнут ошибки и более серьёзные предупреждения (map и Теперь осталось подчистить за собой loopback. #umount /mnt/loop0 И прощай, jail! #exit Собираем все в одну кучу - создание загрузочного CD Делается одной командой: mkisofs -b b.bin -o router.iso -R /tmp/cdrom Указано, что диск использует полновесное Rock-Ridge расширение (-R), Эпилог Вот и всё. Однако я не стал бы торопиться и жечь болванки. Лучше qemu -boot d -cdrom router.iso | |
| Категория: Интересные статьи | Просмотров: 311 | |
Главная » LiveCD из Slackware в домашних условиях