====== FreeBSD на флешке ====== Есть не плохая статейка по теме: [[http://www.lissyara.su/articles/freebsd/file_system/install_freebsd_on_usb_flash/|Опыт миграции на 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 ===== Готово ===== В принципе все готово. Автор еще добавил скрипт "копирования флешки". Я его не пробовал.