Преамбула:
Нужно выполнить свою сборку ОС на основе Linux-ubuntu с минимальным набором программ и упаковать это в Live-CD-ISO-image, который впоследствии можно модернизировать.
Минимальное потребление памяти.
Размер полученного Live-CD-ISO-image должен быть меньше 350 МБ.
В установленной через chroot Linux-Ubuntu невозможно изменить GNOME-панели для пользователя
(в Дебиан то же самое).
Чтобы обойти это ограничение надо:
1. Сделать из /chroot SquashFS-файл и сделать Live-CD-ISO-образ
Загрузить ISO-image в виртуальную машину и настроить GNOME-панели для своих задач.
Сейчас (в моей системе) 2 пользователя - 'root' (passw 'root') и 'q'(passw '111111').
2. Загрузить Midnight-Commander как root и упаковать корневую файловую систему (/bin /boot /etc ... /usr /var) в архивные файлы *.tar.bz2 или *.tar.gz
3. С помощью ssh (он установлен) скопировать эти архивные файлы на HOST-машину (например в /live-boot-ubuntu/bak-from-VMware)
4. Выйти из виртуальной машины и распаковать созданные архивы в пустую /chroot директорию.
5. Выполнить chroot в chroot-директорию.
# apt-get install --reinstall gdm (потому что после реконфигурации gnome-панелей gdm login-window обрезает часть окна и выбор пользователя невозможен).
Удалить xdm (X-desktop-manager):
# update-rc.d -f xdm remove
# update-rc.d -f gdm defaults
# update-initramfs -k all -u
# exit (выход из choot-окружения).
6. Скопировать обновленный initrd.img и создать новый squashfs-файл.
7. Создать новый SD-ISO-image ubuntu-live-gnome2.iso
И он работает уже так, как положено и ожидалось.
Возможно в новой виртуальной машине потребуется переустановить пакет 'sudo'
После всего этого можно либо удалить пользователя 'root' либо изменить его пароль 'root' на что-то более сложное.
Примечания:
Показать
Но при этом графическое окружение рабочего стола менее удобно для пользователя.
Размер программ для рабочего стола Гноме в Дебиан получается заметно больше, чем в Убунту, а это отражается на размере конечного дистрибутива.
То есть попытка скрестить Дебиан-базу с Гномом не совсем удачное решение.
Настройка локализации не только для рабочего стола но и для терминала в Дебиан сложнее, чем в Убунту - кириллизация получается кривая.
Возможности GNOME значительно богаче, чем например возможности LXDE (но и тяжеловесней).
Но если надо сделать пользовательскую сборку на основе Дебиан, то выбор LXDE будет более предпочтительным и предсказуемым в работе.
Я не обнаружил в использовании каких-либо преимуществ ядра Линукс 3.2--3.5 по сравнению с ядром 3.0 и даже 2.36
Поэтому для создания своего дистрибутива я выбрал Убунту 10.04 LTS с ядром 3.0 (backport).
Чтобы пользовательская сборка дистрибутива имела небольшой размер и содержала только то, что выбрал пользователь, удобнее всего использовать chroot-окружение.
А для того, чтобы такую сборку можно было установить на жесткий диск компьютера или на флэш-диск, удобнее всего сборку преобразовать в Live-CD-ISO-image.
В Убунту для создания Live-CD используется Casper. Он "тяжеловат" на мой взгляд.
В Дебиан есть live-boot, live-config, live-build, live-tools.
Live-boot компактней и удобней, а главное достаточен для поставленной задачи.
Здесь отсутствует та часть Live-CD, которая позволяет сразу после загрузки установить операционную систему на раздел жесткого диска, или на флэш-диск.
У меня не было такой задачи, но в сборке присутствует программа live-config, которая может эту задачу выполнить (есть и другие возможности).
Задача звучит так:
Показать
б) полученный дистрибутив должен загружаться в виртуальной машине и при желании устанавливаться на виртуальный жесткий диск этой виртуальной машины,
в) полученный дистрибутив должен позволять его последующие модификации и дополнения, а также сохранение этих модификаций,
г) минимальное потребление памяти (показатели виртуальной машины не самые точные, но тем не менее достигнут результат менее 100 МБ в только что запущенной машине).
Полученный образ может работать на виртуальной машине с выделением для нее всего 144 БМ памяти и потреблять на старте 80 МБ из этой памяти.
Представление о потребляемых ресурсах также дает список запущенных системой процессов (их количество) и выделенной для этих процессов памяти.
Думаю, что эту задачу я выполнил.
Чтобы уменьшить потери времени при повторении некоторых этапов работы (а это почти неизбежно), полезно выполнить архивирование промежуточных результатов:
1. base-system полученную через debootstrap
2. base-system с установленным ядром системы (kernel из chroot-окружения)
3. base-system, kernel, установленные графические элементы рабочего стола (Xorg, Gnome-DE или Gnome-panel) и минимальный набор программ (например mc).
Но для этого архивирования необходимо каждый раз выходить из chroot-окружения.
В моей конкретной реализации присутствуют такие программы:
Показать
firefox (web-bowser установливается по умолчанию вместе в архиватором xarchiver)
leafpad (легкий текстовый редактор)
file-roller (родной для gnome архиватор)
urxvt (терминал грамотно поддерживающий кодировку UTF-8)
mc (Midnight-Commander - файловый менеджер работающий и без графической среды).
Для лучшего понимания процесса в архиве есть почищенный лог установки системы.
Есть также скриншоты работающей системы.
Можно еще больше облегчить сборку заменой firefox на midori (или даже на dillo).
Аналогичная работа на базе Дебиан есть здесь на форуме:
http://linuxforum.ru/viewtopic.php?id=30346
Ссылки на архив:
Показать
http://www.mediafire.com/download/hm8mh9bi1hrdk85/ubuntu-live-gnome2.iso
http://www.mediafire.com/download/nbyu25b90ly0tbr/template-live-boot-ubuntu.tar.gz
http://www.mediafire.com/download/vbgrmj0h43w7tr0/screenshots.tar.gz
http://www.mediafire.com/view/kt80u1odu9usqnu/HowToMake-custom-Live-CD-ISO.txt

