Автор Тема: Создание live-cd Ubuntu  (Прочитано 100345 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн VolVik

  • Новичок
  • **
  • Автор темы
  • Сообщений: 26
  • Удача терпеливых любит!!!
    • SPO
Создание live-cd Ubuntu
« : Декабрь 13, 2010, 16:08:26 »
Здравствуйте, уважаемые пользователи!
Совершенно случайно наткнулся в своих закромах на руководство, по которому был пересобран мой первый исошник.
Кое-что взято из журнала Linux Format, что-то почерпнуто в просторах интернета. Решил поделиться (на старом форуме тоже выкладывал). Возможно, кому-нибудь пригодится.

Получение ISO-файла                                                  
Для пересборки Ubuntu нужен образ Десктоп СД (live-cd, а не Alternate CD на базе командной строки). Скачать последнюю стабильную версию можно с http://relaeses.ubuntu.com . Скачиваем образ ubuntu-x.xx-desktop-i386.iso в домашнюю директорию и переименовываем в feisty.iso.

Монтирование образа
Образ CD нужно подмонтировать к файловой системе. Открываем терминал, переключаемся на администратора ( sudo bash), вводим следующее:
mkdir /mnt/loopmount -o loop feisty.iso /mnt/loop
Теперь содержимое feisty.iso доступно в /mnt/loop. Нам надо скопировать его в нашу файловую систему, создаём директорию и копируем всё содержимое, вот так:
mkdir ubuntu-rebuildrsync -ax /mnt/loop/. ubuntu-rebuildПосле этого директория ubuntu-rebuild будет содержать файлы диска. Теперь можно отмонтировать iso-образ ( umount /mnt/loop ).

Подготовка
Теперь необходимо распаковать сжатую файловую систему с CD Ubuntu; для этого используем SquashFS, представленной в Ubuntu в пакете squashfs; также нужно установить squashfs-tools. Сжатая файловая система подмотируется так:
mount ubuntu-rebuild/casper/filesystem.squashfs /mnt/loop -t squashfs -o loopТеперь в /mnt/loop находится содержимое сжатой файловой системы Ubuntu — той, что используется, когда Вы загружаетесь в режиме LiveCD. Копируем её в новый каталог нашей домашней директории:
mkdir ubuntu-sourcersync -av /mnt/loop/. ubuntu-sourceumount /mnt/loop
Изменение пакетов
Теперь всё на своих местах. Переключаемся на файлы дистрибутива, как будто именно его мы и запустили. За это надо сказать спасибо маленькому инструменту chroot. он меняет восприятие корневой файловой системы, и можно «притвориться»,  что мы находимся в другом дистрибутиве. Вводим следующие команды — первая настраивает сетевое соединение внутри файловой системы Ubuntu:
cp /etc/resolv.conf ubuntu-source/etc/chroot ubuntu-source
Теперь мы находимся внутри каталога ubuntu-source, как если бы он был корневым (/). Мы запустили тот же дистрибутив, который идёт на LiveCD, но теперь его можно изменять! С помощью apt-get можно добавлять и удалять пакеты — например:
apt-get install abiwordдобавит приложение AbiWord, а для удаления используем команду:
sudo apt-get -y remove abiword
Обновление
Закончив, набираем exit, чтобы выйти из файловой системы Ubuntu и вернуться в свой обычный дистрибутив. Теперь надо сгенерировать список файлов, имеющихся в обновленном образе Ubuntu. Для этого набираем следующую команду-монстр:
chroot ubuntu-source dpkg-query -W --showformat=`${Version}` | grep -v deinstall > ubuntu-rebuild/casper/filesystem.manifestНеобходимо также сказать установщику Ubuntu, когда он запустится, чтоб игнорировал определённые пакеты. Например, после инсталяции иконка «Установить» на рабочем столе уже ни к чему. Итак, пробежимся по списку инсталируемых файлов ( при помощи sed ) и удалим компоненты исключительно для LiveCD:
cat > /tmp/sedscript <<END/casper/d/libdebian-installer4/d/os-prober/d/ubiquity/d/ubuntu-live/d/user-setup/dENDsed -f /tmp/sedscript < ubuntu-rebuild/casper/filesystem.manifest > ubuntu-rebuild/casper/filesystem.manifest-desktop
Ремастеринг
Теперь нам надо пересобрать образ файловой системы SquashFS -- это займёт до получаса....
mksquashfs ubuntu-source/ ubuntu-rebuild/casper/filesystem.squashfs -noappend
 Далее обновим контрольную сумму md5 для подтверждения целостности диска:
(cd ubuntu-rebuild && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)
И наконец, команда mkisofs создаст нам новый ISO-образ:
mkisofs -r -V "My Modified Ubuntu" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o newbuntu-1.iso ubuntu-rebuild
Если всё прошло удачно, то мы имеем файл newbuntu-1.iso, который можно прожечь на CD-R, DVD-R (если он больше 700Мб).


Я мало пишу, но темы читаю! :)
SPO

Оффлайн Prof1983

  • Активист
  • ****
  • Сообщений: 499
  • Digital Economy Institute
Re: Пересборка live-cd Ubuntu
« Ответ #1 : Сентябрь 21, 2011, 21:34:10 »
Собрал собственную сборку по этому описанию на основе Runtu LITE 10.04. 201107.
Выполнял такие действия:
aptitude install rsync
aptitude install squashfs-tools

mkdir /mnt/loop
mount -o loop feisty.iso /mnt/loop
mkdir ubuntu-rebuild
rsync -ax /mnt/loop/. ubuntu-rebuild
umount /mnt/loop
mount ubuntu-rebuild/casper/filesystem.squashfs /mnt/loop -t squashfs -o loop
mkdir ubuntu-source
rsync -av /mnt/loop/. ubuntu-source
umount /mnt/loop
cp /etc/resolv.conf ubuntu-source/etc/

cp /etc/apt/apt.conf ubuntu-source/etc/apt/

chroot ubuntu-source

apt-get update
apt-get upgrade
apt-get clean

rm /var/cache/apt/archives/lock
rm /var/cache/debconf/config.dat-old
rm /var/cache/debconf/templates.dat-old
mv /etc/apt/apt.conf /etc/apt/apt-.conf

dpkg -l > filesystem.manifest
exit
mv ubuntu-source/filesystem.manifest ubuntu-rebuild/casper/filesystem.manifest

mksquashfs ubuntu-source/ ubuntu-rebuild/casper/filesystem.squashfs -noappend
cd ubuntu-rebuild && find . -type f -print0 | xargs -0 md5sum > md5sum.txt
cd ..
mkisofs -r -V "Runtu Lite 2010.0 Alpha1" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o runtu-lite-2010.0-alpha1-prof1983.iso ubuntu-rebuild

Еще в профиль на диске (/home/runtu/) внес некоторые свои конфигурационные файлы:
/home/runtu/.config/lxpanel/
/home/runtu/.config/midori/
/home/runtu/.config/ob-autostart/
/home/runtu/.config/openbox/

Содержимое /home/runtu/.config/ob-autostart/config
# OB_Autostart config
# coding: utf-8
LAUNCH_LIST = [
("Звук приветствия","aplay /usr/share/sounds/login.wav","0","*"),
("xset-kb","xset r rate 210 35","3","*"),
("xset-mouse","xset m 120","4","*"),
("Визуальные эффекты","xcompmgr-runtu --startstop","1",""),
("Менеджер буфера обмена","parcellite","2",""),
("Отключить затемнение монитора","xset s off; xset -dpms","0","*"),
("Активировать Ctrl+Alt+BkSpace","setxkbmap -option terminate:ctrl_alt_bksp","0",""),
]

Обновлений закачалось аж на 90 с лишним MiB.
Размер .iso получился 412 MiB. Оригинал занимает около 371 MiB.
Libre.Life - Свободная жизнь Libre.Money - Свободные деньги Libre.Su - Свободный союз

Оффлайн Prof1983

  • Активист
  • ****
  • Сообщений: 499
  • Digital Economy Institute
Re: Пересборка live-cd Ubuntu
« Ответ #2 : Сентябрь 25, 2011, 21:25:52 »
Сделал очередную пересборку с обновлением и немного измененными конфигурациями.
В сборке сделал обновление пакетов до 25.09.2011, обновил ядро с 2.6.32-33 -> 2.6.32-34.
Есть по крайней мере одна проблема: при попытке в Настройках панели lxpanel -> Внешний вид -> Шрифт -> При нажатии на CheckBox панель выпадает (то есть завершает работу). Если запустить из консоли lxpanel, то при выпадании выводит сообщение с ошибкой (уже не помню что именно). В какую сторону нужно копать, чтобы победить этот баг?

Прикладываю файл с "скриптами" которые я выполнял. Вернее выполнял я действия копируя команды в ручную, но скрипт теоретически должен сработать.
Libre.Life - Свободная жизнь Libre.Money - Свободные деньги Libre.Su - Свободный союз

Оффлайн Alopex

  • Постоялец
  • ***
  • Сообщений: 159
  • зима близко...
Re: Пересборка live-cd Ubuntu
« Ответ #3 : Сентябрь 25, 2011, 21:44:35 »
Обновлений закачалось аж на 90 с лишним MiB.
Размер .iso получился 412 MiB. Оригинал занимает около 371 MiB.
удали всё из /var/cache/apt/archives/ кроме папки /partial
сферический саппорт в информационном вакууме

Оффлайн Prof1983

  • Активист
  • ****
  • Сообщений: 499
  • Digital Economy Institute
Re: Пересборка live-cd Ubuntu
« Ответ #4 : Сентябрь 27, 2011, 18:12:06 »
удали всё из /var/cache/apt/archives/ кроме папки /partial
Да. Я это сделал в последней версии.

Вот в этой теме (Пересборка Runtu LiveCD) нашел еще кое что:
рекомендую также эти статьи:
https://help.ubuntu.com/community/LiveCDCustomization
https://help.ubuntu.com/community/LiveCDCustomizationFromScratch
Это руководства по созданию дистрибутивов на основе Ubuntu, правда на английском.

Пользователь решил продолжить мысль: Сентябрь 27, 2011, 18:22:33
Еще тут (Установка nautilius) FSnow писал:
1. Из контекстного меню раб. стола вызывается утилита gnome-appearance-properties из пакета gnome-control-center. В Runtu LXDE и Runtu Lite этот пакет не установлен, т.к. тянет за собой много лишнего. Если будет время, то напишу ему замену.
В связи с этим у меня возник вопрос: можно ли сделать обрезанный пакет аналогичный gnome-control-center, но без сервиса gnome-settings-daemon? То есть, чтобы утилитки просто взаимодействовали с X.org или прописывали нужные парамеры в соответсвующие конфиги.

Лично мне сейчас не хватает трех графических утилит:
1. Для настройки шрифтов;
2. Для настройки задержки клавиатуры;
3. Для настройки яркости монитора по умолчанию при загрузке (а то сейчас приходится каждый раз убавлять).
« Последнее редактирование: Сентябрь 27, 2011, 18:22:33 от prof1983 »
Libre.Life - Свободная жизнь Libre.Money - Свободные деньги Libre.Su - Свободный союз

Оффлайн butjapka

  • Местный
  • *****
  • Сообщений: 1151
  • Компьютер думает так, как думает его хозяин.
Re: Пересборка live-cd Ubuntu
« Ответ #5 : Сентябрь 30, 2011, 07:28:25 »
Прикладываю файл с "скриптами" которые я выполнял. Вернее выполнял я действия копируя команды в ручную,
но скрипт теоретически должен сработать.
Не знаю, делали вы или нет операции с apt, чтоб иметь возможность
установить все имеющиеся пакеты на новую систему
Более низкоуровневые утилиты управления deb-пакетами
(такие, как dselect и dpkg) ведут специальный список состояний
пакетов, который может использоваться для управления тем,
какие пакеты должны быть установлены или удалены в пакетном
режиме (именно так работает связка dselect+dpkg). Его же можно
использовать для многих других целей, например, переноса конфигурации
системы на другую машину. Выполни следующую команду:

$ dpkg --get-selections > file

Перенеси файл на другую машину и выполни на ней две команды:
# cat file > dpkg --set-selections
# apt-get dselect-upgrade

В систему будут добавлены все пакеты системы-источника. Чтобы файл
состояний пакетов также содержал информацию о том, какие пакеты
следует удалить из системы, добавь символ «\*» после аргумента '--get-selections'.
Список состояний не содержит версии пакетов, это можно использовать после
установки более новой версии дистрибутива для приведения его к требуемому
состоянию.
источник

Оффлайн Prof1983

  • Активист
  • ****
  • Сообщений: 499
  • Digital Economy Institute
Re: Пересборка live-cd Ubuntu
« Ответ #6 : Сентябрь 30, 2011, 16:01:43 »
Такой команды не знал. Позже может быть попробую.

Однако, хочу заметить, что сборка дистрибутива, на сколько я понимаю, - это не только установка пакетов из репозитория, но и добавление/замена файлов конфигураций, картинок, иконок и т.д. и т.п. А так же добавление программок которых нет в репозиториях, всякие исправления (патчи, блокировка от обновления) и т.п.

Пользователь решил продолжить мысль: Сентябрь 30, 2011, 16:06:59
Кстати, есть соседняя тема: Выгрузить список установленных пакетов
« Последнее редактирование: Сентябрь 30, 2011, 16:06:59 от prof1983 »
Libre.Life - Свободная жизнь Libre.Money - Свободные деньги Libre.Su - Свободный союз

Оффлайн Пользователь.

  • Местный
  • *****
  • Сообщений: 4639
Re: Пересборка live-cd Ubuntu
« Ответ #7 : Сентябрь 30, 2011, 16:13:00 »
Лично мне сейчас не хватает трех графических утилит:
1. Для настройки шрифтов;
2. Для настройки задержки клавиатуры;
3. Для настройки яркости монитора по умолчанию при загрузке (а то сейчас приходится каждый раз убавлять).
шрифты рабочего стола в гконфе у наутилуса в десктоп
шрифты опенбокса в обконфе
шрифты внутри окон в лксаппеаренсе
остальные параметры только в текстовых конфигурационных файлах



Пользователь решил продолжить мысль: Сентябрь 30, 2011, 16:15:50
Однако, хочу заметить, что сборка дистрибутива, на сколько я понимаю, - это не только установка пакетов из репозитория, но и добавление/замена файлов конфигураций, картинок, иконок и т.д. и т.п. А так же добавление программок которых нет в репозиториях, всякие исправления (патчи, блокировка от обновления) и т.п.

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

у минта так
« Последнее редактирование: Сентябрь 30, 2011, 16:15:50 от Пользователь. »

Оффлайн Prof1983

  • Активист
  • ****
  • Сообщений: 499
  • Digital Economy Institute
Re: Пересборка live-cd Ubuntu
« Ответ #8 : Октябрь 01, 2011, 20:40:54 »
шрифты рабочего стола в гконфе у наутилуса в десктоп
шрифты опенбокса в обконфе
шрифты внутри окон в лксаппеаренсе
...
В этих настройках/конфигах можно указать в основном только название и размер шрифта. А вот графической программки настройки размытости и сглаживания в Runtu LITE нет. Нужно попробовать как-то на досуге выдернуть из пакета gnome-control-center программку настройки шрифта и необходимые библиотеки, но без gnome-settings-daemon.

Пользователь решил продолжить мысль: Октябрь 01, 2011, 20:44:31
Вот тут обнаружил тему, в которой обсуждалась сборка от Alopex и lillgrinn: Как сделать сборку самому.
На сколько я понял, результат можно посмотреть здесь: сборка на основе ubuntu 11.04 с gnome (БЕЗ unity).
« Последнее редактирование: Октябрь 01, 2011, 20:59:07 от prof1983 »
Libre.Life - Свободная жизнь Libre.Money - Свободные деньги Libre.Su - Свободный союз

Оффлайн Sash0k

  • Прохожий
  • *
  • Сообщений: 2
Re: Пересборка live-cd Ubuntu
« Ответ #9 : Октябрь 21, 2011, 08:42:24 »
Возникла необходимость сделать пару специфичных сборок на базе GNU/Linux для нужд одного предприятия.
Выбрал Runtu LITE 10.04 - 201107 (выбирал между ней и Debian 6). Качество сборок у Сергея отличное, система с марта работает на сервере и рабочем компьютере, нареканий не вызывала.

При пересборке выявилась следующая проблема: после распаковки оригинального squashfs вот этим файлам
Цитировать (выделенное)
/usr/bin/fswallpaper
/var/lib/dpkg/info/fswallpaper.postinst
/var/lib/dpkg/info/fswallpaper.postrm
/usr/share/pixmaps/ob-autostart.png
/usr/share/applications/ob-autostart.desktop
/usr/share/sounds/login.wav
присваивается текущий пользователь и группа основной системы (uid>999), поэтому после пересборки squashfs неработоспособен.
Для решения проблемы можно сделать sudo chown root и sudo chgrp root для каждого файла из списка.

Сделал скрипт, автоматизирующий пересборку образа, если кому-то будет нужен - во вложении.
Пользоваться так: sudo ./iso-rebuild.sh image.iso
Попадаем в чрут образа, делаем необходимые изменения, выходим командой exit
Пересобранный образ собирается и кладется рядом с оригинальным.

Оффлайн Alopex

  • Постоялец
  • ***
  • Сообщений: 159
  • зима близко...
Re: Пересборка live-cd Ubuntu
« Ответ #10 : Октябрь 21, 2011, 13:43:53 »
а заниматься под рутом (всмысле не судо, а сперва в терминале получить права рута а потом  всё остальное.) не пробовали? тогда не слетят права.
судо баш пред испольованием проблему  не решает, мс например всё равно ищет мою домашнюю папку.
 в остальном скрипт отрабатывает без косяков. спасибо, будем пользоваться
« Последнее редактирование: Октябрь 21, 2011, 14:19:42 от Alopex »
сферический саппорт в информационном вакууме

Оффлайн nik_user

  • Новичок
  • **
  • Сообщений: 69
Re: Пересборка live-cd Ubuntu
« Ответ #11 : Ноябрь 25, 2011, 21:23:43 »
а как изменить иконки, внешний вид рабочего стола, картинку на рабочем столе и т.п.
читаю - записки на память http://nikmy.ru

Оффлайн Alopex

  • Постоялец
  • ***
  • Сообщений: 159
  • зима близко...
Re: Пересборка live-cd Ubuntu
« Ответ #12 : Ноябрь 26, 2011, 04:40:00 »
а как изменить иконки, внешний вид рабочего стола, картинку на рабочем столе и т.п.
через конфиги, или на чистом профиле всё настроить и скопировать его в сборку.
сферический саппорт в информационном вакууме

Оффлайн nik_user

  • Новичок
  • **
  • Сообщений: 69
Re: Пересборка live-cd Ubuntu
« Ответ #13 : Ноябрь 26, 2011, 09:34:03 »
а как изменить иконки, внешний вид рабочего стола, картинку на рабочем столе и т.п.
через конфиги, или на чистом профиле всё настроить и скопировать его в сборку.
если бы знал как, не спросил. Хочю собрать для своих нужд, т.к. хочется, т.к. в некоторых метсах нет инета, а GSM дорого и т.к. для рабочих компов, т.к. на работе трафик дорогой, уже все подготовить, а дома с этим проще т.е. все с инета
вот как с настроенной своей системы пренести, настроенную панель иконки, ... в точно таком же расположении и видом
« Последнее редактирование: Ноябрь 26, 2011, 11:04:07 от nik_user »
читаю - записки на память http://nikmy.ru

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3474
Re: Пересборка live-cd Ubuntu
« Ответ #14 : Ноябрь 28, 2011, 12:13:51 »
вот как с настроенной своей системы пренести, настроенную панель иконки, ... в точно таком же расположении и видом

   Скопируйте содержимое домашнего каталога в /etc/skel и измените владельца файлов на root.