http://dreamcatcher.ru/docs/freebsd_stick.html
Материалы
- Собственно, нужна сама флэшка достаточного объёма.
- Необходимо переписать ISO-образ (первого) инсталляционного диска FreeBSD.
Подготовка рабочего места
% mkdir -p /mnt/iso9660
% mdconfig -a -f /home/archive/ISO/FreeBSD/7.0-RELEASE-i386-disc1.iso
md0
% mount_cd9660 /dev/md0 /mnt/iso9660
% mkdir -p /media
Подготовка флэшки
Подключенная флэшка определилась как устройство /dev/da0 (это также видно по результату выполнения команды dmesg). Её необходимо разметить и отформатировать.
Разметка выполняется командой:
% fdisk -BI /dev/da0
Но часто приходится использовать диалоговый режим работы fdisk:
% fdisk -i /dev/da0
Дальнейшие действия заключаются в присвоении метки разделу с системой и в проведении форматирования его в UFS2:
% bsdlabel -B -w da0s1
% newfs -U -L FBSDUSB /dev/da0s1a
Установка операционной системы
% mount /dev/da0s1a /media
% set DESTDIR=/media
% cd /mnt/iso9660/7.0-RELEASE/base/
% ./install.sh
% rm /media/boot/kernel
% mv /media/boot/GENERIC /media/boot/kernel
Установка загрузчика операционной системы
% boot0cfg -v -B -o noupdate da0
Конфигурирование
Операционная система на флэшке должна по возможности редко перезаписывать свои файлы, чтобы исключить преждевременное "старение" флэш-памяти. Поэтому временные файлы должны помещаться в оперативной памяти, а не на флэшке.
Файл /media/etc/fstab:
# Device Mountpoint FStype Options Dump Pass#
/dev/ufs/FBSDUSB / ufs rw,noatime 1 1
md /tmp mfs rw,-s160M,nosuid,noatime 0 0
md /var/run mfs rw,-s14M,nosuid,noatime 0 0
md /var/log mfs rw,-s26M,nosuid,noatime 0 0
md /usr/obj mfs rw,-s760M,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
Файл /media/boot/loader.conf:
geom_label_load="YES"
— это форсирует запуск класса GEOM для корректного определения корневой файловой системы на флэшке.
Скрипт восстановления vi
Лично я не пользуюсь vi, но может это кому-то поможет.
% mkdir -p /media/usr/local/etc/rc.d
% cd /media/usr/local/etc/rc.d
% fetch http://people.freebsd.org/~ceri/FreeBSDonUSB/scripts/mkvirecover
% chmod 555 ./mkvirecover
Если возможности загрузить этот скрипт нет, то вот его код (файл mkvirecover):
#!/bin/sh
# PROVIDE: mkvirecover
# REQUIRE: mountcritremote
# BEFORE: DAEMON virecover
. /etc/rc.subr
name="mkvirecover"
stop_cmd=":"
start_cmd="mkvirecover_start"
mkvirecover_start()
{
[ -d /var/tmp/vi.recover ] || mkdir -m 1777 /var/tmp/vi.recover
echo '.'
}
load_rc_config $name
run_rc_command "$1"
В файле /media/etc/newsyslog.conf необходимо отредактировать следующую строчку:
/var/log/wtmp 644 3 * @01T05 BC
Настройка опций системы
Файл /media/etc/rc.conf:
...
ifconfig_DEFAULT="DHCP"
ifconfig_fwe0="NOAUTO"
ifconfig_plip0="NOAUTO"
...
— сетевая операционная система получает свой IP-адрес от внешнего DHCP-сервера.Для уменьшения числа операций записи на USB, нужно создать локальную базу данных и запретить еженедельное обновление:
% chroot /media /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 и установка прикладного ПО из бинарных пакетов и т.д.:
# passwd root
...
# pkg_add -r unzip unrar xorg...
...
# umount devfs
# exit
% cd /root
% umount /media
% umount /mnt/iso9660
В общем, система подготовлена для работы с флэшки.
Для установки прикладного ПО из портов, а не из бинарных пакетов необходимо выделить достаточно места на флэшке: возможно придётся удалить каталог /usr/src; отказаться от размещения локальной копии дерева портов — вместо этого подключить расшаренный в NFS каталог /usr/ports другой машины и/или использовать технологию unionfs с внешним носителем. Необходимо также предварительно определить переменную WRKDIRPREFIX=/usr/obj в файле /etc/make.conf при достаточном объёме RAM-диска, выделенного под /usr/obj (осторожно: некоторые порты для своей компиляции требуют более 2ГБ свободного пространства).
4 комментария:
автору незачот за незнание предмета.
пусть прочтет
http://www.freebsd.org/releases/7.0R/relnotes.html#USERLAND
где в частности говорится:
"The mount(8) dev and nodev options have been removed."
приведенный материал годится для старых веток БСД, на семерке придется чтото думать с devfs
Ну-ну, подумайте на досуге, в чём у вас может быть проблема. :)
а по уму ответить не судьба?
многозначительное "сам дурак..." давно не котируется, да и ИМХО уних-вай включает в себя "посильную и дружелюбную помощь всем страждущим" ;-)
воспользуйтесь прогой unetbootin и не партесь
Отправить комментарий