Здравствуйте, уважаемые пользователи!
Совершенно случайно наткнулся в своих закромах на руководство, по которому был пересобран мой первый исошник.
Кое-что взято из журнала 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/loop
mount -o loop feisty.iso /mnt/loop
Теперь содержимое
feisty.iso доступно в
/mnt/loop. Нам надо скопировать его в нашу файловую систему, создаём директорию и копируем всё содержимое, вот так:
mkdir ubuntu-rebuild
rsync -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-source
rsync -av /mnt/loop/. ubuntu-source
umount /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/d
END
sed -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Мб).