суббота, 21 марта 2009 г.

Изменение и обновление Ubuntu LiveCD

Целью модификации диска будет:
удаление ненужных пакетов поддержки других языков;
обновление программного обеспечения по настоящий момент;
подключение нужных репозитариев;
поддержка флеш, mp3, divx, ndiswrapper и т.п.
настройка работы со временем и другие настройки..
В результате может получится образ диска, превышающих размер компакт-диска, поэтому результат нужно будет использовать на DVD.

1. Подготовка:
Для начала нам будет нужен диск LiveCD Ubuntu 8.10 или его образ, также будет необходимо предварительное установить для модификации диска squashfs-tools - пакет для работы с сжатой файловой системой squashfs:
$ sudo aptitude install squashfs-tools
Пакет chroot ставить нет необходимости, т.к. стандартно он предустановлен.
Сразу оговоримся, если у вас диск LiveCD, то путь к нему /media/cdrom0/, если образ, то путь к образу ~/Desktop/, а монтировать будем как /tmp/livecd, поэтому для начала примонтируем образ, в последующем по ситуации при работе с диском, указанный путь /tmp/livecd/ меняйте на /media/cdrom0/:
$ mkdir /tmp/livecd
$ sudo mount -o loop ~/Desktop/ubuntu-8.10-desktop-i386.iso /tmp/livecd
После создаём директорию (папку) (cd), которая будет содержать наш будущий образ CD в рабочей директории (~/livecd) и копируем всё содержимое оригинального диска, кроме casper/filesystem.squashfs, в нашу директорию ~/livecd/cd:
$ mkdir ~/livecd
$ mkdir ~/livecd/cd
$ rsync --exclude=/casper/filesystem.squashfs -a /tmp/livecd/ ~/livecd/cd
Данная команда скопирует всё, кроме файла, содержащего squashfs - сжатого содержимого диска.
Теперь примонтируем casper/filesystem.squashfs в директорию, названную ~/livecd/squashfs с целью скопировать содержимое для последующего редактирования в директорию (папку): ~/livecd/custom
$ mkdir ~/livecd/squashfs
$ mkdir ~/livecd/custom
$ sudo modprobe squashfs
$ sudo mount -t squashfs -o loop /tmp/livecd/casper/filesystem.squashfs ~/livecd/squashfs/
$ sudo cp -va ~/livecd/squashfs/* ~/livecd/custom
Также по необходимости скопируем файлы /etc/resolv.conf и /etc/hosts в ~/livecd/custom/etc для того, чтобы получить доступ к сети из образа, с которым будем работать через команду chroot, данная операция не будет нужна, если вы будете обновлять образ, работая через прокси:
$ sudo cp /etc/resolv.conf /etc/hosts ~/livecd/custom/etc/

2. Входим в образ :)
С целью модификации образа, нам необходимо войти с помощью команды chroot, сделав рабочей корневой директорией ~/livecd/custom, также необходимо будет подключить псевдофайловые системы (/proc и /sys), и по необходимости указать прокси. После чего уже можно заняться модификацией образа.
$ sudo chroot ~/livecd/custom
# mount -t proc none /proc/
# mount -t sysfs none /sys/
# export HOME=/root
Если соединение с интернетом будет работать через прокси, то прописываем следующее:
# export http_proxy=http://127.0.0.1:3128
где 127.0.0.1:3128 адрес вашего прокси.

3. Модификация содержимого LiveCD:

3.1. Удаление пакетов:
Для начала по желанию можно удалить игры для освобождения места, а также удаляем пакеты, с неанглицкой локализацией, полную русскую локализацию поставим позже.
# apt-get remove --purge gnome-games*
# apt-get remove --purge `dpkg-query -W --showformat='${Package}\n' | grep language-pack | egrep -v '\-en'`
Также можете удалить любое иное программное обеспечение, в котором вам нет необходимости, следующая команда выведит полный список установленных пакетов:
# dpkg-query -W --showformat='${Package}\n' | less
Дополнительно отключим стандартное использование Ubuntu времени UTC, что очень неудобно при установке Ubuntu на систему постоянно, для этого редактируем файл /etc/default/rcS командой:
# nano /etc/default/rcS
и приводим параметр UTC к значению no, т.е. следующего вида:
UTC=no

3.2. Обновление образа:
Когда вы удалили всё ненужное ПО, вы можете произвести обновление пакетов, для чего необходимо модифицировать файл /etc/apt/sources.list так, как вам удобно, указав вам необходимые репозитарии, к примеру:
Для начала открываем для редактирования /etc/apt/sources.list
# nano /etc/apt/sources.list
и вставляем в файл следующее, заменив всё:
deb http://mirror.yandex.ru/ubuntu/ hardy main restricted
deb http://mirror.yandex.ru/ubuntu/ hardy-updates main restricted
deb http://mirror.yandex.ru/ubuntu/ hardy-security main restricted
deb http://mirror.yandex.ru/ubuntu/ hardy universe multiverse
deb http://mirror.yandex.ru/ubuntu/ hardy-updates universe multiverse
deb http://mirror.yandex.ru/ubuntu/ hardy-security universe multiverse
deb http://mirror.yandex.ru/ubuntu/ hardy-backports main restricted universe multiverse
deb http://mirror.yandex.ru/ubuntu/ hardy-proposed restricted main multiverse universe
deb http://deb.opera.com/opera etch non-free
deb http://packages.medibuntu.org/ hardy free non-free
deb http://wine.budgetdedicated.com/apt hardy main
Теперь производим обновление:
# aptitude update && aptitude upgrade

3.3. Устновка новых пакетов:
Для начала поставим все пакеты поддержки русской локализации:
# apt-get install language-pack-gnome-ru language-pack-gnome-ru-base language-pack-kde-ru language-pack-kde-ru-base language-pack-ru language-pack-ru-base language-support-extra-ru language-support-input-ru language-support-ru language-support-translations-ru language-support-writing-ru
Теперь установим мультимедия пакеты для проигрования различных форматов аудио и видео файлов:
# aptitude install gstreamer0.10-ffmpeg gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse vlc vorbis-tools mpg123
# /usr/share/doc/libdvdread3/install-css.sh
Также установим дополнительно пакеты для работы с архивами:
# aptitude install rar unrar unace-nonfree p7zip-full
Установим поддержку различных беспроводных сетевых (wifi) карт:
# aptitude install ndiswrapper-common ndiswrapper-utils-1.9 cabextract unshield bcm43xx-fwcutter kismet aircrack-ng madwifi-tools 
Дополнительное ПО для работы с сетью:
# aptitude install wireshark nmap ettercap traceroute
Плагины и полезные расширения для firefox:
# aptitude install flashplugin-nonfree mozilla-plugin-vlc adblock-plus
Шрифты Times New Roman, Arial и другие от MS, а также свободную альтернативу им:
# aptitude install msttcorefonts ttf-liberation
Дополнительные модули для клиента сетей мгновенных сообщений pidgin:
# aptitude install pidgin-encryption pidgin-hotkeys pidgin-libnotify pidgin-otr pidgin-plugin-pack pidgin-sipe pidgin-themes
Поддержку подключения в файловую систему сетевых ресурсов на основе Samba и SSH:
# aptitude install sshfs smbfs
Вы по желанию можете установить или вообще не устанавливать дополнительное ПО, можете к примеру установить skype, opera и тп..
Вы можете заранее закачать нужные или обновлённые пакеты, к примеру в папку ~/livecd/custom/tmp и установить их командой dpkg -i /tmp/имя_пакета.deb, так можно закачать и установить пакеты с сайта getdeb.net, в том числе для примера - последнюю версию transmission - стандартного для Ubuntu клиента torrent-сетей.

4. Зачищаем будущий образ:
Замечу, что при обновлении образа 8.04 Hardy Heron после обновлений командой aptitude upgrade необходимо удалить все пакеты ядра с индексом 16 как ненужные для освобождения места, т.к. будут установлены как минимум с индексом 17, найти 16-ые их можно командой:
# aptitude search 16
а потом удаляем пакеты командой:
# aptitude purge linux-image-2.6.24-16-generic linux-headers-2.6.24-16-generic linux-headers-2.6.24-16 linux-ubuntu-modules-2.6.
После установки программ необходимо зачистить кеш пакетов:
# apt-get clean
что аналогично команде:
# rm /var/cache/apt/archives/*.deb
Также зачистить директории временных файлов и аварийных завершений:
# rm -rf /tmp/*
# rm -rf /var/tmp/*
# rm -rf /var/crash/*
Если вы ранее копировали эти файлы /etc/hosts and /etc/resolv.conf, нужно их удалить:
# rm -f /etc/hosts /etc/resolv.conf
Теперь готовы выходить из chroot и перепаковывать диск, для это сперва отмонтируем /proc и /sys:
# umount /proc/
# umount /sys/
# exit
Теперь осталось пересоздать некоторые файлы, сжать файловую систему и создать образ диска.

5. Создание образа диска:
Для удобства в будущем рекомендую сразу создать файл make-livecd командой:
$ nano make-livecd
следующего содержания, файл пригодится для последующего быстрого пересоздания вновь образа диска:
#/bin/sh
#
# sudo -s
chmod +w ~/livecd/cd/casper/filesystem.manifest
chroot ~/livecd/custom dpkg-query -W --showformat='${Package} ${Version}\n' > ~/livecd/cd/casper/filesystem.manifest
cp ~/livecd/cd/casper/filesystem.manifest ~/livecd/cd/casper/filesystem.manifest-desktop
mksquashfs ~/livecd/custom ~/livecd/cd/casper/filesystem.squashfs -noappend
rm ~/livecd/cd/md5sum.txt
cd ~/livecd/cd && find . -type f -print0 | xargs -0 md5sum > md5sum.txt
cd ~/livecd/cd
mkisofs -r -V "Ubuntu-Live-custom" -b isolinux/isolinux.bin -c isolinux/boot.cat -cache-inodes -J -l -no-emul-boot -boot-load-size 4 -boot-info-table -o ~/Desktop/Ubuntu-Live-8.04-custom.iso . 
Далее берём себе на время права root:
$ sudo -s
Даём права на запуск скрипта по созданию диска и запускаем его:
# chmod +x ./make-livecd
# ./make-livecd
Затем ждём окончания создания образа и тестируем готовый образ через виртуальную машину или же реально, записав на болванку.

6. Заключение:
Все действия удобно производить в отдельном окне терминала, рекомендую на будущее не удалять директорию (папку) ~/livecd, это позволит вам в будущем быстро повторить шаги инструкции 2-5 и обновить LiveCD, т.к. обновления в дистрибьютиве идут постоянно. Также подобные действия возможно произвести над другими дисками LiveCD типа kubuntu, xubuntu.

Удачи, если что, обращайтесь с замечаниями и комментариями...
Все предложенные в статье тексты файлов и команд удобнее копировать и вставлять нежели перепечатывать... Ж)


>как сделать язык установки по умолчанию русский
В папке isolinux создать файл lang с одной строчкой:
ru
ещё можно поменять содержимое isolinux/langlist

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

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