1

Я установил FreeBSD 8.1 на машине, где диск был /dev/ad6 но переместил его в новую систему, где диск теперь /dev/ad4 . Новая система загружается, но мне нужно вручную указать, что корневая файловая система находится на ad4s1 .

Как я могу изменить загрузчик, чтобы сделать это автоматически? Поиск в Google приводит к тому, что disklabel -e может изменить номер диска, но я получаю только ошибки "Class not found", и метка диска при этом не изменяется.

4 ответа4

4

У меня был следующий сценарий:

Я установил 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». Мои выводы были:

  1. НЕ ИЗМЕНЯЙТЕ файл /boot/loader.conf !
  2. НЕ ИЗМЕНЯЙТЕ файл /boot/defaults/loader.conf !

Поскольку выполнение этих вещей испортит загрузчик!

Решением было настроить /etc/fstab на /mnt ( флешка 16GB), изменив запись /dev/da1s2a на /dev/da0s2a/ как загрузчик ищет fstab для файловых систем в fstab во время загрузки и автоматически записывает значение из vfs.Root.Mountfrom переменной !!!

Поэтому во время перезагрузки я удалил флешку объемом 1 ГБ, и машина успешно загрузила FreeBSD!

2

Файл /boot/loader.conf содержит инструкции, какую файловую систему монтировать как root.

Проверьте этот файл на предмет:

vfs.root.mountfrom="ufs:ad6s1a"

и настроить его (или добавить, если он отсутствует), чтобы прочитать:

vfs.root.mountfrom="ufs:ad4s1a"

(то есть предполагается, что раздел А фрагмента 1 устройства 4)

1

Использование sysinstall (Configure > Label) позволило исправить метку диска. Одна странность заключалась в том, что редактор выбрал правильный номер диска (например, ad4), но выбор W записал правильную метку и решил проблему с загрузкой.

0

Я думаю, что вы хотите изменить /boot.config .

Смотрите страницу руководства boot.config .

Это предполагает, что вы хотите что-то вроде

echo "1:ad(4,a)/boot/loader" > /boot.config

Но сначала просмотрите файл, чтобы увидеть, что такое /dev/ad6 , а затем выясните, каким должен быть /dev/ad4 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .