Установка FreeBSD на USB-носитель


Приведенные здесь инструкции позволили создать установочный образ FreeBSD, который можно записать на USB-носитель.
Монтируем ISO образ диска в /dist:
# mkdir -p /dist
# mount -t cd9660 /dev/md1 /dist


Подключите USB-носитель.
# fdisk -BI /dev/da0

Присваиваем метку диска:
# bsdlabel -B -w da0s1

и файловой системе, которую мы примонтируем к /mnt. Чтобы уменьшить число обращений к USB, будем использовать флаг -U.
# newfs -U -L FreeBSDonUSB /dev/da0s1a
# mount /dev/da0s1a /mnt


Теперь займёмся небольшой рутиной:
# cd /dist/6.1-RC1/base
# DESTDIR=/mnt ./install.sh
You are about to extract the base distribution into /mnt - are you SURE
you want to do this over your installed system (y/n)? y


# cd /dist/6.1-RC1/kernels
# DESTDIR=/mnt ./install.sh generic
# rmdir /mnt/boot/kernel
# mv /mnt/boot/GENERIC /mnt/boot/kernel


Устанавливаем менеджер загрузки.
# boot0cfg -v -B -o noupdate da0
# flag start chs type end chs offset size
1 0x80 0: 1: 1 0xa5 480: 63:32 32 985056
version=1.0 drive=0x80 mask=0xf ticks=182
options=packet,noupdate,nosetdrv
default_selection=F1 (Slice 1)


Создаем файл fstab на USB-носителе.
# Device Mountpoint FStype Options Dump Pass#
/dev/ufs/FreeBSDonUSB / ufs rw,noatime 1 1
md /tmp mfs rw,-s16M,nosuid,noatime 0 0
md /var/run mfs rw,-s4M,nosuid,noatime 0 0
md /var/log mfs rw,-s16M,nosuid,noatime 0 0
/dev/acd0 /cdrom cd9660 ro,noauto,nosuid 0 0
/proc /proc procfs rw,noauto 0 0
/tmp /var/tmp nullfs rw 0 0


Так как мы используем метку UFS, чтобы определить корневую файловую систему, мы должны форсировать загрузку класса GEOM:
# cat >> /mnt/boot/loader.conf << EOF
geom_label_load="YES"
EOF


vi(1) использует /var/tmp/vi.recover, поэтому загрузим и установим следующий скрипт:
# mkdir -p /mnt/usr/local/etc/rc.d/
# cd /mnt/usr/local/etc/rc.d/
# fetch http://people.freebsd.org/~ceri/FreeBSDonUSB/scripts/mkvirecover
# chmod 555 mkvirecover


Чтобы команды, которые используют wtmp(5), могли правильно работать с /var/log на RAM диске, мы должны сказать newsyslog(8) OK, чтобы создать пустой/var/log/wtmp. Редактируйте файл конфигурации /mnt/etc/newsyslog.conf и добавьте C к строке /var/log/wtmp:
/var/log/wtmp 644 3 * @01T05 BC

Сетевые интерфейсы будут конфигурироваться через DHCP, за исключением plip0 и fwe0, так как они фактически никогда не связываются с сервером DHCP.
# cat >> /etc/rc.conf << EOF
ifconfig_DEFAULT="DHCP"
ifconfig_fwe0="NOAUTO"
ifconfig_plip0="NOAUTO"
EOF


Снова, для уменьшения числа операций записи на USB, мы создадим локальную базу данных и запретим еженедельное обновление:
# chroot /mnt /bin/sh
# mount_devfs devfs /dev
# /etc/periodic/weekly/310.locate
# cat >> /etc/periodic.conf << EOF
weekly_locate_enable="NO"
weekly_whatis_enable="NO"
EOF


Установим необходимые пакеты и зададим пароль пользователя root:
# chroot /mnt /bin/sh
# passwd root
# pkg_add -r lsof




Вы не авторизированный пользователь. Пожалуйста, авторизируйтесь
Комментарии к материалу: