Я установил 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 на "". Вот и все.