RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Решился наконец написать еще одну статью на тему LiveCD. В какой-то
мере она основана на докладе Коли Маржана с конференции kiyvbsd09, за что
ему отдельное спасибо. А где-то на старой статье. Но методика и идея
сохранилась старая. Тоесть у нас будет два ключевых этапа: 1) сам LiveCD от
которого мне нужно только возможность загрузиться с него, определить
устройства, подготовить жесткий диск для дальнейшего разворачивания на него
дампа системы и базовая настройка системы которую мы развернем. 2) сам дамп
предустановленной системы.
Данная картинка представляет
приблизительную "схему" того что мы будем дальше делать. А делать все будем
скриптами ;)
iso -> ----------------- |1) LiveCD |
| |---------- | 2) dump |
----------------- Немного о файлах и их значении 1) 1.minsys -
главный скрипт который и будет собирать исошку
./1.minsys
--> Specify arch - amd64 or i386
--> Example: ./1.minsys i386 or ./1.minsys amd64
при таком запуске он попросит указать архитектуру. По
большому счету здесь имееться ввиду файл конфиг ядра для amd64 или
i386. Файлы ядра находяться в этой же папке. GENERICamd64,
GENERICi386 переименовывать их не нужно. cvsupfile - файл
конфиг который будет использовать csup make.conf - без коментариев, на
момент написания статьи практического применения ему не нашел ,(поэтому он
пустой) но оставил - ведь всё может быть :) src.conf - опции для
сборки мира...Стоит заглянуть возможно вам нужны маны или еще
что-то. packages.sh - в данной статье не используеться.
setup - его задача развернуть дамп готовой системы и прописать
базовые настройки
Итак приступим к первому этапу - созданию
LiveCD Качаем архив со скриптами
fetch ftp://ftp.lissyara.su/users/morty/isonew/isonew.tbz
isonew.tbz 100% of 8625 B 38 kBps
и распаковываем его
tar -xjf isonew.tbz
Далее правим конфиг ядра amd64 или i386 в
зависимости от того что вы используете. src.conf - комментируем что-то
если не устраивает, либо можно его полностью очистить. cvsupfile -
если хотим указать то зеркало cvs которое к нам ближе. Можно запускать : (не
забываем перед этим установить cdrtools)
./1.minsys i386
--------------------------
--> Dirs are present, creation don't needed
--> cvsup run not needed
--> Skiping build of world...
--> Kernel build don't needed
--> minsys.tbz, creation don't needed
--> You already have CD, /usr/iso/data/live.iso
И пойдет процесс сборки мира, ядра и т.д. у меня этого не
видно т.к. я уже это все сделал. Для удобства я добавил файлы-флаги которые
находятся тут :
ll /usr/iso/tmp/
total 0
-rw-r--r-- 1 root wheel 0 Oct 221:53 1_iso.world
-rw-r--r-- 1 root wheel 0 Oct 222:45 2_iso.kernel
-rw-r--r-- 1 root wheel 0 Oct 222:46 3_iso.minsys
-rw-r--r-- 1 root wheel 0 Oct 222:46 4_iso.livecd
по ним можно контролировать процесс либо если нужно
пересобрать только начиная с определенного момента , например с ядра то нужно удалить флаги 2,3,4. Либо если нужно просто перепаковать исо то
удаляем 4ый флаг и запускаем скрипт поновой.
В результате имеем
следующее:
ls -lahF /usr/iso/ /usr/iso/data/
/usr/iso/:
total 16
drwxr-xr-x 8 root wheel 512B Oct 219:53 ./
drwxr-xr-x 17 root wheel 512B Oct 122:19 ../
drwxr-xr-x 3 root wheel 512B Oct 512:24 data/
drwxr-xr-x 3 root wheel 512B Oct 219:53 obj/
drwxr-xr-x 22 root wheel 512B Oct 122:27 src/
drwxr-xr-x 2 root wheel 512B Oct 512:12 stuff/
drwxr-xr-x 3 root wheel 512B Oct 122:19 sup/
drwxr-xr-x 2 root wheel 512B Oct 222:46 tmp/
/usr/iso/data/:
total 86214
drwxr-xr-x 3 root wheel 512B Oct 512:24 ./
drwxr-xr-x 8 root wheel 512B Oct 219:53 ../
drwxr-xr-x 16 root wheel 512B Oct 222:45 chroot_dir/
-rw-r--r-- 1 root wheel 55M Oct 222:46 live.iso
-rw-r--r-- 1 root wheel 29M Oct 222:46 minsys.tbz
Создание CD за 5 минут На этом первый
этап заканчивается. Если нет желания(времени) собирать "подложку" (мир и
ядро)для LiveCD, пакет minsys.tbz можно скачать здесь PS: собран он на FreeBSD 7.2-RELEASE-p4 i386 Либо
использовать скрипт 9.lazy (он предпологает что СД будет с дампом на
борту) Он сам скачает minsys.tbz и попытается создать CD в 9-ом скрипте
рабочая директория задана переменной ${dir1} - для удобства
Второй
этап: снятие дампа ФС с готовой системы. Подразумеваеться что система
установлена одним разделом - / Монтируем флэшку: (Либо другое устройство куда
будем снимать дамп) и запускаем второй скрипт
mount_msdosfs /dev/da0s1 /mnt/
./2.dump
DUMP: Date of this level 0 dump: Mon Oct 513:08:252009
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping snapshot of /dev/ad0s1a (/) to standard output
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 5037154 tape blocks.
DUMP: dumping (Pass III) [directories]
удаляем флаг на создание исошки и запускаем по-новой
скрипт
rm /usr/iso/tmp/4_iso.livecd
./1.minsys i386
В результате мы получаем СД
ls -lah /usr/iso/data/live.iso
-rw-r--r-- 1 root wheel 547M Oct 514:33 /usr/iso/data/live.iso
загрузившись с которого вызываем наш скрипт
setup
/root/setup
------------- !Warning! ---------------------
Preparing for installation...
YES - will proceed installation of system
NO - reboot the system
---------------------------------------------
Do you want to start the installation:
разворачиваем систему с нашего дампа который был сделан
ранее
На этом все ... Далее выкладываю 2 основных скрипта : 1.minsys
и setup целиком можно скачать тут