Загрузка FreeNAS grub2 ISO

18

У меня есть настройка usb-ключей для мультизагрузки разных образов Linux. Я не против добавить FreeNAS, и есть документ с примерами для добавления вgrub.cfg

menuentry "FreeNAS-8.0.4-RELEASE-x64" {
    insmod ufs2
    insmod iso9660

    # /usr/local/sbin/grub-probe -d /dev/sde1 -t fs_uuid
    # c89c-7b3a
    #search --no-floppy --fs-uuid --set c89c-7b3a

    set isofile="/boot/FreeNAS-8.0.4-RELEASE-x64.iso"
    loopback loop $isofile
    kfreebsd  (loop)/boot/kernel/kernel.gz
    kfreebsd_loadenv  (loop)/boot/device.hints

    #set FreeBSD.vfs.root.mountfrom=ufs:/dev/ad4s1a
    set kFreeBSD.vfs.root.mountfrom=ufs:/dev/acd0
    set kFreeBSD.vfs.root.mountfrom.options=rw
    #set vfs.root.mountfrom=cd9660:/dev/ad1s1
    #set vfs.root.mountfrom.options=rw
}

Я немного не уверен в настройке корня VFS. Вот результат попытки загрузить это;

не удалось смонтировать root

Некоторая полезная информация может быть найдена в; загрузить FreeBSD iso с флешки grub2

Thermionix
источник
к сожалению, я не знаю ответа, но спасибо заgrub.cfg
phunehehe
Я смотрю на это в данный момент. Некоторые форумы указывают, что компакт-диск смонтирован grub как виртуальный ram-диск iso9660. играя с этим в настоящее время.
RobotHumans
@ aking1012 ты что-нибудь придумал?
n0pe
@NaxMackie - меня ДЕЙСТВИТЕЛЬНО отвлекли, но это было в школе, и теперь, когда я сделал поиск работы. Я скоро вернусь к этому.
RobotHumans
добавил больше деталей из моих последних попыток
Thermionix

Ответы:

1

Поскольку вы пытаетесь загрузиться с флэш-накопителя USB, устройство будет начинаться с da. В выводе вы можете видеть, что он был обнаружен как / dev / da0. В зависимости от того, как устройство было разделено, это может быть что-то вроде / dev / da0s1a или / dev / da0a (если нет bsdlabel).

Проблема заключается в том, что в зависимости от компьютера он может не определиться как da0 во всех случаях. da также используется для устройств scsi, и USB-ридеры также будут называться da * устройствами. Обходной путь после того, как вы можете запустить его, состоит в том, чтобы использовать функцию метки GEOM, чтобы «назвать» точку монтирования, а затем вы можете изменить свой fstab, чтобы ссылаться на него по имени. Он всегда будет работать независимо от того, какое устройство помечено тогда. man glabel для получения дополнительной информации в среде FreeBSD. (или проверьте сайт с руководствами freebsd)

Лукас Холт
источник
0

Кажется, что ядро ​​застопорилось, так как когда дело доходит до загрузки USB-накопителя, еще не сообщили о его существовании. Интересно, что делает ваш конфиг, но он не работает и не предоставил ядру FreeBSD правильное имя устройства для загрузки.

Вам нужно спросить ядро ​​о доступных дисках, набрав '?' как подсказывает подсказка. После этого вы должны ввести правильную спецификацию корневой файловой системы для вашего корневого раздела. Это должно быть что-то вроде ufs: / dev / da0s1a в зависимости от того, как вы разбили USB-диск на разделы.

Когда вы найдете правильный путь к диску, вы должны изменить свой grub.conf с этим путем. Также обратите внимание, что он должен читать «FreeBSD», а не «kFreeBSD», поскольку ваши настройки просто игнорируются.

kworr
источник
0

Попробуйте добавить переменную загрузчика, чтобы увеличить задержку инициализации USB. Вы можете добавить эту переменную в /boot/loader.conf или во время загрузки в командной строке. В качестве альтернативы вы также можете выбрать «3» в меню загрузки, чтобы разрешить загрузку с USB. (не уверен на 100%, если это 3-й)

set kern.cam.boot_delay="10000"

Это работает, когда в процессе загрузки возникают проблемы с подключением USB-накопителя.

Все три варианта выше выполняют одно и то же

Удачи

QNimbus
источник