У меня был следующий сценарий:
Я установил 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!