Загрузчик FreeBSD не загружается из правильного пула

Загрузчик FreeBSD не загружается из правильного пула

Я установил FreeBSD 10.1 на систему с двумя пулами ZFS, которая загружается с другого жесткого диска, содержащего только загрузчик. Основные диски пула подключены к портам SATA на карте PCI-E, в то время как загрузчик пытается загрузиться с неправильного пула (второго пула, который подключен напрямую к портам SATA на материнской плате).

Ошибка следующая:

Can't find /boot/zfsloader
FreeBSD/x86 boot
Default: storage:/boot/kernel/kernel
boot:
/
Cant't find /boot/kernel/kernel
FreeBSD/x86 boot
Default: storage:/boot/kernel/kernel
boot: 

Я пробовал установить vfs.root.mountfrom="zfs:zpool" или "zfs:zpool/ROOT" в /mnt/boot/loader.conf, но это не работает.

Если я отключу диски второго пула, система загрузится правильно.

Большое спасибо.

решение1

Ладно, я сам догадался.

Загрузчик ZFS не позволяет задать корневой пул для загрузки, но пытается угадать правильный, объединяя BIOS для порядка приоритета загрузки.

Чтобы загрузиться с правильного пула, я установил в BIOS в качестве первого загрузочного устройства диск, содержащий загрузчик, а в качестве второго и третьего — диски, принадлежащие корневому зеркальному пулу.

решение2

попробуйте перейти cp -r /bootиз правильного пула в неправильный. убедитесь, что bootfsсвойство неправильного пула пусто или установите для правильного пула.

решение3

Загрузитесь с соответствующего дистрибутивного CD в режиме "live CD". Войдите в систему как root.

Теперь предположим, что ваш загрузочный пул называется «tank»;

импортировать пул без его монтирования -

zpool import -N -f tank

Затем установите свойство bootfs соответствующим образом. Распространенное имя загрузочной файловой системы — «tank/ROOT/default»;

zpool set bootfs=tank/ROOT/default tank

это все для загрузочного пула. Повторите для не загрузочного пула, на этот раз установив свойство bootfs на "". Вот и все.

Связанный контент