Создание LiveCD ISO диска Ubuntu 18.04

Данные инструкции нужно выполнять после установки Ubuntu 18.04 на чистый диск с помощью утилиты debootstrap.

Смонтируйте устройства:

sudo cp /etc/resolv.conf /media/ubuntu/root/disk/etc/resolv.conf
sudo mount -t proc proc /media/ubuntu/root/disk/proc/
sudo mount -t sysfs sys /media/ubuntu/root/disk/sys/
sudo mount -o bind /dev /media/ubuntu/root/disk/dev/
sudo mount -t devpts none /media/ubuntu/root/disk/dev/pts

Установите программы необходимые для создания ISO образа:

sudo apt-get install syslinux squashfs-tools genisoimage casper laptop-detect lupin-casper discover 

Перейдите в папку ubuntu:

cd /media/ubuntu

Установите необходимые пакеты:

sudo apt install isolinux memtest86+ 
sudo mkdir -p ./image/{casper,isolinux,install}

Скопируйте файлы ядра с диска sdb1:

sudo cp /media/ubuntu/root/boot/vmlinuz-4.4.0-104-generic ./image/casper/vmlinuz
sudo cp /media/ubuntu/root/boot/initrd.img-4.4.0-104-generic ./image/casper/initrd.lz
sudo cp /usr/lib/ISOLINUX/isolinux.bin ./image/isolinux/
sudo cp -rT /usr/lib/syslinux/modules/bios/ ./image/isolinux/
sudo cp /boot/memtest86+.bin ./image/install/memtest

Создайте конфигурацию загрузки Isolinux коммандой sudo nano ./image/isolinux/isolinux.cfg

ui menu.c32
TIMEOUT 300
PROMPT 0
DEFAULT live
menu title Boot Menu
LABEL live
  menu label ^Start or install Ubuntu Openbox
  kernel /casper/vmlinuz
  append  file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash --
LABEL check
  menu label ^Check CD for defects
  kernel /casper/vmlinuz
  append  boot=casper integrity-check initrd=/casper/initrd.lz quiet splash --
LABEL memtest
  menu label ^Memory test
  kernel /install/memtest
  append -
LABEL hd
  menu label ^Boot from first hard disk
  localboot 0x80
  append -

Создайте файловую систему filesystem.squashfs с содержимым диска:

sudo chroot ./root dpkg-query -W --showformat='${Package} ${Version}\n' | sudo tee ./image/casper/filesystem.manifest
sudo mksquashfs ./root ./image/casper/filesystem.squashfs -e boot
sudo printf $(sudo du -sx --block-size=1 ./root | cut -f1) |sudo tee ./image/casper/filesystem.size

Создайте файл diskdefines коммандой sudo nano ./image/README.diskdefines и вставьте содержимое:

#define DISKNAME  Ubuntu Openbox
#define TYPE  binary
#define TYPEbinary  1
#define ARCH  amd64
#define ARCHamd64  1
#define DISKNUM  1
#define DISKNUM1  1
#define TOTALNUM  0
#define TOTALNUM0  1

Создайте файл isolinux.txt коммандой sudo nano ./image/isolinux/isolinux.txt со следующим содержимым:

************************************************************************

This is an Ubuntu Openbox Live CD.

For the default live system, enter "live".  To run memtest86+, enter "memtest"

************************************************************************

Выполните комманду:

sudo printf "\x18" |sudo tee ./image/isolinux/emptyfile

Создайте еще файлы:

sudo touch ./image/ubuntu
sudo mkdir ./image/.disk
cd ./image/.disk

sudo touch base_installable
sudo echo "full_cd/single" | sudo tee cd_type
sudo echo "Ubuntu Openbox 16.04" | sudo tee info 
sudo echo "http://your-release-notes-url.com" | sudo tee release_notes_url
cd ../..

Посчитайте md5 файлов, которые будут на диске:

sudo su -c "cd image && find . -type f -print0 | xargs -0 md5sum | grep -v "\./md5sum.txt" > md5sum.txt"

Создайте образ ISO:

cd ./image
sudo mkisofs -r -V "Ubuntu Openbox" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-openbox-`date +%Y-%m-%d`.iso .
cd ..

Образ ISO готов и лежит в папке /media/ubuntu.

Источник: https://help.ubuntu.com/community/LiveCDCustomizationFromScratch