Загрузка FreeBSD-8.0 с usb flash

Все вопросы по установке, обновлению и эксплуатации FreeBSD: конфигурация и сопровождение.

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
kima
рядовой
Сообщения: 42
Зарегистрирован: 2009-01-22 14:29:39
Откуда: Москва
Контактная информация:

Загрузка FreeBSD-8.0 с usb flash

Непрочитанное сообщение kima » 2010-04-20 14:22:17

Доброго времени суток!
Начитавшись статьи Morty Создание своего LiveCD (+клонирование системы), я решил попробывать слить дампы на флешку, ессно перед этим ее приготовив определенным образом!
Когда я попробовал с нее загрузиться появилась ошибка, что дескать рут не может смонтироваться т.к. отсутствует устройство!
Проблема в том, флешка определяется системой после того, как начинается монтирования корня. Я так понимаю что если выставить таймаут на монтирование, то все должно быть пучком? Тогда вопрос: а как это сделать?
Погуглив нашел вот такую статью, где интересен лишь кусочек:
PPS: энтузиастам которые пробуют запустить FreeBSD 8.0 с флешки(если это еще не починили) — пригодится вот такой dirty hack.

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

Index: sys/kern/vfs_mount.c
===================================================================
RCS file: /home/ncvs/src/sys/kern/vfs_mount.c,v
retrieving revision 1.308
diff -u -r1.308 vfs_mount.c
--- sys/kern/vfs_mount.c 5 Jun 2009 14:55:22 -0000 1.308
+++ sys/kern/vfs_mount.c 29 Sep 2009 17:08:25 -0000
@@ -1645,6 +1645,9 @@
options = NULL;
+ /* NASTY HACK: wait for USB sticks to appear */
+ pause("usbhack", hz * 10);
+
root_mount_prepare();
mount_zone = uma_zcreate("Mountpoints", sizeof(struct mount),
В новом USB стеке при загрузке ядра USB устройства не всегда определяются вовремя и возникает ошибка при монтировании разделов системы.
Данный хак выставляет в системе таймаут в 10 секунд для ожидания готовности USB накопителя.
Но я так понимаю что бы иметь возможность править этот файл, нужно собрать мир и ядро на флешку, а мне этого делать не оч хочется ( если же вердикт будет:" Без пересборки и не суйся!" то пересоберу, просто хочется обойтись без этой долгой и нудной операции!)

Вот кстати статейка как установить Ось на флешку ТЫЦ
Per aspera ad astra!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
kima
рядовой
Сообщения: 42
Зарегистрирован: 2009-01-22 14:29:39
Откуда: Москва
Контактная информация:

Re: Загрузка FreeBSD-8.0 с usb flash

Непрочитанное сообщение kima » 2010-04-21 19:21:51

В общем установка мира и ядра на флешку ситуацию не решила, скорее всего дела в маме...
Попробую найти другой комп и там запуститься...
Per aspera ad astra!

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: Загрузка FreeBSD-8.0 с usb flash

Непрочитанное сообщение Morty » 2010-04-22 10:32:09

1. подкл флэшку
2. создаешь слайсы
3. форматишь + инсталишь лоадер
4. монтируешь в DESTDIR
5. инсталишь мир и ядро в DESTDIR
6. правишь fstab loader.conf rc.conf и пр по вкусу в DESTIDR
7(опционально). инсталишь порты/пакеты в DESTDIR; настраиваешь
---
8. таришь или дампишь DESTDIR (дабы не делать каждый раз 1-7) clean_image.file
9. заливаешь в DESTDIR свои скрипты и дампы которые будешь разворачивать

Аватара пользователя
kima
рядовой
Сообщения: 42
Зарегистрирован: 2009-01-22 14:29:39
Откуда: Москва
Контактная информация:

Re: Загрузка FreeBSD-8.0 с usb flash

Непрочитанное сообщение kima » 2010-04-22 14:43:16

Собсно все это я проделывал, с разными вариациями. Но упирался всегда в одно и тоже, корень начинает монтироваться ДО того как флешка определяется в системе, соответственно корень не монтируется и система не бутится...(((

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: Загрузка FreeBSD-8.0 с usb flash

Непрочитанное сообщение Morty » 2010-04-22 21:50:02

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

#!/bin/sh
##
## 05/02/2010 Kostya
##
imgname="usb.img"
outfile="busb.img.bz2"
if [ $# -ge 1 ];
then echo "...thinking"
else
echo ""
echo "Type usbflash.sh makeimg  - for build image"
echo "Type usbflash.sh writeimg - for write to USB stick"
echo ""
exit 1
fi;

# 512mb image
mkimage() {
echo "-----> Build Image"
dd if=/dev/zero of="$imgname" bs=1m count=1 oseek=512 conv=sparse
mdconfig -a -t vnode -f $imgname -u 0
newfs -m 0 -o space -n /dev/md0
mount /dev/md0 /mnt
#
cd /usr/src
make -j8 buildworld && \
make -j8 buildkernel && \
make installworld DESTDIR=/mnt
make distribution DESTDIR=/mnt
make installkernel DESTDIR=/mnt
cd / && tar -cjf $outfile /mnt 
umount /mnt
mdconfig -d -u 0
}
##
writeimg() {
dd if=/dev/zero of=/dev/da0 bs=16k
fdisk -BI /dev/da0
disklabel -B -w /dev/da0s1
newfs -m 0 -o space -n /dev/da0s1a
mount -o noatime,async /dev/da0s1a /mnt
tar -xvjf ${outfile} -C /mnt/
cp -R /mnt/mnt/* /mnt/
chflags -R noschg /mnt/mnt/
rm -rf /mnt/mnt
cat > /mnt/boot/loader.conf << EOF
vfs.root.mountfrom="ufs:/dev/da0s1a"
vfs.root.mountfrom.options="rw"
EOF
cat > /mnt/etc/fstab << EOF
/da0/da0s1a / ufs rw 1 1
EOF
umount /mnt
}
# rewrite this IF or use one of function mkimage or writeimg
#if [ $1=="makeimg" ] 
#then
#mkimage
#else
writeimg
#fi
#fi
вот тебе реально работающий скрипт
проверенный на 8ой ветке
ЗЫ: местами конечно ужасно реализовано НО гг :-D не все сразу
у меня флешка грузиться которая создана этим скриптом

НО ты внимательно скрипт посм - тк не вчера дело было :pardon:

ЗЫЫ: монтируешь флэшку в /mnt/ и вперед

Андрей74
проходил мимо

Re: Загрузка FreeBSD-8.0 с usb flash

Непрочитанное сообщение Андрей74 » 2010-06-22 17:49:55

kima писал(а):Доброго времени суток!
Начитавшись статьи Morty Создание своего LiveCD (+клонирование системы), я решил попробывать слить дампы на флешку, ессно перед этим ее приготовив определенным образом!
Когда я попробовал с нее загрузиться появилась ошибка, что дескать рут не может смонтироваться т.к. отсутствует устройство!
Проблема в том, флешка определяется системой после того, как начинается монтирования корня. Я так понимаю что если выставить таймаут на монтирование, то все должно быть пучком? Тогда вопрос: а как это сделать?
Погуглив нашел вот такую статью, где интересен лишь кусочек:
PPS: энтузиастам которые пробуют запустить FreeBSD 8.0 с флешки(если это еще не починили) — пригодится вот такой dirty hack.

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

Index: sys/kern/vfs_mount.c
===================================================================
RCS file: /home/ncvs/src/sys/kern/vfs_mount.c,v
retrieving revision 1.308
diff -u -r1.308 vfs_mount.c
--- sys/kern/vfs_mount.c 5 Jun 2009 14:55:22 -0000 1.308
+++ sys/kern/vfs_mount.c 29 Sep 2009 17:08:25 -0000
@@ -1645,6 +1645,9 @@
options = NULL;
+ /* NASTY HACK: wait for USB sticks to appear */
+ pause("usbhack", hz * 10);
+
root_mount_prepare();
mount_zone = uma_zcreate("Mountpoints", sizeof(struct mount),
В новом USB стеке при загрузке ядра USB устройства не всегда определяются вовремя и возникает ошибка при монтировании разделов системы.
Данный хак выставляет в системе таймаут в 10 секунд для ожидания готовности USB накопителя.
Но я так понимаю что бы иметь возможность править этот файл, нужно собрать мир и ядро на флешку, а мне этого делать не оч хочется ( если же вердикт будет:" Без пересборки и не суйся!" то пересоберу, просто хочется обойтись без этой долгой и нудной операции!)

Вот кстати статейка как установить Ось на флешку ТЫЦ
Я просто ядро собрал на другой машине и делов.