Подготовка флешки (разметка)
Размечаем всю флешку под FreeBSD:fdisk -BI /dev/da0Если хочется разбить на несколько разделов, то тогда так (fdisk в интерактивном режиме):
fdisk -i /dev/da0
Создаём BSD-слайс:
bsdlabel -w -B da0s1
Создаём файловую систему, с меткой FBSD, чтобы при монтировании устройства не зависеть от его имени в конкретной системе:
newfs -n -U -L FBSD /dev/da0s1a
Записываем MBR:
boot0cfg -B da0
Устанавливаем загрузку по умолчанию с первого слайса:
boot0cfg -s 1 da0
Запрещаем загрузчику перезаписывать себя:
boot0cfg -o noupdate da0
Установка FreeBSD
Монтируем флешку:mount /dev/ufs/FBSD /mnt/flash-disk
Долгий способ установки - сборка мира
echo 'DESTDIR=/mnt/flash-disk' >> /etc/make.conf cd /usr/src make installkernel make installworld cd /usr/src/etc make distrib-dirs make distribution
Быстрый способ - копирование
cp -r /boot /bin /sbin /etc /root /mnt/flash-disk mkdir /mnt/flash-disk/usr cp -r /usr/bin /usr/sbin /usr/lib /usr/lib32 /usr/libdata /usr/libexec /usr/share /mnt/flash-disk/usr
Настройка после установки
Создаём на флешке файл fstab (/mnt/flash-disk/etc/fstab):# Device Mountpoint FStype Options Dump Pass# /dev/ufs/FBSD / ufs ro 1 1
Подправляем rc.conf (/mnt/flash-disk/etc/rc.conf):
# Запрещаем fsck в фоновом режиме background_fsck="NO" # Запрещаем запись состояния системной энтропии entropy_dir="NO" entropy_file="NO" # Запрещаем создавать дампы dumpdev="NO" dumpdir="NO" virecover_enable="NO" ifconfig_DEFAULT="DHCP" # Важный момент! если / монитирует read-only, то /tmp и /var создаются в виде ram-дисков, # ниже мы указываем их размер в памяти tmpsize="8m" varsize="8m" # Наполняем /var populate_var="YES"
Дополнительно
Проблемы с FreeBSD 8.0-Stable — на некоторых материнских платах флешка определяется уже после того, как ядро пытается смонтировать корневую ФС, чтобы избежать этой неприятности надо в /usr/src/sys/kern/vfs_mount.c добавить одну строчку и пересобрать ядро, вот патч:Index: sys/kern/vfs_mount.c
===================================================================
RCS file: /usr/src/sys/kern/vfs_mount.c,v
retrieving revision 1.308
diff -u -r1.308 vfs_mount.c
--- sys/kern/vfs_mount.c 5 Jun 2009 14:55:22 -0000 1.308
+++ sys/kern/vfs_mount.c 29 Sep 2009 17:08:25 -0000
@@ -1645,6 +1645,9 @@
options = NULL;
+ /* NASTY HACK: wait for USB sticks to appear */
+ pause("usbhack", hz * 10);
+
root_mount_prepare();
mount_zone = uma_zcreate("Mountpoints", sizeof(struct mount),Ещё раз «дополнительно»
Как заметили в каментах — можно обойтись и без патча к ядру (на 8й ветке), надо добавить в /boot/loader.conf следующую строку:kern.cam.boot_delay=10000
Ссылки: 1, 2, 3 и 4.
0 коммент.:
Отправить комментарий