Страница 1 из 1

Проблема с установкой FreeBSD 7.0-RELEASE c USB flash-drive

Добавлено: 2008-08-08 9:38:20
DrugDiller
Всем доброго времени суток!

Понимаю, что тема достаточно избитая и существует достаточно много статей по данной теме, но никак не получается повторить. Хотелось просто скомпилировать весь собранный материал дабы избежать возможных граблей.

1. Подготовка дистрибутива.
Для подготовки образа, готового для раскатки на флэшке использовался скрипт Dario Freni's script:
http://docs.freebsd.org/cgi/getmsg.cgi? ... sd-hackers

Код: Выделить всё

#!/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/loader.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}
С помощью данного скрипта из обычного iso образа получался бинарный ufs образ:

./fbsd-install-iso2img.sh 7.0-RELEASE-i386-disc1.iso 7.0-RELEASE-i386-disc1.img

2. Делаем загрузочную флэшку из полученного в предыдущем пункте образа.

dd if=7.0-RELEASE-i386-disc1.img of=/dev/da0

3. Установка и облом.

В BIOS выбираем загрузку с USB-HDD, вставляем нашу загрузочную флэшку, смотрим. Начинается загрузка как-будто с привычного CD, то есть проходим все этапы, но вот облом с выбором источника установки. Выбираем вариант "Existing file system", указываем путь - "/", получаем "Unable to transfer the base distribution from ufs".

Уважаемые, ткните пожалуйста что делаю не так.

Re: Проблема с установкой FreeBSD 7.0-RELEASE c USB flash-drive

Добавлено: 2008-08-08 11:58:20
manefesto
перейди на 4ую консоль и покажи df

Re: Проблема с установкой FreeBSD 7.0-RELEASE c USB flash-drive

Добавлено: 2008-08-11 14:23:58
DrugDiller
В данном случае в Emergency Holographic Shell на четвертой консоли нет df.

Re: Проблема с установкой FreeBSD 7.0-RELEASE c USB flash-drive

Добавлено: 2008-08-13 13:08:25
DrugDiller
Подошел к поставленной задаче с другой стороны, а именно, на машине с установленной FreeBSD сделал следующее:

1. Примонтировал образ установочного диска.

mdconfig -a -f 7.0-RELEASE-i386-disc1.iso

mount -t cd9660 /dev/md0 /cdrom


2. Вставил флэшку в USB разъем. В /dev/ появилось новое устройство с именем da0.

3. Выполнил разбиение диска.

fdisk -BI /dev/da0
bsdlabel -B -w da0s1


4. Создатл и примонтировал файловую систему (ufs2), с меткой FreeBSD:

newfs -U -L FreeBSD /dev/da0s1a
mount /dev/da0s1a /mnt


На флэшке создалась пустая файловая система, осталось скопировать базовую систему, ядро и установить загрузчик.

5. Установил базовую систему.

cd /cdrom/7.0-RELEASE/base
setenv DESTDIR /mnt
./install.sh


6. Установил ядро.
cd /cdrom/7.0-RELEASE/kernels
./install.sh GENERIC
rmdir /mnt/boot/kernel
mv /mnt/boot/GENERIC /mnt/boot/kernel


7. Установил загрузчик.
boot0cfg -v -B -o noupdate da0

8. Файлы fstab и loader.conf.

cat >> /mnt/boot/loader.conf << X
geom_label_load="YES"
X
cat >> /mnt/etc/fstab << X
/dev/ufs/FreeBSD / ufs rw,noatime 1 1
X


9. Отмонтировал flash диск.
umount /mnt

Теперь можно загрузиться в установленную ОС на машине, на которой требуется провести установку.
Загрузился, отлично.
10. Запустил sysinstall, дошел до выбора источника установки, выбрал "Install from existing file system", указал путь "/".
И опять облом - "Unable to transfer the base distribution from ufs".

df -h показывает:

/dev/ufs/FreeBSD /
/devfs /dev

Re: Проблема с установкой FreeBSD 7.0-RELEASE c USB flash-drive

Добавлено: 2008-12-06 22:19:45
проходил мимо
DrugDiller писал(а):Всем доброго времени суток!

Понимаю, что тема достаточно избитая и существует достаточно много статей по данной теме, но никак не получается повторить. Хотелось просто скомпилировать весь собранный материал дабы избежать возможных граблей.

1. Подготовка дистрибутива.
Для подготовки образа, готового для раскатки на флэшке использовался скрипт Dario Freni's script:
http://docs.freebsd.org/cgi/getmsg.cgi? ... sd-hackers

Код: Выделить всё

#!/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/loader.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}
С помощью данного скрипта из обычного iso образа получался бинарный ufs образ:

./fbsd-install-iso2img.sh 7.0-RELEASE-i386-disc1.iso 7.0-RELEASE-i386-disc1.img

2. Делаем загрузочную флэшку из полученного в предыдущем пункте образа.

dd if=7.0-RELEASE-i386-disc1.img of=/dev/da0

3. Установка и облом.

В BIOS выбираем загрузку с USB-HDD, вставляем нашу загрузочную флэшку, смотрим. Начинается загрузка как-будто с привычного CD, то есть проходим все этапы, но вот облом с выбором источника установки. Выбираем вариант "Existing file system", указываем путь - "/", получаем "Unable to transfer the base distribution from ufs".

Уважаемые, ткните пожалуйста что делаю не так.
Как тебе вообще это удалось. У меня при выполнении этого скрипта создает образ, но файлы туда не копируется. Если делать dd на флешь или куда-либо еще, то файловая система не содается даже.

Re: Проблема с установкой FreeBSD 7.0-RELEASE c USB flash-drive

Добавлено: 2008-12-06 22:24:47
fxp
Мда
"Unable to transfer the base distribution from ufs" - тебе не рут системы надо указывать, а рут файловой системы сидюка.
В ообще идея мне понравилась, надо бы потестить.

Re: Проблема с установкой FreeBSD 7.0-RELEASE c USB flash-drive

Добавлено: 2010-01-31 1:55:48
shtirmuz
у меня после загрузки показывает F1 FreeBSD, нажимаю F1 и система висит... в чем может быть дело ?