VS>> boot0 отрабатывает, передает управление на 2-й слайс, а там: VS>> zfsboot: No ZFS pools located, can't boot VS>> Хотя в bhyve всё грузится, значит пул на месте и работоспособен, VS>> дело только в магии загрузчиков. Ты или кто другой если это VS>> проделывали, можете поделиться рецептом?
EG> В man zfsboot есть строчка: dd if=/boot/zfsboot of=/dev/ada0s1 count=1 EG> Hа самом деле для гарантии загружаемости в этом месте надо обязательно EG> использовать count=2 вместо count=1, чтобы затереть возможно имеющиеся EG> ошметки BSD label в следующем секторе - если они там есть, то EG> напарываемся на мисфичу загрузчика (которую лично я назвал бы багом), EG> приводящую к этой проблеме.
EG> zfsboot не знает, с которого раздела и которого диска его стартовал EG> boot0 и пытается обнюхать все диски и разделы в поисках загрузочного EG> пула ZFS, пропуская слайсы, в которых, как ему кажется, есть BSD EG> label.
О! Я подозревал, что здесь собака зарыта.
VS>> Я даже наверное сформулирую для начала вопрос: в ada0s2 надо VS>> создавать еще BSD партиции, и пул создавать в ada0s2a например? VS>> Или загрузочный zpool сразу делать на ada0s2?
EG> Обязательно сразу на ada0s2 и обязательно уничтожив все следы BSD EG> label в нём, для чего достаточно использовать count=2.
Спасибо, похоже что это и есть искомое сакральное знание. В статьях на wiki.freebsd.org везде зачем-то делают "gpart create -s BSD ad0s3" и далее "zpool create zroot /dev/ad0s3a", а в man zfsboot момент создания пула совсем не освещен.