В связи с появлением большого количества утилит для Ubuntu-подобных систем для Backup-а, ну не так уж и много, но есть, а главное, они замечательно работают, появилось очень много любителей поделиться своими достижениями в области кастомизации известных дистрибутивов. Хочу обратить внимание на тот факт, что когда Вы создаете backup, то делается снимок системы со всеми достоинствами и недостатками, особенно это касается оборудования, поэтому, довольно часто созданная таким образом ISO-шка уже содержит в себе некоторые глюки и на половине компьютеров корректно работать отказывается. Любителям ремастеринга -- отложите в сторону свои Remastersys-ы, Pinguy Builder-ы, Systemback-ы и прочие инструменты, делайте настоящие дистрибутивы, ничего сложного в этом нет. Я не открываю Америку, а просто интерпретирую уже имеющуюся статью. Для начала установите нужное для ремастеринга ПО, откройте терминал и введите: (или просто Copy - Paste)
Код: Выделить всё
sudo aptitude install squashfs-tools genisoimage
1. Создате рабочую директорию (папку, каталог...), это можно сделать и с помощью мыши...
Код: Выделить всё
mkdir ~/mylivecd
2. Скопируйте исходный образ в созданную директорию ~/mylivecd
Код: Выделить всё
cp /path_to_the_downloaded_iso_directory/linuxmint-17-cinnamon-64bit-v2.iso ~/mylivecd
3. В терминале введите:
Код: Выделить всё
cd ~/mylivecd
Код: Выделить всё
mkdir mnt
Код: Выделить всё
sudo mount -o loop linuxmint-17-cinnamon-64bit-v2.iso mnt
Код: Выделить всё
mkdir extracted
Код: Выделить всё
sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/ extracted
Код: Выделить всё
sudo unsquashfs mnt/casper/filesystem.squashfs
Код: Выделить всё
sudo mv squashfs-root edit
4. Для нормальной работы сети в процессе работы с будущей системой в среде chroot скопируте файлы из своей системы в "подопытную":
Код: Выделить всё
sudo cp /etc/resolv.conf edit/etc/
Код: Выделить всё
sudo cp /etc/hosts edit/etc/
5.
Код: Выделить всё
xhost +
Еще одна команда монтирования...
Код: Выделить всё
sudo mount --bind /dev/ edit/dev
Код: Выделить всё
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
6. Последние приготовления...
Код: Выделить всё
dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
Код: Выделить всё
apt-get update
Код: Выделить всё
apt-get install ...
Код: Выделить всё
synaptic
Если есть пакеты с расширением *.deb и хочется их установить в будущую систему, нужно скопировать таковые в отдельный каталог, некоторые создают для этого отдельный каталог, я использую имеющийся /tmp и после копирования перехожу в него и даю команду на инсталяцию...
Код: Выделить всё
cd tmp
Код: Выделить всё
dpkg -i *.deb
Если проводились эксперименты с ядрами или устанавливались другие необходимо дать пару команд
Код: Выделить всё
cp edit/boot/vmlinuz* extracted/casper/vmlinuz
Код: Выделить всё
cp edit/boot/initrd.img* extracted/casper/initrd.lz
Код: Выделить всё
apt-get install ubiquity-frontend-gtk
Допустим, что все уже сделано... или еще нет? Если нет, все равно переходите к следующему шагу...
8. Удаляем свое присутствие в будущем образе... Просто вводите поочередно команды изложенные ниже:
Код: Выделить всё
aptitude 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
если не выходит, введите exit 0
Код: Выделить всё
sudo umount edit/dev
можно игнорировать собщения об ошибке
Код: Выделить всё
xhost -
тоже что и xhost + только наоборот
если использовались утилиты с графическим интерфейсом, обязательно введите следующую пару команд:
Код: Выделить всё
sudo rm -rf edit/run/synaptic.socket
Код: Выделить всё
sudo rm -rf edit/home/*
Код: Выделить всё
cd ~/mylivecd
9. Регенерируем filesystem.manifest, мало что это говорит, в принципе и вникать особо не нужно, скажу только, что после внесенных нами/Вами изменений системе нужно обновить информацию о своем новом содержании. Просто вводим последовательно команды и не обращаем внимания на предупреждения...
Код: Выделить всё
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
Удаляем старый filesystem.squashfs
Код: Выделить всё
rm extracted/casper/filesystem.squashfs
Код: Выделить всё
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
Код: Выделить всё
mkisofs -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 ../My_LM-17.3-XFCE-64bit.iso .
Прошу обратить внимание на точку в конце, она обязательна, иначе ничего не получится.
Код: Выделить всё
exit
Код: Выделить всё
sudo chmod 777 ~/mylivecd/My_LM-17.3-XFCE-64bit.iso
P.S. В версиях 17.х иногда после сборки возникает ошибка
Busybox V 1.21.1 (Ubuntu 1:1.21.0-1ubuntu1) buil-in shell (ash)
enter 'help' for a list of built-in comands.
(initramfs) /cow format specified as aufs and no support found.
причина сего неизвестна, а решение есть, нужно добавить в файл
/etc/initramfs-tools/modules
вот это
overlayfs
aufs
а потом дать команду
Код: Выделить всё
sudo update-initramfs -u