Зміст
FreeBSD на флешке
Есть не плохая статейка по теме: Опыт миграции на usb на сайте лиссяры.
От себя могу предложить немного упрощенный вариант:
- Предварительная подготовка
- Форматируем флешку
- Копируем минимальное окружение
- Правка системных файлов
- Ставим загрузчик
- Готово
Автор по ходу еще предлагает поставить софт “сразу”. Благодаря новой системе пакетов pkg считаю необходимость “в извращениях” не сильно актуальным. Проще “на готовой уже поставить”.
Поехали:
Предварительная подготовка
Автор этим не занимается. Мне так проще … Помогает “в будущем”.
Этот “хак” очень удобен при использовании/разворачивании jail“ов.
С ближайшего FTP, для меня это Украинские, например ftp6.ua.freebsd.org качаем архивы по необходимости (все качать не обязательно):
ftp://ftp6.ua.freebsd.org/pub/FreeBSD/releases/i386/10.0-RELEASE
i386 - архитектура
10.0-RELEASE - версия, сейчас самая актуальная. Но поддерживаются и более ранние.
Файлы
base.txz - “базовая система”. для jail можно больше ни чего не качать. :)
doc.txz - “документация”. в объяснениях не нуждается :)
games.txz - :)
kernel.txz - “Ядро”. Нам для флешки тоже необходимо.
ports.txz - “порты”. Необходимо для установки ПО из портов. Может пригодиться. По желанию\необходимости легко потом добавляется.
src.txz - Исходные коды. аналогично портам.
Для “маленьких” флешек по началу порты и исходники лучше не копировать …
Для удобства все необходимые файлы я скачиваю в подкаталог домашнего каталога bsd
. По желанию можно добавить “метку” версии системы.
Форматируем флешку
На данном этапе отступать от автора нет необходимости. Повторю за ним:
Кстати - как и у автора так и здесь - заведомо специально чистить флешку нет необходимости (у автора про это умалчивается или не акцентируется внимание).
Форматируем флешку
fdisk -BI /dev/da0
создаем метки
bsdlabel -B -w da0s1
создаем файловую систему и создаем на ней UFS метку
newfs -U -L RootOnUSB /dev/da0s1a
Копируем минимальное окружение
Первая часть окончена, флешка подготовлена к развертыванию на ней системы.
Монтируем ее
Перед вслед. шагом у автора могут возникнуть при повторении “буква в букву” ошибки. обычно каталога /mnt/tmp
нет и его можно\необходимо создать, например командой mkdir /mnt/tmp
или из/через mc.
mount /dev/ufs/RootOnUSB /mnt/tmp
Далее автор со слов идем в /usr/src где мы собирали наш мир с ядром.
устанавливаем мир на флешку
начинает “компилировать” на флешку мир. Не обязательно …
Распаковка.
Далее мне удобнее работать из mc.
Переходим в каталог c архивами. на 1-й панели, /mnt/tmp
на другой.
Далее по очереди планомерно по мере необходимости захожу в архивы и все содержимое полностью копирую прямо в /mnt/tmp
.
Эту “фишку” мне подсказал знакомый Колесник И.К. ака Ivan
Правка системных файлов
cd /etc pax -p eme -X -rw . /mnt/tmp/etc/
можно считать что система у нас готова, хотя один момент, нам ведь надо поправить fstab и записать загрузчик я свой fstab довел до такого состояния
# Device Mountpoint FStype Options Dump Pass# /dev/ufs/RootOnUSB / ufs rw,noatime 1 1 /proc /proc procfs rw,noauto 0 0
Так как мы будем грузить с метки ufs/RootOnUSB то добавим в loader.conf следующее
echo 'geom_label_load="YES"' >> /boot/loader.conf
Имеется одна тонкость у материнских плат, не все сразу определяют umass, поэтом допишем еще ожидание загрузки для инициализации
echo 'kern.cam.boot_delay=10000' >> /boot/loader.conf
Для уменьшения числа операций записи на USB, автор создает локальную базу данных и запрещает еженедельное обновление.
После ставит ПО.
Я сразу этого не делал.
Ставим загрузчик
fstab поправили, пакеты по необходимости поставили, осталось сделать флешку загрузочной.
Отмонтируем ее
umount /mnt/tmp
и запишем загрузчик
boot0cfg -v -B -o noupdate da0
Готово
В принципе все готово.
Автор еще добавил скрипт “копирования флешки”. Я его не пробовал.