Инструкция от DarkSide83.
В качестве загрузчика будем использовать Syslinux.
В первую очередь нужно получить загрузочный образ. В образе должна быть только папка boot, с файлом boot.config образ грузился только под qemu. Можно собрать его 2 способами:
1. как у AID'а
1.1 Оставляем в ISO образе только папку boot! 1.2 Папку frenzy кидаем в корень флешки (FAT32)
1.3 Новый образ диска (чуть более 6 Мб) сохраняем в папке frenzy на флешке frenzy/frenzy-boot.iso
1.4 Качаем скрипт http://docs.freebsd.org/cgi/mid.cgi?4420AF56.60106, правим его и сохраняем его на флешке frenzy/iso2ufs.sh.
#!/bin/sh # You can set some variables here. Edit them to fit your needs. # Set serial variable to 0 if you don't want serial console at all, # 1 if you want comconsole and 2 if you want comconsole and vidconsole serial=0 set -u if [ $# -lt 2 ]; then echo "Usage: $0 source-iso-path output-img-path" exit 1 fi isoimage=$1; shift imgoutfile=$1; shift export tmpdir=$(mktemp -d -t fbsdmount) # Temp file and directory to be used later export tmpfile=$(mktemp -t bsdmount) export isodev=$(mdconfig -a -t vnode -f ${isoimage}) echo "#### Building bootable UFS image ####" ISOSIZE=$(du -k ${isoimage} | awk '{print $1}') SECTS=$((($ISOSIZE + ($ISOSIZE/5))*2)) # Root partition size echo "Initializing image..." dd if=/dev/zero of=${imgoutfile} count=${SECTS} ls -l ${imgoutfile} export imgdev=$(mdconfig -a -t vnode -f ${imgoutfile}) bsdlabel -w -B ${imgdev} newfs -O1 /dev/${imgdev}a mkdir -p ${tmpdir}/iso ${tmpdir}/img mount -t cd9660 /dev/${isodev} ${tmpdir}/iso mount /dev/${imgdev}a ${tmpdir}/img echo "Copying files to the image..." ( cd ${tmpdir}/iso && find . -print -depth | cpio -dump ${tmpdir}/img ) #bzcat ${tmpdir}/iso/dist/root.dist.bz2 | mtree -PUr -p ${tmpdir}/img 2>&= 1 > /dev/null #echo "/dev/ufs/${UFS_LABEL} / ufs ro 1 1" > ${tmpdir}/img/etc/fstab if [ ${serial} -eq 2 ]; then echo "-D" > ${tmpdir}/img/boot.config echo 'console="comconsole, vidconsole"' >> ${tmpdir}/img/boot/l= oader.conf elif [ ${serial} -eq 1 ]; then echo "-h" > ${tmpdir}/img/boot.config echo 'console="comconsole"' >> ${tmpdir}/img/boot/loader.conf fi cleanup() { umount ${tmpdir}/iso mdconfig -d -u ${isodev} umount ${tmpdir}/img mdconfig -d -u ${imgdev} rm -rf ${tmpdir} ${tmpfile} } cleanup ls -lh ${imgoutfile}
1.5 Грузимся в Frenzy с компакта, или через виртуальную машину.
1.6 Монтируем флешку
mount -t msdosfs /dev/da1s1 /mnt/tmp
1.7 Переходим в каталог frenzy на флешке.
cd /mnt/tmp/frenzy
1.8 Запускаем скрипт iso2ufs.sh
./iso2ufs.sh frenzy-boot.iso frenzy-boot.img
1.9 Ждем до окончания работы скрипта
2. как у qwerty.
2.1 Грузимся в Frenzy с компакта, или через виртуальную машину.
2.2 Монтируем флешку и копируем на нее все содержимое каталога frenzy с компакта:
mkdir /mnt/flash && mount -t msdosfs /dev/da1s1 /mnt/flash cp -r /Frenzy/boot/frenzy /mnt/flash/
2.3 Переходим в каталог frenzy на флешке.
cd /mnt/flash/frenzy
2.3 Создаем микрообраз загрузочного диска
dd if=/dev/zero of=frenzy-boot.img bs=63k count=`expr 10206 / 63` mdconfig -a -t vnode -f frenzy-boot.img -x 63 -y 16 md3 fdisk -a -i /dev/md3 (на все вопросы отвечаем отрицательно кроме 'Should we write new partition table ?')
2.4 Устанавливаем загрузчик FreeBSD
boot0cfg -B -b /Frenzy/boot/boot/boot0 -o packet -s 1 -m 3 /dev/md3 bsdlabel -w -B -b /Frenzy/boot/boot/boot /dev/md3s1
2.5 Создаем файловую систему
newfs -n -o space -m 0 -b 4096 -f 512 -i 8192 /dev/md3s1a
2.6 Монтируем образ:
mount /dev/md3s1a /mnt/tmp
2.7 Копируем только папку boot:
cp -r /Frenzy/boot/boot /mnt/tmp/
2.8 Отмонтируем образ:
umount /mnt/tmp
2.9 Удаляем md-устройство:
mdconfig -d -u 3
Для загрузки образа будем использовать memdisk из комплекта syslinux. Взять можно здесь http://www.kernel.org/pub/linux/utils/boot/syslinux/. После выполнения этих действий нужно будет внести строки
LABEL frenzy MENU LABEL Frenzy 1.1 RUS KERNEL /vimages/memdisk #путь до memdisk APPEND initrd=/frenzy/frenzy-boot.img harddisk bigraw
в файл /boot/syslinux.cfg(у меня на флешке уже была сборка ultilex-3.0.0, там я внес эти строки в /boot/slax.cfg).