Недавно я увеличил объем своего виртуального диска хранения RAID 5 с 6 ТБ до 9 ТБ. Dell OMSA и BIOS для RAID-контроллера показывают, что у меня 8382 ГБ. Что нормально.
Но когда заходишь в Debian и теребишься, он все равно видит только 6 ТБ.
Когда я выполняю команду fdisk -l, я получаю следующее:
Disk /dev/sda: 9000.1 GB, 9000103968768 bytes
255 heads, 63 sectors/track, 1094200 cylinders, total 17578328064 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 1 4294967295 2147483647+ ee GPT
Итак, теперь он видит, что это 9 ТБ. А вот раздела sda1 нет. Как мне расширить это, чтобы отразить изменение размера .... БЕЗ ПОТЕРЯ ЛЮБЫХ ДАННЫХ!
Спасибо
Нет простого способа сделать это, если вы не используете LVM.
Вот процедура, которой можно безопасно следовать, если вы очень очень осторожный. Очевидно, лучший способ быть осторожным - сделать резервную копию ваших данных.
К счастью, ваш раздел начинается с первого сектора, поэтому вам не нужно беспокоиться об этом. Ваша проблема в конце, а это не ваш (новый) последний сектор. Значит вам нужно его обновить. Поэтому вам нужно уничтожить свой раздел и создать новый (без его форматирования!).
fdisk -u /dev/sda
Затем в утилите fdisk:
d
удалить раздел 1
p
чтобы убедиться, что у вас не осталось разделаn
чтобы создать новый раздел: p
сделать его основным разделом1
сделать его первым разделом1
чтобы он запустился в секторе 1 (как было)Optionnal (чтобы сделать ваш раздел загрузочным):
a
поднять флаг, а 1
указать разделТеперь вам нужно записать свои изменения:
w
Теперь вы можете выйти из fdisk и перезагрузить сервер. После этого расширьте раздел на уровне файловой системы (resize2fs /dev/sda1
)
Как уже упоминал @duskwuff, это GPT
таблица разделов, поэтому fdisk
показывает только защитное содержимое MBR. Использовать gdisk -l /dev/sda
вместо. У вас может быть более одного раздела, и в этом случае вы сможете изменить размер только последнего.
Обходным путем (не рекомендуется) может быть программный RAID0 (называемый mdraid
в Linux), охватывающий раздел, который вы хотите расширить, и раздел, созданный в новом пространстве, видимый ОС как одно большое пространство. Чтобы избежать потери данных, вы должны использовать вариант mdraid без метаданных (mdadm --build ...
не mdadm --create ...
), чек man mdadm
. Однако это снизит производительность, создаст дополнительные трудности при применении к разделу корневой файловой системы и может стереть ваши данные в случае любой ошибки.
Возможно, есть другое, неразрушающее решение - если у вас есть один раздел на диске и вы найдете смещение своей файловой системы, вы можете удалить раздел и смонтировать весь диск без разделов, указав смещение = значение при монтировании. Не уверен, работает ли он с правильным блочным устройством (используется только с файлами цикла и изображений). Если он работает с установленными разделами, то он будет работать и без них, поэтому вы можете поэкспериментировать с монтированием и смещением, прежде чем касаться структуры разделов. Обратной стороной является то, что такая компоновка может запутать программное обеспечение для восстановления данных, если оно вам когда-нибудь понадобится.
Чтобы избежать такого рода проблем, я всегда стараюсь использовать разные группы томов для boot / rootfs - разделенного диска и для данных - диска без разделов (расширение его онлайн - это кусок пирога, просто изменение размера файловой системы - resize2fs /dev/sda
, если это EXT {2..4}). Это решение на будущее.