Ремастеринг Linux Mint и пр...

Всем добрый день.

Очень долгое время я был постоянным посетителем сайта русскоязычного сообщества 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 (в принцыпе, можно и не копировать повторно, но лучше перестраховаться)

Далее, по очереди вводите в терминал команды:

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

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

 
Обязательно проверяем наличие  ...

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.

причина сего неизвестна, а решение есть, нужно добавить в файл
/etc/initramfs-tools/modules
вот это
overlayfs
aufs
а потом дать команду
sudo update-initramfs -u









Комментариев нет:

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