Как изменить размер / увеличить / увеличить раздел без LVM ext4

20

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

У меня Ubuntu Server 10.04 в качестве хоста KVM и гостевая система, которая также работает 10.04. Хост-система использует LVM, и есть три логических тома, которые предоставляются гостю как виртуальные блочные устройства - один для /, один для / home и один для подкачки. Гость был разделен без 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

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

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

Mischa
источник

Ответы:

18

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

Я знаю, что «удалить раздел» звучит страшно, но это не меняет данные вообще. Это просто меняет то, что ссылается на контейнер. До тех пор, пока вы не mkfs.ext4делаете, все будет в порядке.

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

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

Кредит psusi предложившего FDISK вместо cfdisk и подтверждая вопрос начальной точки.

RobotHumans
источник
Хорошо, я удалил раздел с помощью cfdisk и создал новый. Но я не смог изменить его размер, а также я не могу его смонтировать.
Миша
resize2fs 1.41.11 (14 марта 2010 г.) resize2fs: неверное магическое число в суперблоке при попытке открыть / dev / vdc1 Не удалось найти допустимый суперблок файловой системы.
Миша
1
на самом деле, cfdisk показывал небольшое нераспределенное пространство на свободном пространстве, затем раздел (помеченный как «boot» и Linux / ext3), а затем оставшуюся часть нераспределенного пространства. После удаления раздела и его повторного создания с помощью cfdisk - cfdisk показывает одну большую разделенную область (что было бы хорошо для меня), а в качестве файловой системы только «Linux».
Миша
8
Вам необходимо воссоздать раздел так, чтобы он начинался с того же сектора, что и изначально. Вы не можете сделать это с помощью cfdisk. Используйте fdisk или parted и переведите их в секторный режим.
psusi
1
Есть ли способ изменить размер раздела ext4 таким образом, чтобы начало раздела было перенесено? Поскольку у меня есть свободное пространство перед текущим разделом ext4, а не сзади ... к счастью, у меня больше свободного места, чем большой раздел, поэтому я могу сделать следующее: скопировать весь раздел вперед, удалить один сзади, а затем изменить размер перемещенного на весь размер? но это кажется мне ужасным хаком в данный момент ...
кодирование
6

Пример:

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

umount / boot

расстались / 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

(расстались) рм 2

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

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

(расстались) выйти

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 МБ (расстаться не так уж и безопасно с размерами, прочитайте руководство, чтобы узнать почему)

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

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

lsof / boot

Удачи!

user157258
источник
2
Вам нужно использовать единицы секторов, а не ГБ, чтобы быть уверенным, что вы получите их точно в одном месте.
psusi
0

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

Couldn't find valid filesystem superblock.

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

Лучший подход - использовать rsync при клонировании диска .

Хендри
источник