The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Организация установки FreeBSD с USB Flash
Иногда возникает необходимость создать установочный Flash-диск с FreeBSD, 
но без переформатирования FAT-раздела на Flash, при сохранении размещенных там данных.

Загружаем с ftp.freebsd.org минимальный установочный образ 6.3-RELEASE-i386-bootonly.iso
ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/6.3/6.3-RELEASE-i386-bootonly.iso

Создаем на его основе ram-диск. Операции выполняются на FreeBSD системе, 
при необходимости временно FreeBSD можно поставить в KVM, VmWare или VirtualBox.

Создаем образ RAM-диска размером чуть больше bootonly.iso:

   dd if=/dev/zero of=boot.img bs=1k count=26000

Подключаем ram-диск:

   mdconfig -a -t vnode -f boot.img -u 0

Устанавливаем загрузочный сектор и размечаем по умолчанию:

   bsdlabel -w -B md0 auto

Создаем файловую систему:

   newfs -m 0 md0a

Монтируем созданную ФС ram-диска:

   mkdir /mnt/img
   mount /dev/md0a /mnt/img

Монтируем iso-образ и переносим с него данные на ram-диск:

   mkdir /mnt/iso
   mdconfig -a -t vnode -f 6.3-RELEASE-i386-bootonly.iso -u 1
   mount_cd9660 /dev/md1 /mnt/iso
   cd /mnt/img/
   cp -r /mnt/iso/* .

Размонтируем:

   cd
   umount /mnt/img /mnt/iso
   mdconfig -d -u 0
   mdconfig -d -u 1

Загружаем Linux, можно LiveCD.
Копируем boot.img на Flash диск.
Копируем на Flash файл memdisk из комплекта syslinux (http://syslinux.zytor.com).
Ставим syslinux на Flash (/dev/sdb1):

   syslinux -s /dev/sdb1

Создаем в корне файл syslinux.cfg:

   label freebsd
       kernel /memdisk
       append initrd=/boot.img harddisk

Если не грузится, ругаясь на MBR, заменяем MBR на содержимое файла mbr.bin из комплекта syslinux:
   dd if=/dev/sdb of=mbr_backup.bin bs=1 count=512
   cat mbr.bin > /dev/sdb

Проверить можно через QEMU:
   qemu -hda /dev/sdb1 -std-vga


При установке выбираем метод получения установочных файлов по FTP или копируем их на Flash 
(директорию 6.3-RELEASE из 6.3-RELEASE-i386-disc1.iso).

--------------------
В случае когда USB Flash не жалко отформатировать, можно можно создать
загрузочный 
USB Flash следующим образом:

   fdisk -BI /dev/da2
   bsdlabel -w -B /dev/da2s1
   newfs /dev/da2s1a
   mount /dev/da2s1a /mnt

Копируем в /mnt содержимое содержимое 6.3-RELEASE-i386-bootonly.iso

--------------------
Установка загрузчика FreeBSD на Flash из Linux:

Делаем бэкап текущего MBR USB диска:
  dd if=/dev/sdb of=mbr_sdb.bin bs=1 count=512

Берем boot0 из комплекта FreeBSD и копируем в него данные о таблицах разделов текущего диска:
  dd if=mbr_sdb.bin  of=boot0   bs=1 count=66 skip=446 seek=446

Копируем загрузчик в MBR USB диска:
  dd if=boot0 of=/dev/sdb  bs=1 count=512


Инструкцию по созданию установочного образа FreeBSD, загружаемого по сети
можно найти здесь http://wiki.opennet.ru/NetworkBoot

---------------------
Полезный скрипт для преобразования ISO в UFS-образ (http://docs.FreeBSD.org/cgi/mid.cgi?4420AF56.60106)

Запускается ./fbsd-install-iso2img.sh iso-path img-path


#!/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=3D0

set -u

if [ $# -lt 2 ]; then
    echo "Usage: $0 source-iso-path output-img-path"
    exit 1
fi

isoimage=3D$1; shift
imgoutfile=3D$1; shift

export tmpdir=3D$(mktemp -d -t fbsdmount)
# Temp file and directory to be used later
export tmpfile=3D$(mktemp -t bsdmount)

export isodev=3D$(mdconfig -a -t vnode -f ${isoimage})

echo "#### Building bootable UFS image ####"

ISOSIZE=3D$(du -k ${isoimage} | awk '{print $1}')
SECTS=3D$((($ISOSIZE + ($ISOSIZE/5))*2))

# Root partition size

echo "Initializing image..."
dd if=3D/dev/zero of=3D${imgoutfile} count=3D${SECTS}
ls -l ${imgoutfile}
export imgdev=3D$(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=3D"comconsole, vidconsole"' >> ${tmpdir}/img/boot/l=
oader.conf
elif [ ${serial} -eq 1 ]; then
        echo "-h" > ${tmpdir}/img/boot.config
        echo 'console=3D"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}
 
Ключи: syslinux, freebsd, install, flash, boot / Лицензия: CC-BY
Раздел:    Корень / Администратору / Система / FreeBSD специфика / Установка и апгрейд FreeBSD и приложений.

Обсуждение [ RSS ]
  • 1.1, Аноним (1), 22:02, 24/09/2008 [ответить]  
  • +/
    Статья ни о чём. Давно есть скриптик fbsd-install-iso2img.sh , через который перегоняем исошник в имадж и через dd заливаем хоть на жёсткий диск, хоть на флешку.
     
     
  • 2.2, Vadim Timohin (?), 07:24, 25/09/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Статья ни о чём. Давно есть скриптик fbsd-install-iso2img.sh , через который перегоняем
    >исошник в имадж и через dd заливаем хоть на жёсткий диск,
    >хоть на флешку.

    ну почему же не очем, хорошая статья, есть скрипты а есть руки :) большая разница :)

     
  • 2.3, angra (ok), 09:37, 25/09/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Явный случай "Пастернака не читал, но осуждаю". Ведь если бы вы читали, то вряд ли пропустили бы эту строчку:
    >Запускается ./fbsd-install-iso2img.sh iso-path img-path
     
     
  • 3.4, Maxim Chirkov (ok), 11:58, 25/09/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Явный случай "Пастернака не читал, но осуждаю". Ведь если бы вы читали,
    >то вряд ли пропустили бы эту строчку:
    >>Запускается ./fbsd-install-iso2img.sh iso-path img-path

    Этот скрипт уже после комментария был добавлен.

     

  • 1.5, Аноним (5), 10:32, 26/09/2008 [ответить]  
  • +/
    Супер, давно искал как можно превратить FAT-флешку в бутабельную :)
    Спасибо!
     
  • 1.6, Yoda.33 (?), 17:04, 30/09/2010 [ответить]  
  • +/
    Поправили бы скрипт fbsd-install-iso2img.sh, а то по всему инету он не рабочий, с ошибками. По тексту убрать все "3D".
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру