Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Приемы работы в Ubuntu.
Глава 1. Приступаем к работе

Оригинал: "Ubuntu Hacks: Chapter 1 - Getting Started"
Авторы: Кайл Ранкин, Джонатан Оксер, Билл Чайлдерс (Kyle Rankin, Jonathan Oxer, Bill Childers)
Дата публикации: June 2006
Перевод: Н.Ромоданов
Дата перевода: июль 2010 г.

Совет # 4: Индивидуальная настройка Ubuntu Live CD

Снимаем копию, прожигаем и загружаем: создаем персональную версию Ubuntu Live CD с вашим собственным комплектом программного обеспечения и документов

Ubuntu Live CD [Совет # 1] содержит полностью настроенную систему Ubuntu, которая может работать прямо с компакт-диска, и ее не требуется устанавливать на жесткий диск. Она идеально подходит для демонстрации Linux на компьютерах, на которых установлены другие операционные системы, поскольку после того, как вы вытащите CD и перезагрузите компьютер, он возвращается в точно такое состояние, в каком он был первоначально. Это абсолютно безболезненный способ протестировать Linux без всякого риска.

Live CD также исключительно полезен при восстановлении машин, которые не загружаются: просто вставьте Live CD и перезагрузите компьютер, и вы получите полностью работающую Linux систему, с помощью которой можно получить доступ к внутреннему жесткому диску, копировать файлы по сети, или делать все, что еще нужно для восстановления системы. Вы даже можете воспользоваться флешкой [Совет # 3] для сохранения всех изменений, внесенных в среду Live CD.

Ubuntu Live CD запускает полноценную среду рабочего стола, которая по функциональности идентична стандартной системе Ubuntu, но, возможно, вам нужен Live CD, в котором будут конкретные программы и документы, предназначенные для вашего конкретного случая. Например, вы хотите создать Live CD, который загружает машину, как полностью настроенный маршрутизатор и межсетевой экран, работающий без жесткого диска. Либо, возможно, вам нужен специальный диск для анализа состояния системы, имеющий предустановленные инструментальные средства антивирусного сканирования и сетевого анализа, плюс контрольные суммы всех важных файлов.

Нет проблем. Вы можете создать персонализированную версию Ubuntu Live CD, сконфигурированную именно так, как вам нужно.

Основные требования

Для того, чтобы создать образ диска Live CD, требуется огромный объем памяти, поэтому вам нужно до 5 Гб своппинг памяти плюс еще как минимум 3 Гб свободного дискового пространства для хранения образа. Вам также нужны инструментальные средства для создания и монтирования образов дисков.

Добавляем своппинг память

Хотя образ диска будет сжиматься, в памяти должны полностью помещаться две его копии, так что без большого объема своппинг памяти (памяти подкачки) вы не сможете выполнить сжатие, что необходимо при создании образа ISO.

Не беспокойтесь, если у вас еще нет раздела подкачки размером в 5 ГБ. Вы можете создать временный своп-файл в одном из существующих разделов без переформатирования. Если предположить, что у вас внутри директория /tmp (обычно в вашем корневом разделе) есть по меньшей мере 5 ГБ свободного пространства, можно создать дополнительный файл подкачкис помощью команды dd:

$ sudo dd if=/dev/zero of=/tmp/swap bs=1M count=5000

На создание файла подкачки может потребоваться очень много времени, так что вам придется быть терпеливым. После того, как будет создан файл, вы можете настроить файловую систему swap и активировать ваш новый своппинг:

$ sudo mkswap /tmp/swap
$ sudo swapon /tmp/swap

Вам не нужно отключать ваш первый уже существующий своп раздел. Linux достаточно умен с тем, чтобы одновременно работать с несколькими разделами подкачки. Так что в вашей системе общий объем пространства подкачки теперь должен равняться 5 ГБ нового файла подкачки плюс уже существующий ваш своп раздел.

Установка инструментальных средств

Чтобы смонтировать образ диска как устройство loopback и создать ISO образ для вашего персонального Live CD, вам потребуются пакеты cloop-utils и mkisofs, а для того, чтобы работать со сжатой файловой системой squashfs на Live CD, вам потребуется пакет squashfs-tools:

$ sudo apt-get install cloop-utils mkisofs squashfs-tools

Стандартный Live CD

Хотя можно создавать Live CD с нуля, намного легче начинать с модификации уже существующего стандартного Ubuntu Live CD. Можно загрузить ISO образ Live CD по ссылке http://cdimage.ubuntu.com/, либо использовать один из CD, который можно получить от фирмы Canonical по программе бесплатной рассылки ShipIt (https://shipit.ubuntu.com/).

Подготавливаем исходный образ

Для того, чтобы в процессе создания образа избежать проблем с Юникодом, удостоверьтесь, что для вашей локали установлено значение C:

$ export LC_ALL=C

Смонтируйте оригинальный ISO образ Ubuntu Live CD как устройство loopback:

$ mkdir ~/mnt
$ sudo mount dapper-live-i386.iso ~/mnt -o loop

Это команда смонтирует образ CD в вашем домашнем директории в ~/mnt. Если потребуется, можно использовать другое место или смонтировать реальный Live CD в приводе CD-ROM.

Скопируйте все содержимое смонтированного образа в рабочий директорий, но будьте внимательны и не копируйте сжатую файловую систему filesystem.squashfs, поскольку вы должны ее разархивировать отдельно. Вы можете выполнить копирование с помощью команды rsync:

$ rsync --exclude=/casper/filesystem.squashfs -a ~/mnt/ ~/extracted_cd

Затем разархивируйте сжатую файловую систему. В Dapper Live CD используется файловая система squashfs с правами только на чтение, в отличие от предыдущей версии Ubuntu Live CD, в которой используется файловая система cloop. Для того, чтобы работать с системой squashfs, вам нужно загрузить модуль ядра squashfs:

$ sudo modprobe squashfs

Теперь вы можете смонтироваь эту файловую систему и скопировать ее содержимое на ваш локальный жесткий диск:

$ mkdir squash
$ sudo mount -o loop ~/mnt/casper/filesystem.squashfs squash
$ sudo cp -a squash extracted_fs

Приготовьтесь немного подождать до тех пор, пока все не будет выполнено. Как только все закончится, вы будете иметь полную распакованную копию образа Live CD, так что вы можете размонтировать оригинал:

$ sudo umount ~/mnt

Строим файловую систему в создаваемом вами образе

Смонтируйте в создаваемом вами образе виртуальные файловые системы proc и sys:

$ sudo mount -t proc proc ~/extracted_fs/proc
$ sudo mount -t sysfs sysfs ~/extracted_fs/sys

В некоторый момент, вам потребуется использовать операцию chroot с темо, чтобы войти в образ CD, и, поэтому, если есть файлы, которые будут вам нужны на вашем индивидуально настраиваемом CD, то самый простой способ их добавить — смонтировать их в домашнем директории /home компакт диска:

$ sudo mount -o bind /home ~/extracted_fs/home

После этого, поскольку вы использовали команду chroot, вы будете иметь полный доступ к любым файлам, находящимся в вашем домашнем директории.

Используем индивидуальные настройки

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

$ sudo chroot ~/extracted_fs/ /bin/sh

Теперь, если вам это любопытно, вы находитесь в системе Live CD и можете выполнять операции чтения и записи. С этого момента вы можете для обновления программ, установленных на Live CD, использовать обычные инструментальные пакеты.

Удаляем ненужные пакеты

Live CD изначально практически заполнен, поэтому, если вы хотите установить дополнительные пакеты, вам, вероятно, сначала потребуется освободить для них место. Если вам нужно принять решение о том, какие пакеты удалять, с помощью следующей команды можно получить список установленных пакетов, отсортированный по их размеру:

$ dpkg-query -W --showformat='${Installed-Size;10} ${Package}\\n' | \\
                    sort -gr | less

Тем не менее, будьте очень аккуратны, поскольку некоторые пакеты очень важны для того, чтобы система вообще работала. Live CD с GNOME создан на основе Ubuntu, так что если вы ищете подсказку, касающуюся того, какие пакеты можно удалить, можете сначала посмотреть конфигурационный файл системы с GNOME, который доступен по ссылке http://cvs.gnome.org/viewcvs/livecd-project/livecd.conf?view=markup.

Как только вы укажете те пакеты, которые нужно удалить, вы можете их деинсталлировать с помощью команды dpkg:

$ sudo dpkg -r --purge packagename

Устанавливаем дополнительные пакеты

Обычные инструментальные пакеты, использующие сеть, не будут работать в режиме chroot, поэтому, к сожалению, не удастся добавлять пакеты с помощью простой операции apt-get install foo. Есть несколько способов обойти эту ситуацию, например, скопировать в файл hosts, в котором для серверов репозитариев уже указаны их IP адреса, поскольку в режиме chroot вы не можете выполнять поиск с использованием сервиса DNS.

Хотя простейший способ, вероятно, состоит в обычной предварительной загрузке некоторых пакетов в ваш домашний директорий и использовании команды dpkg для их установки после входа в режим chroot.

Подсказка

Один очень крутой трюк, который упростит этот процесс, состоит в запуске менеджера пакетов Synaptic на вашей хостовой системе, поиске и отметке пакетов, которые вы хотите установить на вашем Live CD, а затем - выборе пункта меню "File→Generate package download script" ("Файл → Генерировать скрипт загрузки пакета"). После этого у вас будет скрипт, который вы можете локально запустить для того, чтобы загрузить и сохранить пакеты, запомнив их в вашем домашнем директории, откуда они будут доступны в режиме chroot.

Настраиваем домашний директорий

Когда загружается Live CD, он каждый раз заново создает пользовательский домашний директорий, используя для этого файлы, находящиеся в /etc/skel. Если у вас есть конкретные файлы, которые вы хотите добавить в домашний директорий, вы можете поместить их в директорий skel.

Размонтирование настроенного образа

Теперь, когда сделаны все ваши изменения, выйдите из chroot, а затем размонтируйте файловые системы:

$ exit
$ sudo umount ~/extracted_fs/home
$ sudo umount ~/extracted_fs/sys
$ sudo umount ~/extracted_fs/proc

Теперь ваша настроенная файловая система готова к повторному сжатию, но, прежде всего, нужно создать новый файл манифеста, в котором отражены изменения, внесенные вами в список установленных пакетов. Если, на самом деле, вы не устанавливали и не удаляли каких-либо программ, вы можете пропустить этот шаг.

Вы не сможете выполнить это действие с помощью команды sudo (в действительности, вы должны все делать с правами root), поэтому перейдите в оболочку root с помощью команды sudo -s:

$ sudo -s

Теперь создайте новый манифест:

# chroot extracted_fs dpkg-query -W \\
                 --showformat='${Package} ${Version}\\n' \\
                 > extracted_cd/casper/filesystem.manifest

После этого вы можете выйти из оболочки root.

Переупаковываем файловую систему

Теперь необходимо создать новую файловую систему squashfs, которая будет перенесена в CD:

$ sudo mksquashfs extracted_fs extracted_cd/casper/filesystem.squash

Опять же, на этот этап может уйти достаточно много времени.

В Live CD также должен быть файл с контрольной суммой, который можно использовать для проверки целостности сжатой файловой системы. Контрольная сумма должна вычисляться внутри образа диска:

$ cd ~/extracted_cd
$ find . -type f -print0 | xargs -0 md5sum > md5sum.txt

Создаем образ ISO

Все, что было до этого момента, не зависело от архитектуры, но заключительный этап создания образа ISO зависит от того, на системе с какой архитектурой вы работаете:

x86 (i386) и x86_64 (amd64)

Используйте следующую команду:

$ sudo mkisofs -r -V "Custom Ubuntu 6.04 Live CD" \\
                          -cache-inodes \\
                          -J -l -b isolinux/isolinux.bin \\
                          -c isolinux/boot.cat -no-emul-boot \\
                          -boot-load-size 4 -boot-info-table \\
                          -o custom-dapper-live-i386.iso extracted_cd

PowerPC

Для архитектуры PowerPC нужно загрузить hfs.map:

$ wget http://people.ubuntu.com/~cjwatson/hfs.map

Затем создаем фактический образ ISO:

$ sudo mkisofs -o new_image.iso -chrp-boot \\
                          -U -part -hfs -T -r -l -J -A "application_id" \\
                          -sysid PPC -V "volid" -volset 4 -volset-size 1 \\
                          -volset-seqno 1 -hfs-volid "volume_name_hfs" \\
                          -hfs-bless extracted_cd/install \\
                          -map hfs.map -no-desktop -allow-multidot extracted_ppc_cd

IA64

Используйте следующую команду:

$ sudo mkisofs -r -V "Custom Ubuntu 6.04 Live CD ia64" \\
                          -o custom-dapper-live-ia64.iso -no-emul-boot \\
                          -J -b boot/boot.img -c boot/boot.catalog extracted_cd

Прожигаем диск и загружаемся

Теперь у вас есть образ ISO вашего персонального Live CD, поэтому прожгите образ на диске [Совет # 33] и опробуйте его.

Дополнительная информация и скрипты

Процесс создания персонального Live CD является до некоторой степени ручной и трудоемкой работой, но некоторые из описанных выше этапов можно упростить при помощи скриптов live_cd_tools, которые можно найти в интернете по адресу http://wiki.ubuntu.com/LiveCDCustomizationHowTo. Однако, следует отметить, что процесс создания Dapper Live CD немного отличается от старого процесса, используемого в предыдущих версиях, таких как Breezy, где вместо сжатой файловой системы squashfs использовалась файловая система loopback, поэтому проверьте, что вы не пользуетесь скриптами, предназначенными для устаревшего процесса.


Назад Оглавление Вперед