Данная статья является вольным переводом оригинального мануала с сайта Ubuntu.
ВНИМАНИЕ!!! Модификация производится непосредственно в установленной Ubuntu!
Раздел I. Подготовка системы и инструментов.
0. Для начала, нужно скачать образ диска системы (с каким рабочим столом, решайте сами, особой роли это не сыграет). Скачивать можно или с серверов самой Ubuntu,
либо с зеркал Яндекса, как напрямую в браузере, так и через торрент.
1. Cоздаём необходимые каталоги (можно прямо в домашней директории, можно в "Документах", тут уж кому как удобно):
mkdir livecdtmp;
mkdir livecdtmp/mnt - точка, в которой мы будем монтировать наш образ;
mkdir livecdtmp/extract-cd - а сюда мы будем его распаковывать;
2. Устанавливаем необходимые программы:
sudo apt install squashfs-tools genisoimage
3. Копируем образ в каталог livecdtmp;
4. Монтируем его:
sudo mount -o loop *имя-образа-диска*.iso mnt
5. Распаковываем образ в созданный ранее каталог extract-cd:
sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
6. Распаковываем squashfs - файловую систему, где хранятся все изменения, и переносим её для дальнейшей работы в каталог edit:
sudo unsquashfs mnt/casper/filesystem.squashfs;
sudo mv squashfs-root edit;
7. Копируем файл настроек сетевых подключений:
sudo cp /etc/resolv.conf edit/etc/
8. Монтируем необходимые каталоги будущей сборки:
sudo mount -o bind /run/ edit/run
9. На всякий пожарный, скопируем host-файл:
sudo cp /etc/hosts edit/etc/
10. Продолжаем монтировать каталоги:
sudo mount --bind /dev/ edit/dev - тот каталог, в котором мы и будем ковыряться :)
11. Заходим в ChRoot:
sudo chroot edit
12. И опять монтируем каталоги:
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
13. Переносим права на GPG-ключи и локали:
export HOME=/root
export LC_ALL=C
Раздел II. Внесение изменений в систему.
Итак, фронт работ мы приготовили, пришла пора прокачать нашу сборочку по самые уши!!!
0. Устанавливаем локализацию:
apt-get install language-pack-ru;
apt-get install localepurge (листаем до пунктов ru_RU и производных - это кодировки);
apt-get install locales console-cyrillic dialog dbus (переводим на великий и могучий консоль и метод ввода);
1. Через apt-get устанавливаем нужные программы;
2. Через add-apt-repository подключаем нужные репозитории;
3. Меняем точку отсчета времени:
dpkg-reconfigure tzdata
Настройка внешнего вида рабочего стола и прочих красивостей через терминал также возможна, но я в этом пока не разобрался.
Раздел III. Генеральная уборка.
0. Очищаем кеш пакетного менеджера:
apt-get clean;
1. Удаляем host-файл:
rm /etc/hosts
2. Удаляем следы преступления:
rm /var/lib/dbus/machine-id;
rm /sbin/initctl;
dpkg-divert --rename --remove /sbin/initctl;
3. Размонтируем каталоги, выходим из-под ChRoot:
umount /proc || umount -lf /proc;
umount /sys;
umount /dev/pts;
exit;
sudo umount edit/dev;
Раздел IV. Сборка образа
0. Замена файла манифеста:
chmod +w extract-cd/casper/filesystem.manifest
sudo su
chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest
exit
sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop
sudo sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop
1. Сжатие файла файловой системы:
sudo rm extract-cd/casper/filesystem.squashfs
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs -b 1048576
2. Обновим файл с размером файловой системы:
sudo printf $(du -sx --block-size=1 edit | cut -f1) > extract-cd/casper/filesystem.size
3. Изменяем название сборки:
sudo nano extract-cd/README.diskdefines
4. Меняем файл md5 суммы:
cd extract-cd;
sudo rm md5sum.txt;
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt;
5. И наконец, собираем образ:
sudo genisoimage -rational-rock -volid "Имя-Сборки" -cache-inodes -joliet -full-iso9660-filenames -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -output ../Имя-Образа.iso . && cd ..
Раздел V. Тестирование и отладка.
Итак, поздравляю! У нас есть своя убунта, с пасьянсами и нескучными обоями! Что дальше? Ну, наверное, стоит проверить наше творение.
Проверка через QEMU:
qemu -cdrom ubuntu-9.04.1-desktop-i386-custom.iso -boot d -m 512;
Можно также запускать образы и через VirtualBox. Будет, правда, немного медленно, но зато интуитивно понятно.
Если же у вас много денег/болванок, можно прожечь образ так же, как мы его и собирали - через консоль, и проверить на живом железе:
cdrecord dev=/dev/cdrom Имя-Образа.iso
Ссылка на оригинал: LiveCDCustomization
Вообще когда была Убунта 10.04 поиск нормального эмулятора заняло прилично времени. Остановился на gfceu, и даже эмулил через вайн что жесть. На сегу нормальный эмуль был Fusion а gens отображался криво.
ОтветитьУдалить