Расширение диска во FreeBSD

Расширение файловой системы FreeBSD рассмотрено на примере виртуального маршрутизатора OPNsense. Сначала увеличьте размер облачного диска в Dashboard.

После увеличения блочного устройства выполните операции внутри ОС.

В примере файловая система /dev/ufs/OPNsense расширяется с 1,9 ГБ до максимального размера.

Примечание

Изменение таблицы разделов может привести к потере данных. Перед началом обязательно создайте резервную копию инстанса.

  1. Откройте консоль маршрутизатора через облачную веб-консоль или SSH.

*** OPNsense.localdomain: OPNsense 17.7.11 (amd64/OpenSSL) ***

 WAN (vtnet0)    -> v4/DHCP4: 172.16.0.15/20

  0) Logout                              7) Ping host
  1) Assign interfaces                   8) Shell
  2) Set interface IP address            9) pfTop
  3) Reset the root password            10) Firewall log
  4) Reset to factory defaults          11) Reload all services
  5) Power off system                   12) Upgrade from console
  6) Reboot system                      13) Restore a backup

Enter an option:

  1. Выберите 8) Shell (Enter an option: 8), предварительно авторизовавшись при необходимости.

  2. Проверьте версию и название операционной системы:

root@OPNsense:~ # uname -mrs
FreeBSD 11.0-RELEASE-p12 amd64
  1. Выведите список файловых систем, их размер, занятое и свободное пространство:

root@OPNsense:~ # df -h
Filesystem           Size    Used   Avail Capacity  Mounted on
/dev/ufs/OPNsense    1.9G    1.2G    605M    67%    /
devfs                1.0K    1.0K      0B   100%    /dev
devfs                1.0K    1.0K      0B   100%    /var/dhcpd/dev

В данном случае нужно расширить /dev/ufs/OPNsense.

  1. Отключите защиту GEOM, чтобы разрешить изменение разделов:

root@OPNsense:~ # sysctl kern.geom.debugflags=16
kern.geom.debugflags: 16 -> 16
  1. Выведите таблицу разделов:

root@OPNsense:~ # gpart show
=>      63  41942977  vtbd0  MBR  (20G)
        63   4194225      1  freebsd  (2.0G)
   4194288  37748752         - free -  (18G)

=>      0  4194225  vtbd0s1  BSD  (2.0G)
        0       16           - free -  (8.0K)
       16  4194209        1  !0  (2.0G)

По результату gpart show размер диска составляет 20 ГБ, из которых 18 ГБ свободны. Это пространство можно добавить к слайсу, разделу и файловой системе.

  1. Расширьте первый слайс диска vtbd0 с 2 до 20 ГБ.

Параметр -i задаёт номер раздела, -s — новый размер, а -a — выравнивание. Если -s не указан, используется всё свободное пространство.

Примечание

Команда gpart resize -i 1 -a 4k vtbd0 изменяет только размер раздела. Файловая система расширяется на следующих шагах.

root@OPNsense:~ # gpart resize -i 1 -a 4k vtbd0
vtbd0s1 resized
  1. Проверьте раздел после расширения:

root@OPNsense:~ # gpart show
=>      63  41942977  vtbd0  MBR  (20G)
        63  41942977      1  freebsd  (20G)

=>       0  41942977  vtbd0s1  BSD  (20G)
         0        16           - free -  (8.0K)
        16   4194209        1  !0  (2.0G)
   4194225  37748752           - free -  (18G)
  1. Расширьте первый раздел с 2 до 20 ГБ:

root@OPNsense:~ # gpart resize -i 1 -a 4k vtbd0s1
vtbd0s1a resized
  1. Проверьте результат:

root@OPNsense:~ # gpart show
=>      63  41942977  vtbd0  MBR  (20G)
        63  41942977      1  freebsd  (20G)

=>       0  41942977  vtbd0s1  BSD  (20G)
         0        16           - free -  (8.0K)
        16  41942961        1  !0  (20G)
  1. Убедитесь, что размер самой файловой системы пока не изменился:

root@OPNsense:~ # df -h
Filesystem           Size    Used   Avail Capacity  Mounted on
/dev/ufs/OPNsense    1.9G    1.2G    605M    67%    /
devfs                1.0K    1.0K      0B   100%    /dev
devfs                1.0K    1.0K      0B   100%    /var/dhcpd/dev
root@OPNsense:~ #

Команда df -h показывает прежний размер файловой системы.

  1. Расширьте файловую систему раздела:

root@OPNsense:~ # growfs -y /dev/ufs/OPNsense
super-block backups (for fsck_ffs -b #) at:
4194496, 5243072, 6291648, 7340224, 8388800, 9437376, 10485952, 11534528,
12583104, 13631680, 14680256, 15728832, 16777408, 17825984, 18874560,
19923136, 20971712,     22020288, 23068864, 24117440, 25166016, 26214592,
27263168, 28311744, 29360320, 30408896, 31457472, 32506048, 33554624,
34603200, 35651776, 36700352, 37748928,     38797504, 39846080, 40894656
  1. Проверьте результат:

root@OPNsense:~ # df -h
Filesystem           Size    Used   Avail Capacity  Mounted on
/dev/ufs/OPNsense     19G    1.2G     17G     7%    /
devfs                1.0K    1.0K      0B   100%    /dev
devfs                1.0K    1.0K      0B   100%    /var/dhcpd/dev

Файловая система успешно расширена. Подробнее см. в документации FreeBSD Resizing and Growing Disks.