Редактирование ISO образа.

Процесс изменения ISO:

Во-первых, мы монтируем ISO в одну папку, копируем файл "filesystem.squashfs", расположенный на /casper, в другую папку. Затем, мы монтируем filesystem.squashfs в третью папку и копируем его содержимое в четвёртую папку. Далее, выполняем chroot в последней папке. Таким образом мы получим возможность устанавливать или удалять пакеты, которые нам нужны (или не нужны).

Необходимые пакеты
Сначала, нужно установить следующие пакеты: genisoimage и squashfs-tools.

sudo apt-get install genisoimage squashfs-tools

Монтирование ISO
Теперь, монтируем Ubuntu ISO в папку.

sudo mount -o loop ubuntu-desktop.iso ./image

Извлечение filesystem.squashfs
Далее, нужно найти filesystem.suquashfs, расположенный на casper, и скопировать его в другую папку.

sudo cp ./image/casper/filesystem.squashfs .

Монтирование виртуальной файловой системы
Монтируем filesystem.squashfs и копируем его содержимое в отдельную папку.

sudo mount -t squashfs -o loop filesystem.squashfs ./squashimage
sudo rsync -a --progress ./squashimage/ ./mysquash/

Изменения
Теперь можно выполнить chroot и установить или удалить пакеты.

cd mysquash
sudo chroot .

aptitude install (...)
aptitude remove (...)

Примечание. Чтобы в chroot была доступна сеть, нужно предварительно смонтировать /proc
sudo mount -o bind /proc ./mysquash/proc
Прописать DNS-сервера в ./mysquash/etc/resolv.conf, т.к. этот файл на LiveCD пустой.
Если необходимо, дописать репозитории в ./mysquash/etc/apt/sources.list.
После завершения установки/удаления пакетов в ./mysquash все внесённые изменения удалить.

Переупаковка Squashfs
Когда необходимые изменения внесены, нужно выйти из chroot и переупаковать squash.

exit
cd ..
mksquashfs ./mysquash myfilesystem.squashfs

Этот процесс может быть долгим, имейте терпение.

Создание ISO-образа
Теперь можно создать новый iso, содержащий внесённые изменения:

sudo rsync -a --progress ./image/ ./myimage/ --exclude=filesystem.squashfs
sudo mv myfilesystem.squashfs ./myimage/casper/filesystem.squashfs
sudo mkisofs -J -R -o ubuntu-mylive.iso -no-emul-boot -boot-info-table -b isolinux/isolinux.bin ./myimage

Готово.

Добавить комментарий