Вопрос или проблема
Я ищу способ перезагрузить таблицу разделов в 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
Эта команда перезапустит процесс обнаружения и может обновить таблицу разделов без необходимости перезагрузки системы.
Важно помнить
- Данные: Прежде чем выполнять эти операции, всегда создавайте резервные копии важных данных.
- Тестирование: Рекомендуется сначала протестировать команды на несущественных или запасных устройствах, чтобы избежать случайной потери данных.
Устранение проблем
Если команды не сработали, и вы по прежнему видите старую таблицу разделов, проверьте следующее:
- Убедитесь, что у вас есть необходимые привилегии для выполнения реагирования на изменение устройства.
- Возможно, требуется использовать специальные параметры в BIOS или в настройках вашей системы для обеспечения поддержки работы с изменяемыми таблицами разделов.
Установка дополнительных инструментов
Если у вас появился доступ к интернету и возможности установок пакетов (например, pkg
), вы можете установить некоторые инструменты для удобства работы. Например:
pkg install gpart
Это позволит использовать gpart
, который является более современным инструментом для управления разделами и может упростить процесс их обновления или обработки.
Заключение
Надеюсь, эти советы помогут вам эффективно обновить таблицу разделов в FreeBSD 12 без перезагрузки. При необходимости не стесняйтесь задавать дополнительные вопросы или делать уточнения!