Страница 1 из 2

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

Добавлено: 11 сен 2016, 21:35
olegwhite
Всем добрый день.
В связи с появлением большого количества утилит для 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. если Вы привыкли пользоваться программами с графическим интерфейсом (например 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 и после копирования перехожу в него и даю команду на инсталяцию...

Код: Выделить всё

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 -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 0

Код: Выделить всё

sudo umount edit/dev

можно игнорировать собщения об ошибке
тоже что и xhost + только наоборот

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

Код: Выделить всё

sudo rm -rf edit/run/synaptic.socket

Код: Выделить всё

sudo rm -rf edit/home/*
Все, Вы корректно вышли из chroot-окружения и если остались незаконченные дела, можно будет продолжить позже, начинать теперь нужно с шага 4 сего трактата предварительно проверив, что Вы находитесь в каталоге ~/mylivecd, если терминал запущен из меню, то ...

Код: Выделить всё

cd ~/mylivecd 
Все, закончили? "Собираем"-ся...

9. Регенерируем filesystem.manifest, мало что это говорит, в принципе и вникать особо не нужно, скажу только, что после внесенных нами/Вами изменений системе нужно обновить информацию о своем новом содержании. Просто вводим последовательно команды и не обращаем внимания на предупреждения...

Код: Выделить всё

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 .

Прошу обратить внимание на точку в конце, она обязательна, иначе ничего не получится.

Код: Выделить всё

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

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

Добавлено: 16 окт 2016, 16:37
x230
Wow!

Просто для о-о-очень понимающих.
Для простого же люда есть способ проще (как это делал я):
1) копируем в каталог /etc/skel следующее (на примере Mate):


в том числе каталог '.config'


в том числе каталог '.local/share'


добавляем сюда свой установленный софт и ессно браузеры со своими настройками.

2) устанавливаем Remastersys:
если не нашли в Инете, то скачать можно тут:
... для LM до 17.3: http://x230.ru/downloads/remastersys-3.0.4-1.zip
и
... для LM 18.*: http://x230.ru/downloads/remastersys-3.1.1-2.zip

3) Запускаем Remastersys и жмём кнопки как на картинке:
a)
выбор картинки меню загрузки

b)
выбираем имя пользователя, назв.пункта загрузки и (не слишком длинное) название дистра.

c)
жмём заветную кнопочку и идем пить кафу.


Всё!

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

Добавлено: 16 окт 2016, 16:42
x230
Прилагаю файлы установки Remastersys.
На всякий случай...

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

Добавлено: 16 окт 2016, 20:02
olegwhite
x230 писал(а): Прилагаю файлы установки Remastersys.
В принципе, я не спорю, намного проще и удобнее, но... Но не на всех конфигурациях созданный таким образом образ запустится/корректно установится, об этом я упомянул в начале сего трактата. Например, буквально сегодня пытался установить французский Cubuntu / своеобразный салат "Оливье" из рабочих окружений (Unity+MATE+Cinnamon), и не получилось, скорее всего из-за того, что собирался образ чем-то наподобие Remastersys, а моя конфигурация сильно отличается от исходной, даже в Live не загрузился. А вот еще пример, есть такой себе очень стильненький дистрибутивчик Uberstudent для образовательных учреждений, но опять таки, из-за способа сборки установился, но некорректно отрисовывает графику на SiS-овской видеокарточке... Вот так вот.
Если Вы создаете образ для себя, чтобы развернуть быстро на большом количестве однотипного оборудевания - Remastersys Вам в руки, а если собираетесь устанавливать систему не только себе, но и друзьям, то чтобы избежать конфуза, лучше создать образ описанным в статье способом.

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

Добавлено: 04 ноя 2016, 01:54
Chocobo
olegwhite писал(а): Но не на всех конфигурациях созданный таким образом образ запустится/корректно установится,
Плюсую, после проведенных сегодня экспериментов с этими инструментами.

Сначала решил пойти "легким путем", т.к. окружение уже настроено, с нуля выстраивать в чруте все изменения лениво и муторно. Но remastersys не сумел пережевать мои амбиции - менялось и окружение и dm, комозит, перелопачена немалая часть пакетов и конфигов...

Все опыты проводились без изменения аппаратных конфигураций, на одной и той же машине. В лайв загружаться я его все-таки кое-как приучил, но вот ubiquity продолжил падать без какой-либо ругани в debug-логи, просто "Аварийное завершение" :cray2:

Наигравшись с этими граблями вдоволь и познав дзен неоднократной пересборки образов после незначительных правок :dash2: (невольно вспомнилось время жизни в gentoo) - постепенно пришло понимание что действовать стоит пошагово методом из шапки.

В итоге оно заработало с первого раза. Разумеется, как и предполагалось, в процессе творчества за чрутом забыл добавить некоторые пакеты и конфиги, но скажем так "преальфа-версию" будущего образа - можно считать успешной. :vic:

olegwhite, мои Вам благодарности, за эту инструкцию :thumbs:

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

Добавлено: 04 ноя 2016, 15:46
olegwhite
Chocobo писал(а):...Наигравшись с этими граблями вдоволь и познав дзен неоднократной пересборки образов после незначительных правок :dash2: (невольно вспомнилось время жизни в gentoo) - постепенно пришло понимание что действовать стоит пошагово методом из шапки.

В итоге оно заработало с первого раза. Разумеется, как и предполагалось, в процессе творчества за чрутом забыл добавить некоторые пакеты и конфиги, но скажем так "преальфа-версию" будущего образа - можно считать успешной.
Вот точно так и я, "наигрался с этими граблями" и в конце-концов пришел к вышеизложенному методу, да, косяки бывают, НО, но это мои косяки, а не разрабов "облегчающих" мне жизнь, если ошибка, то она МОЯ и мне ее исправлять.
Единственное, что бы мне хотелось сделать, так это написать пару скриптов, а вернее разделить весь процесс на три скрипта (может 4), а точнее, все хотелось заключить в одну оболочку с тремя кнопками (с использованием zenity) - подготовка, вход в chroot (вход, работа в окружении и, соответственно, выход, это чтобы можно было прерваться и продолжить работу в удобное время) , сборка. Но никак времени не выделю, я не программист, принцип написания скриптов понимаю, по "образу и подобию" состряпать могу все что угодно, но нужно время, потому как я многого не знаю и постигаю все по мере необходимости, а сейчас на повестке дня есть рабочие организационные вопросы которые забирают у меня уйму сил и энергии, и абсолютно не связанные с компьютерной техникой и ПО...

P.S. А что собираем?

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

Добавлено: 04 ноя 2016, 17:30
Chocobo
olegwhite, хорошая идея подговиьт инструментарий. Тоже подумаю на досуге в этом направлении :thumbs:
olegwhite писал(а): P.S. А что собираем?
Да я все играюсь с WM'ками, чтоб собрать неприхотливую систему без особых потерь от исходного юзабилити присущей Минту. Если все пойдет нормально, скоро представлю что-нибудь в общий доступ, пока рано)

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

Добавлено: 04 май 2017, 10:20
Chocobo
Апну темку спустя полгода :smile:
В случае применения инструкции к LMDE2+ или LM 18+ - в 3-м пункте путь к .squashfs будет mnt/live/filesystem.squashfs
при сборке разумеется также.

И еще один момент, в 18+ и LMDE2 для сборки iso-образа необходимо использовать genisoimage, который пришел на смену mkisofs. Синтаксис и ключи не изменились.

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

Добавлено: 01 июн 2017, 14:45
Dja
А здесь именно live получается? С возможностью сохранять изменения? С возможностью грузиться в ефи и легаси?

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

Добавлено: 01 июн 2017, 15:20
Chocobo
Dja, Это перебор оригинального ISO, т.е. предполагается что он будет таким же, как и официальный образ но с твоими правками - дальше уже полет фантазии. Обычный лайв образ с возможностью установки (если не снести из комплекта сам инсталлер ubiquity :smile: ).
По уефи - я когда игрался уефи отломил напрочь. Но в сети встречал мануалы как это дело исправить. Сам пока не пробовал, за ненадобностью

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

Добавлено: 01 июн 2017, 15:43
Dja
Chocobo, дело в том, что если подключаться в легаси, то на целевом ноуте ловлю подвисон. Ни на что не реагирует. Минут 10-15 сессии и всё. В ефи вроде такого не наблюдалось. (лайв)

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

Добавлено: 01 июн 2017, 16:28
Chocobo
Ну у меня пока нет идей как это может быть связано. Работа системы в целом вряд ли может зависеть от метода загрузки.
если виснет лайв - может сам носитель тут причем?

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

Добавлено: 01 июн 2017, 16:28
Dja
Chocobo, лайв в легаси вроде не пробовал...

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

Добавлено: 25 июл 2017, 10:48
root
LM-C 18.2
Да вроде ничего не мутил, но почему выскакивает ошибка при попытке обновить индексы
Репозиторий «cdrom://Linux Mint 18.2 _Sonya_ - Release amd64 20170628 xenial Release» не содержит файла Release. Данные из этого репозитория нельзя аутентифицировать, и поэтому потенциально из небезопасно использовать.Смотрите справочную страницу apt-secure(8) о создании репозитория и настройке пользователя.Не удалось получить cdrom://Linux Mint 18.2 _Sonya_ - Release amd64 20170628/dists/xenial/contrib/binary-i386/Packages Пожалуйста, используйте apt-cdrom, чтобы APT смог распознать данный CD. apt-get update не используется для добавления нового CD Некоторые индексные файлы не скачались. Они были проигнорированы или вместо них были использованы старые версии.
Которая решается отключением репозитория в gui. Но почему-то в самом filesystem.squashfs в /mnt/etc/apt я не наблюдаю этого репозитория. Как мне отключить данную ошибку еще на этапе, когда я собираю файловую систему?

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

Добавлено: 25 июл 2017, 13:41
x230
root писал(а): Как мне отключить данную ошибку
Эта галка стоит?

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

Добавлено: 25 июл 2017, 13:57
Chocobo
root, эта строка похоже генерится инсталлером на этапе установки, и где-нибудь там же конфигурится сценариями ubiquity

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

Добавлено: 25 июл 2017, 14:15
root
x230, все по дефолту, не знаю, как там по дефолту, не отвечу. В chroot я ничего такого не менял (даже банально не знаю как поменять)

Chocobo, в том то и дело, что я даже к этапу установки не переходил. Чисто в live сессии сидел и такая ошибка :sad:

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

Добавлено: 27 июл 2017, 16:54
root
Примечание: вместо dpkg можно использовать gdebi, запущенный с параметром -n, --non-interactive, т.е. неинтерактивно, разработчики замечают, что это "(опасно!)", но у меня с данной опцией никаких проблем не случалось. Главный плюс gdebi, что он решает зависимости, в отличии от dpkg, который устанавливает пакет, несмотря ни на что. В общем, gdebi -n имя_файла

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

Добавлено: 27 июл 2017, 17:09
Chocobo
root, с тем же успехом можно и apt install ./someprogram.deb :smile:

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

Добавлено: 27 июл 2017, 17:16
root
Chocobo, да?! не знал. :sry:

Пользуясь случаем, вновь напомню о моем вопросе, дабы заходящие его не пропустили мимолетом)
root писал(а): LM-C 18.2
Да вроде ничего не мутил, но почему выскакивает ошибка при попытке обновить индексы
Репозиторий «cdrom://Linux Mint 18.2 _Sonya_ - Release amd64 20170628 xenial Release» не содержит файла Release. Данные из этого репозитория нельзя аутентифицировать, и поэтому потенциально из небезопасно использовать.Смотрите справочную страницу apt-secure(8) о создании репозитория и настройке пользователя.Не удалось получить cdrom://Linux Mint 18.2 _Sonya_ - Release amd64 20170628/dists/xenial/contrib/binary-i386/Packages Пожалуйста, используйте apt-cdrom, чтобы APT смог распознать данный CD. apt-get update не используется для добавления нового CD Некоторые индексные файлы не скачались. Они были проигнорированы или вместо них были использованы старые версии.

Которая решается отключением репозитория в gui. Но почему-то в самом filesystem.squashfs в /mnt/etc/apt я не наблюдаю этого репозитория. Как мне отключить данную ошибку еще на этапе, когда я собираю файловую систему?