Как изменить размер / увеличить / расширить раздел ext4, не относящийся к LVM

Как изменить размер / увеличить / расширить раздел ext4, не относящийся к LVM

Я уже искал на форумах, но не нашел подходящего ответа:

У меня есть Ubuntu Server 10.04 в качестве KVM Host и гостевая система, которая также работает под управлением 10.04. Хост-система использует LVM, и есть три логических тома, которые предоставляются гостю как виртуальные блочные устройства — один для /, один для /home и один для swap. Гость был разделен без LVM.

Я уже увеличил логический том в хостовой системе - гость успешно видит больший виртуальный диск. Однако этот виртуальный диск содержит один "старый добрый" раздел, который все еще имеет старый маленький размер.

Вывод fdisk -l:

me@produktion:/$ LC_ALL=en_US sudo fdisk -l

Disk /dev/vda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c8ce7

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *           1        3917    31455232   83  Linux

Disk /dev/vdb: 2147 MB, 2147483648 bytes
244 heads, 47 sectors/track, 365 cylinders
Units = cylinders of 11468 * 512 = 5871616 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f2bf7

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1               1         366     2095104   82  Linux swap / Solaris
Partition 1 has different physical/logical beginnings (non-Linux?):
     phys=(0, 32, 33) logical=(0, 43, 28)
Partition 1 has different physical/logical endings:
     phys=(260, 243, 47) logical=(365, 136, 44)

Disk /dev/vdc: 225.5 GB, 225485783040 bytes
255 heads, 63 sectors/track, 27413 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00027f25

   Device Boot      Start         End      Blocks   Id  System
/dev/vdc1               1        9138    73398272   83  Linux

Вывод parted print all:

Model: Virtio Block Device (virtblk)
Disk /dev/vda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  32.2GB  32.2GB  primary  ext4         boot


Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  2146MB  2145MB  primary  linux-swap(v1)


Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  75.2GB  75.2GB  primary  ext4

Я хочу просто увеличить или изменить размер раздела /dev/vdc1 так, чтобы он использовал все пространство, предоставленное виртуальным блочным устройством /dev/vdc. Проблема в том, что когда я пытаюсь сделать это с помощью parted, он жалуется:

(parted) select /dev/vdc                                                  
Using /dev/vdc
(parted) print                                                            
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  75.2GB  75.2GB  primary  ext4

(parted) resize 1                                                         
WARNING: you are attempting to use parted to operate on (resize) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs.  We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
Start?  [1049kB]?                                                         
End?  [75.2GB]? 224GB                                                     
Error: File system has an incompatible feature enabled.  Compatible features are has_journal, dir_index, filetype, sparse_super and large_file.  Use tune2fs
or debugfs to remove features.

Так что я могу сделать? Это безголовая производственная система. Как безопасно увеличить этот раздел? Я МОГУ его размонтировать, так что проблема не в этом.

Редактировать: Cfdisk показал небольшое свободное пространство неразмеченного пространства, затем раздел (отмеченный как "boot" и Linux/ext3) и затем остальное неразмеченное пространство. После удаления раздела и создания его заново с помощью cfdisk - cfdisk показывает одну большую размеченную область (что меня бы устроило) и в качестве типа файловой системы только "Linux"

Resize2fs возвращает эту ошибку resize2fs 1.41.11 (14-Mar-2010) resize2fs: Bad magic number in super-block while trying to open /dev/vdc1 Couldn't find valid filesystem superblock

решение1

Этотстраница указывает, что способ сделать это — размонтировать, удалить, заново создать раздел нужного размера и использовать resize2fs для расширения раздела. Страница man resize2fs соглашается.

Я знаю, что «удалить раздел» звучит страшно, но это вообще не меняет данные. Это просто меняет то, что ссылается на контейнер. Пока вы этого НЕ СДЕЛАЕТЕ, все mkfs.ext4будет в порядке.

Начальная точка раздела должна быть такой же, как и была, иначе ОС не будет знать, как интерпретировать то, что за ней. Конечная точка может быть дальше, чтобы сделать раздел большего размера.

Я думаю, что ошибка в комментарии связана с перемещением начальной точки. Вам нужно начать с той же точки, с которой вы начали. Конечная точка может перемещаться.

Кредит дляпсусиза предложение fdisk вместо cfdisk и подтверждение проблемы с начальной точкой.

решение2

Пример:

/dev/sdb2 — это раздел /boot. Он имеет размер 100 МБ, что довольно мало. Чтобы увеличить этот раздел ext4 в работающей системе, выполните (как root или sudo):

размонтировать /boot

разделил /dev/sdb

(разделенная) печать

Модель: ATA Patriot Torqx 2 (scsi)
Диск /dev/sdb: 32,0 ГБ
Размер сектора (логический/физический): 512 Б/512 Б
Таблица разделов: msdos

Номер Начало Конец Размер Тип Файловая система Флаги
1 1049 КБ 12,9 ГБ 12,9 ГБ основной тип=83
2 12,9 ГБ 13,0 ГБ 107 МБ основной тип ext4=83

(разделён) rm 2

(разделён) mkpart

Тип раздела? основной/расширенный? основной
Тип файловой системы? [ext2]?
Начало? 12,9 ГБ
Конец? 13,4 ГБ

(расстались) уйти

resize2fs /dev/sdb2

resize2fs 1.42.6 (21 сентября 2012 г.)
Файловая система на /dev/sdb2 смонтирована на /boot; требуется изменение размера в режиме онлайн
old_desc_blocks = 1, new_desc_blocks = 2
Длина файловой системы на /dev/sdb2 теперь составляет 498688 блоков.

сделанный!

Все данные остаются на месте. /boot готов к использованию и имеет размер 472 МБ (parted не так уж и безопасен из-за своих размеров, прочтите руководство, чтобы узнать почему)

Все данные были сохранены ранее, но только в качестве меры предосторожности. Я рекомендую сделать то же самое.

Используйте следующую команду, чтобы найти процесс, останавливающий размонтирование /boot в случае сбоя:

lsof /загрузка

Удачи!

решение3

Если вы попытаетесь удалить и заново создать раздел, если он начинается с 2048, вас могут ждать проблемы, как это было у меня с resize2fs.

Couldn't find valid filesystem superblock.

Отfdisk версия 2.17.2, fdisk IIUC заставляет вас начинать с 2048, чтобы гарантировать, что ваш жесткий диск "правильно выровнен". Так что если ваш исходный раздел начинался до 2048, вас ждет ухабистая дорога при попытке воссоздать раздел.

Лучший подход —rsync при клонировании диска.

Связанный контент