К основному контенту

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

Вот заказал через shipit диски Ubuntu Livecd, как всегда при релизах, многие пакеты серьёзно стали обновляться уже после выхода релиза. Вот как раз недавно, обновился Firefox до версии 3 RC в отличии от 5ой беты в релизе. Плюс в Livecd отсутствовали пакеты руссификации, что тоже не очень хорошо. Так почему бы не создать свой Livecd с нужным ПО. Предлагаемый способ не решает проблему с предустановленными настройками пакетов, но позволяет настроить некоторые параметры системы, к примеру, настройки времени по UTC и другое.

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

1. Подготовка:
Для начала нам будет нужен диск LiveCD Ubuntu 8.04 или его образ, также будет необходимо предварительное установить для модификации диска 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.04-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.

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

За основу взята статья с debuntu.org

Популярные сообщения из этого блога

Настройка сервера на Scaleway

Для создания сервера на Scaleway потребуется зарегистрироваться, ввести данные своей карты для оплаты, а также сгенерировать ssh ключи. Последние нужны для первоначальной авторизации на свежесозданном сервере.
Как сгенерировать ssh ключ, много написано, ищите ssh-keygen. Под windows можно попробывать Putty, но у меня как-то с ним не срослось. Мне же удобнее использовать программу JuiceSSH на android, удобный клиент, достаточно для работы в терминале.

Создаем в JuiceSSH идентификатор root, генерируем секретный ключ RSA, далее через меню на созданном идентификаторе экспортируем открытый ключ, который необходимо вставить в Поле SSH keys на странице Credentials, жмакаем Use this SSH key.

Далее переходим к созданию сервера. Я выбрал тип сервера VC1S, образ Ubuntu Xenial (16.04 latest), в Advanced Options указываем - использовать ли IPv6.

Всё. Сервер будет создан и запущен через непродолжительное время.

После его запуска, через терминал, где был сгенерирован вами ключ, в моём случае в Juic…

Оффлайн (полные) установщики некоторых программ

Очень часто нужны бывают ссылки на скачивание некоторых программ в offline/full виде, оффлайновые (полные) установщики. Здесь список ссылок, часто мною используемых, как памятка:
SkypeYandex БраузерYandex Диск классической версии 1.4Yandex Диск новой версии 3.0Opera БраузерFirefox БраузерThunderbird почтовый клиентOrigin