Всем добрый день.
Очень долгое время я был постоянным посетителем сайта русскоязычного сообщества Linux Mint -- mintlinux.ru, но не так давно, на сайте произошла авария или его просто взломали, не суть, просто все материалы, которые выложены здесь, были и там, даже еще больше, а попытка повторной регистрации не увенчалась успехом... Жалко просто не сохраненной работы, хорошо, что большую часть я начал дублировать здесь. Сейчас, для любителей операционной системы Linux Mint организовали новую площадку linuxmint.com.ru, но проект достаточно молодой и публиковать там пока что-либо в виде блога не представляется возможным, но не об этом...
В связи с появлением большого количества утилит для Ubuntu-подобных систем для Backup-а, ну не так уж и много, но есть, а главное, они замечательно работают, появилось очень много любителей поделиться своими достижениями в области кастомизации известных дистрибутивов. Хочу обратить внимание на тот факт, что когда Вы создаете backup, то делается снимок системы со всеми достоинствами и недостатками, особенно это касается оборудования, поэтому, довольно часто созданная таким образом iso-шка уже содержит в себе некоторые глюки и на половине компьютеров корректно работать не будет.
Любителям ремастеринга -- отложите в сторону свои Remastersys-ы, Pinguy Builder-ы, Systemback-ы и прочие инструменты, делайте настоящие дистрибутивы, ничего сложного в этом нет. Я не открываю Америку, а просто интерпретирую уже имеющуюся статью.
Для начала установите нужное для ремастеринга ПО, откройте терминал и введите: (или просто Copy - Paste)
sudo aptitude install squashfs-tools genisoimage
далее, я не буду изгаляться и переименовывать каталоги предложенные в оригинале статьи, а просто, по-русски, изложу суть и докажу, что ничего нет проще, чем создать настоящий установочный *.iso образ, который будет не стыдно показать другим и после установки системы с него, глюков не будет больше чем было в оригинале, если, конечно Вы сами не перестараетесь.
Итак...
1. Создате рабочую директорию (папку, каталог...), это можно сделать и с помощью мыши...
mkdir ~/mylivecd
~/ означает, что... если Вы ремастерите, то уже знаете, что это означает, в противном случае, нужно еще немножко подучиться...
2. Скопируйте исходный образ в созданную директорию ~/mylivecd
cp /path_to_the_downloaded_iso_directory/linuxmint-17-cinnamon-64bit-v2.iso ~/mylivecd
это так же можно сделать с помощью мышки.
3. В терминале введите:
cd ~/mylivecd
перешли в каталог ~/mylivecd
mkdir mnt
создали директорию mnt
sudo mount -o loop linuxmint-17-cinnamon-64bit-v2.iso mnt
примонтировали исходный образ в эту директорию
mkdir extracted
создали каталог extracted
sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/ extracted
sudo unsquashfs mnt/casper/filesystem.squashfs
этими командами Вы скопировали содержимое iso и распаковали filesystem.squashfs
sudo mv squashfs-root edit
переименовали каталог squashfs-root который образовался в процессе распаковки в edit, вот в этом каталоге и нужно вносить изменения.
4. Для нормальной работы сети в процессе работы с будущей системой в среде chroot скопируте файлы из своей системы в "подопытную":
sudo cp /etc/resolv.conf edit/etc/
sudo cp /etc/hosts edit/etc/
хочу заметить, что как раз с этого места и начинается вход в chroot-окружение, за наличием в будущей системе этих файлов нужно следить, иначе невозможно будет установить что-либо.
5. xhost +
если Вы привыкли пользоваться программами с графическим интерфейсом (например Synaptic), то эта команда просто необходима, она позволяет запускать таковые из chroot окружения.
Еще одна команда монтирования...
sudo mount --bind /dev/ edit/dev
а теперь, собственно вход в chroot-окружение...
sudo chroot edit
как Вы поняли, если работу невозможно закончить сегодня, то выйдя из
chroot вход нужно начинать с шага копирования файлов сетевых настроек resolv.conf и hosts (в принцыпе, можно и не копировать повторно, но лучше перестраховаться)
chroot вход нужно начинать с шага копирования файлов сетевых настроек resolv.conf и hosts (в принцыпе, можно и не копировать повторно, но лучше перестраховаться)
Далее, по очереди вводите в терминал команды:
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root
export LC_ALL=C
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
7. Вот теперь можно делать все, что Вы обычно делаете со своей системой...
apt-get update
apt-get install ...
или запустить Synaptic командой...
synaptic
по опыту могу сказать, что не все работает корректно, например mintupdate запускается, но обновления не устанавливаются, я выхожу из данной ситуации другими способами.
Если есть пакеты с расширением *.deb и хочется их установить в будущую систему, нужно скопировать таковые в отдельный каталог, некоторые создают для этого отдельный каталог, я использую имеющийся /tmp и после копирования перехожу в него и даю команду на инсталяцию...
cd tmp
dpkg -i *.deb
Естественно, перед тем как ремастерить, нужно установить систему отдельно, настроить ее, а потом перенести все настройки в создаваемую, каждый решает эту проблему по-своему.
Если проводились эксперименты с ядрами или устанавливались другие необходимо дать пару команд
cp edit/boot/vmlinuz* extracted/casper/vmlinuz
cp edit/boot/initrd.img* extracted/casper/initrd.lz
cp edit/boot/vmlinuz* extracted/casper/vmlinuz
cp edit/boot/initrd.img* extracted/casper/initrd.lz
Обязательно проверяем наличие ...
apt-get install ubiquity-frontend-gtk
(Это, собственно, установщик Live-системы)
Допустим, что все уже сделано... или еще нет? Если нет, все равно переходите к следующему шагу...
8. Удаляем свое присутствие в будущем образе... Просто вводите поочередно команды изложенные ниже:
aptitude clean
rm -r /var/cache/apt/archives/*
rm -r /mydir
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/*
Все, Вы корректно вышли из chroot-окружения и если остались незаконченные дела, можно будет продолжить позже, начинать теперь нужно с шага 4 сего трактата предварительно проверив, что Вы находитесь в каталоге ~/mylivecd, если терминал запущен из меню, то ...
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
apt-get install ubiquity-frontend-gtk
(Это, собственно, установщик Live-системы)
Допустим, что все уже сделано... или еще нет? Если нет, все равно переходите к следующему шагу...
8. Удаляем свое присутствие в будущем образе... Просто вводите поочередно команды изложенные ниже:
aptitude clean
rm -r /var/cache/apt/archives/*
rm -r /mydir
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/*
Все, Вы корректно вышли из chroot-окружения и если остались незаконченные дела, можно будет продолжить позже, начинать теперь нужно с шага 4 сего трактата предварительно проверив, что Вы находитесь в каталоге ~/mylivecd, если терминал запущен из меню, то ...
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
10. Очень круглое число, любимое число Mr. Monk, теперь сжимаем все, что там "наваяли"...
Удаляем старый filesystem.squashfs
rm extracted/casper/filesystem.squashfs
А теперь упаковываем/сжимаем...
mksquashfs edit extracted/casper/filesystem.squashfs -comp xz
11. Обновляем разные обязательные файлы типа README или md5sums...
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
Ну и наконец-то собираем свою ISO-шку...
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.
enter 'help' for a list of built-in comands.
(initramfs) /cow format specified as aufs and no support found.
вот это
overlayfs
aufs
overlayfs
aufs
а потом дать команду
sudo update-initramfs -u
sudo update-initramfs -u
Комментариев нет:
Отправить комментарий