Создаем с нуля LiveUSB на базе Debian Lenny
Давно когдато сделал себе LiveUSB брелок из старой флешки на 1GB. На днях случайно её форматнул 🙁 Ну чтож …. бывает — делал dd и случайно перепутал место назначения (упс!) Ну вот … вспоминаем как это делается. Заодно и запишем — ато вспоминается уже с трудом :-[ Вообщето по этому поводу есть целый проэкт с отличной документацией на офсайте вот тут. Согласно документации делаем так:
убедимся что в sources.list есть backports репозитарий — из него устанавливается наш главный инструмент для сборки:
deb http://www.backports.org/backports.org/ lenny-backports main contrib non-free
black:~#
Также процесс создания требует выполнения всего нескольких действий из под root, поэтому я основную массу действий производил под обычным пользователем black и переходил под root только если это действительно необходимо. Поэтому напоминаю: знак ‘$’ в приветствии означает ограниченный пользователь, а знак ‘#’ — пользователь root. Будьте внимательны!
Ставим пакет live-helper даже из названия ясно что он то нам поможет в процессе создания LiveUSB системы на все 100%:
Создаем директорию в которой будем собирать свой образ:
и переходим в нее:
Теперь выполняем следующие команды:
Это создаст необходимые для настройки и сборки директории. Вот они:
. .. config scripts .stage
black@black:~/work/LiveUSB$
Обратите внимание на директорию config — она нам понадобится в будущем!
В принципе используя следующую команду, запущенную от root, можно уже собрать свой LiveUSB:
После отработки данной команды появится собственно образ нашего свежесобранного LiveUSB в чем можно убедиться:
total 142M
drwxr-xr-x 6 root root 4.0K 2010-01-27 17:37 binary
-rw-r--r-- 1 root root 143M 2010-01-27 17:37 binary.img
-rw-r--r-- 1 root root 2.2K 2010-01-27 17:37 binary.list
-rw-r--r-- 1 root root 16K 2010-01-27 17:36 binary.packages
drwxr-xr-x 6 root root 4.0K 2010-01-27 17:36 cache
drwxr-xr-x 20 root root 4.0K 2010-01-27 17:38 chroot
drwxr-xr-x 22 black black 4.0K 2010-01-27 16:52 config
drwxr-xr-x 2 black black 4.0K 2010-01-27 16:52 scripts
black@black:~/work/LiveUSB$
binary.img — это и есть наш образ 🙂 НО! Он был создан с умолчательными конфигами. Вполне работоспособный, кстати.
На офсайте в работоспособности предлагают убедиться с помощью эмулятора qemu. Установим-ка и попробуем запустить то что собрали.
Пробуем запустить:
У меня получилось, и даже вполне успешно!
Однако, незнаю как вы, но я собираюсь собрать этот образ с некоторыми своими дополнительными настройками и пакетами.
- Хочу добавить такие пакеты:
gzip bzip2 rar unzip mc vim rsync lftp elinks ntfsprogs smbfs ntfs-3g e2fsprogs xfsprogs reiserfsprogs mkisofs cdrecord jfsutils dosfstools centerim-utf8 nmap tcpdump iftop mtr-tiny
- установить locale по умолчанию ru_RU.UTF8
Для того чтобы при следующей сборке все это поставилось, нужно немножко подправить файлы конфигурации в директории config (либо же можно использовать команду lh_config с огромным количеством ключей и параметров). Как видите, не все эти пакеты можно получить из директории main в репозитариях — а по умолчанию настроена только она. Добавить директории contrib и non-free можно вот здесь:
# $LH_CATEGORIES: select categories to use
LH_CATEGORIES="main contrib non-free"
black@black:~/work/LiveUSB$
Список пакетов для установки при сборке можно добавить вот тут:
# $LH_PACKAGES: set packages to install
LH_PACKAGES="gzip bzip2 rar unzip mc vim rsync lftp elinks ntfsprogs smbfs ntfs-3g e2fsprogs xfsprogs reiserfsprogs mkisofs cdrecord jfsutils dosfstools centerim-utf8 nmap tcpdump iftop mtr-tiny"
# $LH_PACKAGES_LISTS: set package list to install
LH_PACKAGES_LISTS="standard"
black@black:~/work/LiveUSB$
Теперь очищаем остатки от предыдущей сборки:
locale установим простенькой командой, заодно и тип LiveCD установим usb-hdd (мне же на флешку образ нужен):
Мне этого достаточно — теперь еще раз соберем образ:
В результате сборки получаем такойже binary.img но уже чуть побольше размером (наши пакеты все таки поставились).
locale такой как надо — вот скриншот 🙂
Все! Можем протестить опять же в qemu или сразу записать образ на флэшку (у меня флешка /dev/sdb) командой:
После окончания записи на флешку — можно пробовать забутиться с нашей новоиспеченной LiveUSB системы 🙂
Единственное что мне не понравилось в итоге — ожидающий нажатия Enter загружчик Syslinux — оказалось тоже легко поправить 🙂 Примонтировал раздел с ливкой и поправил в файлике /media/DEBIAN_LIVE/syslinux/prompt.cfg параметр timeout с 00 на 5.
Помните упоминал о том что конфигурить сборку можно одной «километровой» командой? Так вот пример такой команды:
Также нужные нам файлы можно закидывать в Live систему посредством папки config/chroot_local-include (напрмер я подложил свой vimrc сюда config/chroot_local-include/etc/vim/vimrc чтобы он применился в ливке). Короче конструктор еще тот …. вот подумываю создать из него роутер 🙂
Такой вот «хитрый брелок» я таскаю с собой почти всегда 🙂 Очень удобно — часто выручала. Надеюсь и вам поможет в нужный момент 😉