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

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

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

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

Выходные данные fdisk -l являются

me@produktion:/$ LC_ALL=en_US sudo fdisk -lDisk /dev/vda: 32.2 GB, 32212254720 bytes255 heads, 63 sectors/track, 3916 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000c8ce7   Device Boot      Start         End      Blocks   Id  System/dev/vda1   *           1        3917    31455232   83  LinuxDisk /dev/vdb: 2147 MB, 2147483648 bytes244 heads, 47 sectors/track, 365 cylindersUnits = cylinders of 11468 * 512 = 5871616 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000f2bf7   Device Boot      Start         End      Blocks   Id  System/dev/vdb1               1         366     2095104   82  Linux swap / SolarisPartition 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 bytes255 heads, 63 sectors/track, 27413 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00027f25   Device Boot      Start         End      Blocks   Id  System/dev/vdc1               1        9138    73398272   83  Linux

Вывод разделенной печати all равен

Model: Virtio Block Device (virtblk)Disk /dev/vda: 32.2GBSector size (logical/physical): 512B/512BPartition Table: msdosNumber  Start   End     Size    Type     File system  Flags 1      1049kB  32.2GB  32.2GB  primary  ext4         bootModel: Virtio Block Device (virtblk)Disk /dev/vdb: 2147MBSector size (logical/physical): 512B/512BPartition Table: msdosNumber  Start   End     Size    Type     File system     Flags 1      1049kB  2146MB  2145MB  primary  linux-swap(v1)Model: Virtio Block Device (virtblk)Disk /dev/vdc: 225GBSector size (logical/physical): 512B/512BPartition Table: msdosNumber  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: 225GBSector size (logical/physical): 512B/512BPartition Table: msdosNumber  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 indedicated, file-system-specific packages like e2fsprogs.  We recommendyou use parted only to manipulate partition tables, whenever possible.Support for performing most operations on most types of file systemswill 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 tune2fsor debugfs to remove features.

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

Редактировать: Cfdisk показал небольшое свободное пространство, не разделенное на разделы, затем раздел (помеченный как "загрузочный" и 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

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

Я знаю, что "удалить раздел" звучит пугающе, но это вообще не меняет данные. Это просто изменяет то, что ссылается на контейнер. До тех пор, пока ты ЭТОГО НЕ СДЕЛАЕШЬ mkfs.ext4 с тобой все должно быть в порядке.

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

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

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

Пример:

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

umount /загрузка

разделенный /dev/sdb

(разделенный) отпечаток

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

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

(раздвинутый) rm 2

(расстались) mkpart

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

(расстались) уходи

изменение размера 2fs /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 /загрузка

Удачи!

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

Couldn't find valid filesystem superblock.

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

Наилучший подход заключается в том, чтобы rsync при клонировании диска.