Перезагрузить таблицу разделов на FreeBSD

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

Я ищу способ перезагрузить таблицу разделов в FreeBSD 12 (FreeNAS). У меня нет hdparm, gfdisk и partprobe.

Какой стандартный способ сделать это?

PS: мой pkg не работает за файрволом, так что, вероятно, я не могу установить пакеты, кроме как через SCP. [EDIT]Убрал ограничения в правилах файрвола, теперь я могу устанавливать пакеты при необходимости[/EDIT]

Я уже читал Перечитать таблицу разделов без перезагрузки?, но там только решения для Linux.

В теории, glabel refresh /dev/your/disk поможет. На практике, в моем случае, это не сработало.

Кнопка geom(4) «повторного считывания» может быть вызвана записью на устройство, идеально, неразрушающей записью, такой как:

  • : > /dev/da0
    
  • true > /dev/da0
    
  • false > /dev/da0
    
  • cp /dev/null /dev/da0
    

Замените da0 соответственно. Если вам немного страшно «писать» на диск, попробуйте

camcontrol reprobe da0

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

Обновление таблицы разделов в FreeBSD

При работе с FreeBSD 12 (включая FreeNAS) иногда возникает необходимость обновить таблицу разделов без перезагрузки системы. Это может быть вызвано изменениями, внесенными в структуру разделов диска, например, после создания или изменения раздела. В этом ответе я подробно рассмотрю стандартные методы для выполнения данной задачи в условиях, когда недоступны такие утилиты, как hdparm, gdisk или partprobe, и предложу другие варианты.

1. Использование Geom

Одним из подходов к обновлению таблицы разделов является использование подсистемы Geom в FreeBSD. В теории команда glabel refresh /dev/your/disk должна обновить информацию о разделах, однако в практике она иногда не срабатывает.

Для более стабильного обновления таблицы разделов, можно принудительно инициировать «перепробу» Geom. Это можно сделать с помощью следующей команды, которая записывает пустой файл на устройство:

: > /dev/da0

или же любой вариант из следующих:

true > /dev/da0
false > /dev/da0
cp /dev/null /dev/da0

Примечание: Замените da0 на устройство, с которым вы работаете. Это создаст ненадежную запись, заставляя Geom пересчитать таблицы разделов.

2. Использование camcontrol

Другим подходом является использование команды camcontrol. Данная команда позволяет взаимодействовать с управлением CAM (Common Access Method). Для того чтобы обновить информацию о подключенном диске, выполните:

camcontrol rescan da0

Эта команда перезапустит процесс обнаружения и может обновить таблицу разделов без необходимости перезагрузки системы.

Важно помнить

  1. Данные: Прежде чем выполнять эти операции, всегда создавайте резервные копии важных данных.
  2. Тестирование: Рекомендуется сначала протестировать команды на несущественных или запасных устройствах, чтобы избежать случайной потери данных.

Устранение проблем

Если команды не сработали, и вы по прежнему видите старую таблицу разделов, проверьте следующее:

  • Убедитесь, что у вас есть необходимые привилегии для выполнения реагирования на изменение устройства.
  • Возможно, требуется использовать специальные параметры в BIOS или в настройках вашей системы для обеспечения поддержки работы с изменяемыми таблицами разделов.

Установка дополнительных инструментов

Если у вас появился доступ к интернету и возможности установок пакетов (например, pkg), вы можете установить некоторые инструменты для удобства работы. Например:

pkg install gpart

Это позволит использовать gpart, который является более современным инструментом для управления разделами и может упростить процесс их обновления или обработки.

Заключение

Надеюсь, эти советы помогут вам эффективно обновить таблицу разделов в FreeBSD 12 без перезагрузки. При необходимости не стесняйтесь задавать дополнительные вопросы или делать уточнения!

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

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