LiveCD Debian
Взято отсюда.
Создаём свой загрузочный диск LiveCD Debian
Решил поделиться сим знанием. Всё это я сам собрал в интернете. Опробовал и удостоверился, что оно работает. Дам немного комментариев к этой инструкции, чтобы было понятнее.
Начну с того, что свой загрузочный cd диск хотел создать давно, но руки не доходили. Обычно я просто обходился дампом системы, если хотелось сделать копию рабочей. Но каждый раз делать всё руками — руки отсохнут. Тем более, что не каждому объяснишь как сделать копию системы, как разбить и отформатировать диск, сделать диск загрузочным. Не у всех, знаете ли, есть рабочий линукс под рукой. Ну вот руки то мои взмолились и надоело всё делать по шпаргалкам — детсад ей богу.
Перейдем к практике. Установим эти замечательные пакеты.
apt-get install xorriso live-build extlinux syslinux squashfs-tools
xorriso для создания загрузочного образа syslinux, extlinux для использования mbr загрузки squashfs-tools для создание сжатой файловой системы live-build для создания самой системы, которая будет зажата и помещена в образ iso
Создаем каталог для образа и распаковываем минимальную систему повыбранной архитектуре. chroot — это корневая папка, где ибудет образ.
mkdir ~/livework && cd ~/livework debootstrap --arch=i386 wheezy chroot
Далее чрутимся, монтируем для эмуляции рабочей системы необходимые каталоги. Для генерации UUID устанавливаем dbus-uuidgen. Далее ставим ядро и необходимые утилиты для live загрузки. Ну и далее себе ни в чем не отказываем, устанавливаем всё что хочется. Можно и иксы установить и сделать автозагрузку этих иксов под пользователем или рутом. Позже, когда вы уже сделаете диск, его можно протестировать на виртуалке и если что не нравится тут же переделать войдя чрутом в папку chroot.
cd ~/livework chroot chroot mount none -t proc /proc mount none -t sysfs /sys mount none -t devpts /dev/pts export HOME=/root export LC_ALL=C apt-get install dialog dbus dbus-uuidgen > /var/lib/dbus/machine-id apt-get install linux-image-686 live-boot apt-get install dump bzip2 mc icewm .... passwd apt-get clean rm /var/lib/dbus/machine-id && rm -rf /tmp/* umount /proc /sys /dev/pts exit
Короче, образ системы мы создали. Далее создаем папку для live загрузчика. Копируем в нее vmlinuz и inird ядра вашей созданной системы. И создаём сжатую файловую ситему из папки chroot
mkdir -p binary/live && mkdir -p binary/isolinux cp chroot/boot/vmlinuz-* binary/live/vmlinuz cp chroot/boot/initrd.img-* binary/live/initrd mksquashfs chroot binary/live/filesystem.squashfs -e boot
Далее копируем файлы, необходимые для загрузки с CD, редактируем меню загрузки.
cp /usr/lib/syslinux/isolinux.bin binary/isolinux/. cp /usr/lib/syslinux/menu.c32 binary/isolinux/. vi binary/isolinux/isolinux.cfg
ui menu.c32 prompt 0 menu title Boot Menu timeout 300 label live-686 menu label ^Live (686) menu default linux /live/vmlinuz append initrd=/live/initrd boot=live persistence quiet label live-686-failsafe menu label ^Live (686 failsafe) linux /live/vmlinuz append initrd=/live/initrd boot=live persistence config memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal endtext
Всё, готово! Теперь только осталось создать образ диска.
xorriso -as mkisofs -r -J -joliet-long -l -cache-inodes -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin -partition_offset 16 -A "Debian Live" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o remaster.iso binary
Когда вы во второй раз начнете собирать диск, то удалите файл binary/live/filesystem.squashfs, иначе комп будет долго выяснять чего же нужно добавить в гигабайтный архив. А вы будете нервничать, почесывая затылок вожидании нового ребилда. У меня в папке livework лежит скрипт, который я запускаю, когда хочу пересоздать диск.
rm binary/live/filesystem.squashfs mksquashfs chroot binary/live/filesystem.squashfs -e boot xorriso -as mkisofs -r -J -joliet-long -l -cache-inodes -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin -partition_offset 16 -A "Debian Live" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o install.iso binary
Если вы хотите тот-же образ системы сделать на флешке, то нет ничего проще. Разница только в том, что вам не надо создавать образ диска, а вместо этого нужно пометить раздел с системой загрузочным (fdisk) и записать в загрузочную область диска mbr. Ну и для загрузки использовать extlinux вместо isolinux, если у вас раздел отформатирован в EXT. В примере диск /dev/sda, а в /mnt примонтирован образ системы
extlinux -i /mnt && cat /usr/lib/extlinux/mbr.bin > /dev/sda cp /usr/lib/extlinux/*.c32 /mnt && cp /usr/lib/syslinux/vesamenu.c32
Меню загрузки можно скопировать с вашего ISO образа но в другой файл, так как теперь у вас не ISO а EXT.
cp isolinux/isolinux.cfg /mnt/extlinux.conf