В связи с появлением большого количества утилит для Ubuntu-подобных систем для Backup-а, ну не так уж и много, но есть, а главное, они замечательно работают, появилось очень много любителей поделиться своими достижениями в области кастомизации известных дистрибутивов. Хочу обратить внимание на тот факт, что когда Вы создаете backup, то делается снимок системы со всеми достоинствами и недостатками, особенно это касается оборудования, поэтому, довольно часто созданная таким образом ISO-шка уже содержит в себе некоторые глюки и на половине компьютеров корректно работать отказывается. Любителям ремастеринга -- отложите в сторону свои Remastersys-ы, Pinguy Builder-ы, Systemback-ы и прочие инструменты, делайте настоящие дистрибутивы, ничего сложного в этом нет. Я не открываю Америку, а просто интерпретирую уже имеющуюся статью. Для начала установите нужное для ремастеринга ПО, откройте терминал и введите: (или просто Copy - Paste)
Код: Выделить всё
sudo aptitude install squashfs-tools genisoimage1. Создате рабочую директорию (папку, каталог...), это можно сделать и с помощью мыши...
Код: Выделить всё
mkdir ~/mylivecd2. Скопируйте исходный образ в созданную директорию ~/mylivecd
Код: Выделить всё
cp /path_to_the_downloaded_iso_directory/linuxmint-17-cinnamon-64bit-v2.iso ~/mylivecd3. В терминале введите:
Код: Выделить всё
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 edit4. Для нормальной работы сети в процессе работы с будущей системой в среде 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=C6. Последние приготовления...
Код: Выделить всё
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.isoP.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

