FreeBSD: Расширяем раздел жесткого диска

FreeBSD Logo

Всем привет!
Несколько месяцев назад получил алерт от Zabbix, что на почтовом сервере осталось менее 20% места на основном разделе.
Т.к. сервер виртуализирован с помощью VmWare ESXi, то добавить объем жесткому диску не проблема.
Но надо правильно приготовить:)
Решил повторить опыт и поделиться что и как я делал.

Исходные данные:

  1. FreeBSD 12.1
  2. Исходный размер жесткого диска — 25GB
  3. Swap раздел — 1GB
  4. Новый размер диска — 50GB

Смотрим помощью gpart что у нас есть:

# gpart show
=>      40  52428720  ada0  GPT  (25G)
        40      1024     1  freebsd-boot  (512K)
      1064  50330624     2  freebsd-ufs  (24G)
  50331688   2097072     3  freebsd-swap  (1.0G)

Так же посмотрим информацию о SWAP:

# swapinfo -h
Device          1K-blocks     Used    Avail Capacity
/dev/ada0p3       1048536       0B     1.0G     0%

Записываем все, выключаем сервер и накидываем объем диска.
Загружаемся.
Если у вас реальный сервер на котором крутится процессы использующие запись в своп, то лучше все делать в однопользовательском (Single Mode) режиме.
Проверим что у нас добавилось:

# gpart show ada0
=>      40  52428720  ada0  GPT  (50G) [CORRUPT]
        40      1024     1  freebsd-boot  (512K)
      1064  50330624     2  freebsd-ufs  (24G)
  50331688   2097072     3  freebsd-swap  (1.0G)

Получаем сообщение, что GPT таблица имеет статус CORRUPT, чиним:

# gpart recover ada0
# gpart show ada0
=>       40  104857520  ada0  GPT  (50G)
         40       1024     1  freebsd-boot  (512K)
       1064   50330624     2  freebsd-ufs  (24G)
   50331688    2097072     3  freebsd-swap  (1.0G)
   52428760   52428800        - free -  (25G)

Видим, что в конце нам стало доступно 25GB свободного места, чтобы добавить их ко второму разделу, нужно удалить swap.
Отключаем swap:

# swapoff /dev/ada0p3

Удалим SWAP раздел, в моем случае это 3 раздел ada0

# gpart delete -i 3 ada0

Проверяем, что у нас осталось:)

# gpart show ada0
=>       40  104857520  ada0  GPT  (50G)
         40       1024     1  freebsd-boot  (512K)
       1064   50330624     2  freebsd-ufs  (24G)
   50331688   54525872        - free -  (26G)

Видим, что у нас остался один раздел (слайс), swap уничтожен.

HandBook советует следующие операции по изменению размера разделов производить при размонтированных файловых системах, на боевых серверах крайне рекомендую к этому прислушаться!

Отключаем безопасность GEOM:

# sysctl kern.geom.debugflags=16

Решаем, что для swap-раздела оставляем 2GB, а основной раздел увеличиваем до 48GB (25GB+25GB-2GB)

# gpart resize -i 2 -s 48G -a 4k ada0

-i 2 — указывает на раздел

Еще раз проверяем:

# gpart show ada0
=>       40  104857520  ada0  GPT  (50G)
         40       1024     1  freebsd-boot  (512K)
       1064  100663296     2  freebsd-ufs  (48G)
  100664360    4193200        - free -  (2.0G)

Создадим на оставшемся свободном месте раздел для подкачки:

# gpart add -t freebsd-swap -a 4k ada0
ada0p3 added
# gpart show ada0
=>       40  104857520  ada0  GPT  (50G)
         40       1024     1  freebsd-boot  (512K)
       1064  100663296     2  freebsd-ufs  (48G)
  100664360    4193200     3  freebsd-swap  (2.0G)

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

# growfs /dev/ada0p2
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/ada0p2, mounted on /, from 24GB to 48GB? [yes/no]

Подключаем файл подкачки:

# swapon /dev/ada0p3

Проверяем размер файловой системы:

# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ada0p2     46G    1,3G     42G     3%    /
devfs          1,0K    1,0K      0B   100%    /dev

Наличие свопа:

# swapinfo -h
Device          1K-blocks     Used    Avail Capacity
/dev/ada0p3       2096600       0B     2.0G     0%

Возвращаем на место настройки GEOM

# sysctl kern.geom.debugflags=0

Собственно все.

Рейтинг
( 3 оценки, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

:) :D :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.