Создание модифицированного дистрибутива Linux Mint

Сначала установите необходимое программное обеспечение (если не установлено). Откройте терминал и введите команду

sudo apt install squashfs-tools genisoimage

Если не задан пароль root, необходимо его задать

sudo passwd root

Создайте рабочий каталог

mkdir ~/mylivecd

Скопируйте исходный образ в созданный каталог

cp linuxmint-19.3-cinnamon-64bit.iso ~/mylivecd

Перейдите в каталог

cd ~/mylivecd

Создайте каталог mnt

mkdir mnt

Смонтируйте исходный образ в созданный каталог

sudo mount -o loop linuxmint-19.3-cinnamon-64bit.iso mnt

Создайте каталог extracted

mkdir extracted

Скопируйте содержимое смонтированного образа в созданный каталог

sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/ extracted

Распакуйте образ файловой системы

sudo unsquashfs mnt/casper/filesystem.squashfs

Переименуйте каталог squashfs-root который образовался в процессе распаковки в edit

sudo mv squashfs-root edit

Скопируйте файлы для работы сети в chroot-окружении

sudo cp /etc/resolv.conf edit/etc/
sudo cp /etc/hosts edit/etc/

Для работы программ с графическим интерфейсом, например Synaptic, введите следующую команду

xhost +

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

sudo mount --bind /dev/ edit/dev

Войдите в chroot-окружение

sudo chroot edit

Смонтируйте необходимые для работы каталоги, назначьте домашний каталог и настройки локали. Последовательно вводите в терминале команды

mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root
export LC_ALL=C

Подготовка к модификации

dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl

Запустите Источники приложений и выберите подходящие зеркала

software-sources

Обновите индексы пакетов

apt update

Можно удалить ненужные пакеты

apt purge drawing hexchat hexchat-common pix pix-data simple-scan

Установите нужные пакеты

apt install brasero exe-thumbnailer gimp gimp-help-ru language-pack-gnome-ru language-pack-ru remmina remmina-plugin-rdp samba ttf-mscorefonts-installer xsane

Установите обновления

apt upgrade

Можно запустить менеджер пакетов

synaptic

Если нужно установить DEB-пакеты, скопируйте их в каталог tmp, перейдите в каталог и установите

cd tmp
dpkg -i *.deb

Если имеются неудовлетворенные зависимости, введите следующую команду

apt install -f

Если устанавливались другие ядра, необходимо ввести следующие команды

cp edit/boot/vmlinuz* extracted/casper/vmlinuz
cp edit/boot/initrd.img* extracted/casper/initrd.lz

Удалите свое присутствие в модифицируемом образе

apt clean
rm -r /var/cache/apt/archives/*
rm -rf /tmp/* ~/.bash_history
rm /var/lib/dbus/machine-id
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl
umount /proc || umount -lf /proc
umount /sys
umount /dev/pts
exit
sudo umount edit/dev //можно игнорировать собщения об ошибке
xhost -

Если использовались программы с графическим интерфейсом, введите следующие команды

sudo rm -rf edit/run/synaptic.socket
sudo rm -rf edit/home/*
cd ~/mylivecd

Регенерируем образ файловой системы

su
chmod +w extracted/casper/filesystem.manifest
chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extracted/casper/filesystem.manifest
cp extracted/casper/filesystem.manifest extracted/casper/filesystem.manifest-desktop
sed -i '/ubiquity/d' extracted/casper/filesystem.manifest-desktop
sed -i '/casper/d' extracted/casper/filesystem.manifest-desktop

Удалите прежний образ файловой системы

rm extracted/casper/filesystem.squashf

Сожмите образ

mksquashfs edit extracted/casper/filesystem.squashfs -comp xz

Обновите необходимые файлы

printf $(sudo du -sx --block-size=1 edit | cut -f1) > extracted/casper/filesystem.size
cd extracted
rm MD5SUMS
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee MD5SUMS

Соберите модифицированный образ. Обязательно поставьте точку в конце

genisoimage -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../modified-linuxmint-19.3-cinnamon-64bit.iso .
exit
sudo chmod 777 ~/mylivecd/modified-linuxmint-19.3-cinnamon-64bit.iso

Создание модифицированного дистрибутива Linux Mint завершено.

Оставить комментарий