Изменить размер раздела GPT FreeBSD

При эксплуатации серверов под управлением FreeBSD в виртуальной среде VMware, иногда возникает необходимость увеличения объема раздела жесткого диска. Следующие инструкции помогут сделать это легко и быстро.

  1. Изменяем размер диска в vSphere Client, затем перезагружаем виртуальную машину. (В данном примере общий объем диска был 6 Гб, я увеличил его до 8 Гб. Основной раздел UFS нужно было увеличить с 4 до 6 Гб)
  2. Проверяем, что появилось свободное место
    # gpart show da0
    =>      34  12582845  da0  GPT  (8.0G) [CORRUPT]
            34       256    1  freebsd-boot  (128K)
           290   4194304    2  freebsd-swap  (2.0G)
       4194594   8388284    3  freebsd-ufs  (4.0G)
      12582878         1       - free -  (512B)

    Если вместо свободного места Вы обнаруживаете, что разметка повреждена [CORRUPT], не расстраивайтесь.

  3. Починить разметку, если необходимо, можно следующей командой:
    # gpart recover da0
    da0 recovered

    Теперь с разметкой все в порядке. Можно еще раз посмотреть таблицу разделов.

    # gpart show da0
    =>      34  16777149  da0  GPT  (8.0G)
            34       256    1  freebsd-boot  (128K)
           290   4194304    2  freebsd-swap  (2.0G)
       4194594   8388284    3  freebsd-ufs  (4.0G)
      12582878   4194305       - free -  (2.0G)

    Вот сейчас видно, что добавилось 2 Гб свободного места. Отлично.

  4. Чтобы изменить размер раздела № 3 до конца свободного места, выполняем следующую команду:
    # gpart resize -i 3 da0
    da0p3 resized
  5. И теперь посмотрим, что получилось:
    # gpart show da0
    =>      34  16777149  da0  GPT  (8.0G)
            34       256    1  freebsd-boot  (128K)
           290   4194304    2  freebsd-swap  (2.0G)
       4194594  12582589    3  freebsd-ufs  (6.0G)

    Теперь третий раздел имеет 6 Гб.

  6. Последний штрих — изменение размера файловой системы на данном разделе. Выполняется простой командой:
    # growfs /dev/da0p3
    Device is mounted read-write; resizing will result in temporary write suspension for /.
    It's strongly recommended to make a backup before growing the file system.
    OK to grow filesystem on /dev/da0p3, mounted on /, from 4.0GB to 6.0GB? [Yes/No] Yes
    super-block backups (for fsck_ffs -b #) at:
     8975872, 10258112, 11540352

    Если последняя команда завершилось с ошибкой «Operation not permitted», то вместо устройства (/dev/da0p3) укажите каталог в файловой системе, в который это устройство примонтировано, например: growfs / (Спасибо Петру, подсказавшему это в комментариях).

    Вот так все просто. Удачи!

Изменить размер раздела GPT FreeBSD: 7 комментариев

  1. growfs /dev/da0p3

    It’s strongly recommended to make a backup before growing the file system.
    OK to grow filesystem on /dev/da0p3 from 39GB to 199GB? [Yes/No] Yes
    growfs: /dev/da0p3: Operation not permitted

    что можно с этим поделать?

      1. Hyper-V, FreeBSD 11.3, делаю из-под рута и из сингл.мод, ошибку подтверждаю: Operation not permitted
        Возможно из-за того, что раздел корневой

        1. Странно. Я в статье тоже расширял корневой раздел — без проблем. Сейчас давно уже нет нигде FreeBSD, чтобы посмотреть, что не так. Может быть кто-то другой подскажет в чем может быть проблема.

          1. Да, я сам отвечу, вчера нашел решение этого вопроса, вместо «growfs /dev/da0p3» сработало «growfs /».
            Но самое интересное, нашел скрипт, встроенный в систему (по крайней мере скрипт встроен в предназначенный для виртуалки Hyper-V диск .vhd), который заменяет все описанные пункты. После расширения диска в свойствах виртуалки, в командной строке загрузившейся фрибзди из-под рута набрать «service growfs onestart», и все что мы делали руками в пунктах 3-6 сделает скрипт за пару секунд.

            Насколько я понял, в гостевой фре этот скрипт должен отрабатывать при каждой загрузке (спец. для него в rc.conf добавляют строку growfs_enable=»YES»), но почему-то не отрабатывает, выяснять причину я не стал.

            Оставлю пару ссылок откуда я это все взял, в русскоязычном сегменте не нашел ничего про это, может быть кому пригодится
            https://nxmnpg.lemoda.net/7/growfs
            https://www.digitalocean.com/community/questions/freebsd-growfs-operation-not-permitted-aka-enlarge-your-partition

Прокомментировать