У меня был следующий сценарий:
Я установил FreeBSD 10.1 USB .img файл на 1 ГБ флешку и установил FreeBSD на 16 ГБ флешку. Флешка объемом 1 ГБ была распознана как /dev/da0 , а флешка объемом 16 ГБ - как /dev/da1 . FreeBSD был установлен на 16 ГБ флешку в /dev/da1s2a . Затем я удалил 1 ГБ флешку и, как правило, не могу автоматически загрузиться в систему FreeBSD. Система сказала, что не может загрузиться с vfs.root.mountfrom="/dev/da1s2a" , но предложила мне вручную загрузить FreeBSD, поэтому мне пришлось изменить загрузочный фрагмент на /dev/da0s2a , и это сработало. Конечно, я не хочу делать это вручную, поэтому я нашел этот пост.
Это вдохновило меня на поиск местоположения переменной vfs.root.mountfrom , поэтому я перезагружаю систему, вытаскиваю флешку на 16 Гб, вставляю флешку на 1 Гб, загружаюсь с нее как Live CD. В этот момент я поставил обратно 16 ГБ флешку, установил ее (mount /dev/da1s2a /mnt) и искал «vfs.root.mountfrom». Мои выводы были:
- НЕ ИЗМЕНЯЙТЕ файл
/boot/loader.conf !
- НЕ ИЗМЕНЯЙТЕ файл
/boot/defaults/loader.conf !
Поскольку выполнение этих вещей испортит загрузчик!
Решением было настроить /etc/fstab на /mnt ( флешка 16GB), изменив запись /dev/da1s2a на /dev/da0s2a/ как загрузчик ищет fstab для файловых систем в fstab во время загрузки и автоматически записывает значение из vfs.Root.Mountfrom переменной !!!
Поэтому во время перезагрузки я удалил флешку объемом 1 ГБ, и машина успешно загрузила FreeBSD!