Установка FreeBSD с использованием оболочки и ручное разделение диска

Вопрос или проблема

Я пытаюсь установить FreeBSD 14 с использованием ZFS, но не хочу использовать весь диск, поэтому выбираю опцию Shell. Я следовал этим инструкциям.

A. Загрузите установочный DVD или USB-накопитель FreeBSD
B. Выберите Установить и ответьте на вопросы, такие как раскладка клавиатуры и имя хоста
C. Когда вам предложат разделить диск:
  i. Если вы не хотите использовать весь диск, перейдите к разделу Создание раздела
  ii. выберите опцию "shell"
  iii. Определите, какой диск вы хотите использовать: camcontrol devlist
  iv. Создайте новую таблицу разделов: gpart destroy ada0

Проблема возникает на шаге C.4. Я доходил до раздела Разделение во время установки и выбирал Shell. Я использую camcontrol devlist, чтобы увидеть свои устройства, и затем выполняю gpart destroy nda0, что возвращает ошибку Устройство занято.

# gpart destroy nda0
gpart: Устройство занято

Я попытался запустить команду gpart destroy nda0 без выполнения команды camcontrol devlist, на случай, если она что-то сделает, и также пробовал перезагрузить систему и запустить установщик заново, но без успеха.

Означает ли это, что устройство смонтировано? Это кажется мне немного странным и не похоже на правду, когда я проверяю df:

df
Файловая система            Смонтировано на
/dev/ufs/FreeBSD_Install   /
devfs                      /dev
tmpfs                      /tmp
tmpfs                      /var

Следующая догадка — это проблема с драйверами для диска? При поиске я увидел это, что упоминает добавление следующего в loader.conf:

nvme_load="YES"
nvd_load="YES"

Но я не уверен, как это сделать, когда запускаю с USB. Есть ли способ загрузить необходимые драйверы, как только я войду в Shell?

Я нашел проблему. Из руководства gpart:

   Удаление разделов и уничтожение схемы разделов
       Если при попытке уничтожить таблицу разделов появляется ошибка Устройство занято,
       помните, что все разделы должны быть удалены сначала с помощью действия удаления.
       В этом примере da0 имеет три раздела:

         /sbin/gpart delete -i 3 da0
         /sbin/gpart delete -i 2 da0
         /sbin/gpart delete -i 1 da0
         /sbin/gpart destroy da0

       Вместо удаления каждого раздела и затем уничтожения схемы разделов,
       можно использовать опцию -F с destroy для удаления всех разделов перед уничтожением схемы. 
       Это эквивалентно предыдущему примеру:

         /sbin/gpart destroy -F da0

Я заблуждался из-за сообщения. Ранее я всегда считал, что Устройство занято означает, что устройство смонтировано или используется. Даже поиск привел меня по этому пути. Это была эта старая ошибка, которая направила меня в правильном направлении.

Если это нужно удалить, не стесняйтесь, но я выкладываю решение здесь, на случай если оно поможет кому-то еще.

Ответ или решение

Для установки FreeBSD 14 с использованием ZFS и ручного разделения диска через оболочку, следуйте указанным шагам. Общая проблема, описанная в вопросе, заключается в том, что команда gpart destroy nda0 возвращает ошибку "Device busy". Эта ошибка может быть неожиданной, если вы не знаете, что устройства, чтобы выполнить gpart destroy, необходимо сначала удалить все разделы на диске.

Вот полный алгоритм действий:

  1. Загрузка установочного носителя:

    • Загрузите установочный DVD или USB-накопитель с FreeBSD.
  2. Начало установки:

    • Выберите вариант установки и ответьте на вопросы, такие как раскладка клавиатуры и имя хоста.
  3. Выбор оболочки для ручного разделения:

    • Когда будет предложено выполнить разделение диска, выберите опцию "Shell".
  4. Определение устройства:

    • Используйте команду camcontrol devlist, чтобы увидеть доступные устройства и определить, какое из них вы хотите использовать (например, ada0 или nda0).
  5. Устранение ошибки "Device busy":

    • Вы столкнулись с ошибкой "Device busy" при выполнении gpart destroy nda0. Эта ошибка указывает на то, что существует как минимум один раздел на диске, и для устранения её необходимо сначала удалить все разделы.

Примеры команд:

  • Для удаления всех разделов выполните:
     gpart delete -i 1 nda0
     gpart delete -i 2 nda0
     gpart delete -i 3 nda0
  • Либо используйте опцию -F, чтобы удалить все разделы и сразу уничтожить схему разделов:
     gpart destroy -F nda0
  1. Создание новой таблицы разделов:

    • После успешного выполнения команды gpart destroy, вы можете создать новую таблицу разделов для ZFS:
      gpart create -s gpt nda0
  2. Создание ZFS и установка:

    • После создания таблицы разделов, продолжайте следовать инструкции для настройки ZFS, создавайте пул и файловую систему, основываясь на документации.

Важно отметить, что ваша ошибка была связана с непониманием сообщения "Device busy". Это сообщение не всегда означает, что устройство смонтировано; возможно, оно просто имеет существующие разделы. Использование команды gpart destroy -F решает эту проблему, так как она удаляет все разделы одновременно.

Если вы хотите убедиться, что драйверы для NVMe загружены, вы можете попытаться добавить следующие строки в файл конфигурации загрузчика, но это обычно не требуется, если вы используете стандартные установочные средства FreeBSD:

nvme_load="YES"
nvd_load="YES"

Так как вы работаете из живой системы, вам не нужно будет указывать эти строки.

Надеюсь, этот ответ поможет вам успешно завершить установку FreeBSD и разрешить возникшие проблемы.

Оцените материал
Добавить комментарий

Капча загружается...