Разработчики Debian очень упростили создание live usb iso.
Если вы хотите создать кастомный live образ и, возможно, стать последователем Попова с его легендарной BolgenOS, то я расскажу как это сделать на примере Debian.
Для начала установим в свою систему все необходимые пакеты для сборки live дистрибутива.
sudo apt-get install xorriso live-build syslinux squashfs-tools
Создадим базовый слепок системы в пустую директорию с помощью multistrap. Об этом более подробно написано в предыдущей статье. Могу добавить, что лучше поместить его в оперативную память для быстрой сборки-пересборки. Предположим, что директория, где будет распологаться образ системы называется /tmp/linram/root
sudo mount -t tmpfs /dev/shm /tmp/linram/root
Зачрутимся в */tmp/linram/root *и внесем необходимые изменения. Без них мы не сможем корректно загрузиться.
sudo chroot /tmp/linram/root export HOME=/root export LC_ALL=C passwd # следующая команда необязательна, если вы использовали debootstrap echo 'deb http://ftp.ru.debian.org/debian/ stable main non-free contrib' > /etc/apt/sources.list echo 'nameserver 8.8.8.8' > /etc/resolv.conf apt-get update apt-get install dialog dbus dbus-uuidgen > /var/lib/dbus/machine-id apt-get install linux-image-amd64 live-boot apt-get clean rm /var/lib/dbus/machine-id && rm -rf /tmp/* umount -l /dev umount /proc
Подготовим директорию для ядра и файлов syslinux
mkdir -p /tmp/linram/debian/{live,isolinux} cp /tmp/linram/root/boot/vmlinuz* /tmp/linram/debian/live/vmlinuz cp /tmp/linram/root/boot/initrd* /tmp/linram/debian/live/initrd cp /usr/lib/syslinux/isolinux.bin /tmp/linram/debian/isolinux/ cp /usr/lib/syslinux/menu.c32 /tmp/linram/debian/isolinux/
Создадим конфиг isolinux. В нем пропишем пункты меню загрузки.
cat /tmp/linram/debian/isolinux/isolinux.cfg ui menu.c32 prompt 0 menu title Boot Menu timeout 300 label live-amd64 menu label ^Live (amd64) menu default linux /live/vmlinuz append initrd=/live/initrd boot=live persistence label live-amd64-failsafe menu label ^Live (amd64 failsafe) linux /live/vmlinuz append initrd=/live/initrd boot=live persistence config memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal
Сделаем сжатый файл ФС squashfs, в котором будет располагаться корень live системы
mksquashfs /tmp/linram/root /tmp/linram/debian/live/filesystem.squashfs \ -b 1048576 -comp xz -Xbcj x86 -e boot
Я специально выбрал размер блока в 1МБ (1048576), алгоритм сжатия xz и оптимизацию x86 для большего сжатия.
Наконец создадим гибридный iso файл, который можно записать на CD или USB.
cd /tmp/linram 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 debian-live.iso debian
Можно опробовать созданный образ в виртуальной машине перед записью на флэшку/диск
kvm -m 512 -hda /tmp/linram/debian-live.iso
Запишем на флэшку
sudo dd if=/tmp/linram/debian-live.iso of=/dev/your-usb bs=1M
Можете скачать образ, созданный для примера (111МБ), чтоб посмотреть на него в действии. В нем не установлено графическое окружение рабочего стола. http://yadi.sk/d/sYxzu1_WJ5mVm
Если на флэшке еще осталось свободное место, то можно создать на ней новый раздел с файловой системой:
sudo fdisk /dev/your-usb
Command (m for help): p
Disk /dev/your-usb: 8032 MB, 8032092160 bytes
64 heads, 32 sectors/track, 7660 cylinders, total 15687680 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x7e873c3a
Device Boot Start End Blocks Id System
/dev/your-usb1 * 64 227327 113632 17 Hidden HPFS/NTFS
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (1-4, default 2):
Using default value 2
First sector (227328-15687679, default 227328):
Using default value 227328
Last sector, +sectors or +size{K,M,G} (227328-15687679, default 15687679):
Using default value 15687679
Command (m for help): p
Disk /dev/your-usb: 8032 MB, 8032092160 bytes
64 heads, 32 sectors/track, 7660 cylinders, total 15687680 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x7e873c3a
Device Boot Start End Blocks Id System
/dev/your-usb1 * 64 227327 113632 17 Hidden HPFS/NTFS
/dev/your-usb2 227328 15687679 7730176 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Для того, чтоб у пользователей венды флэшка тоже читалась, создадим ntfs на новом разделе.
sudo mkfs.ntfs /dev/your-usb2
На основе http://l3net.wordpress.com/2013/09/21/how-to-build-a-debian-livecd/