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

18

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

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

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

Выход fdisk -l

[email protected]:/$ 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) 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 23.03.2012 в 07:59
источник

3 ответа

17

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

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

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

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

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

    
ответ дан RobotHumans 23.03.2012 в 10:26
источник
5

Пример:

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

umount /boot

parted /dev/sdb

(parted) print

Model: ATA Patriot Torqx 2 (scsi)
Disk /dev/sdb: 32.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start End Size Type File system Flags
1 1049kB 12.9GB 12.9GB primary type=83
2 12.9GB 13.0GB 107MB primary ext4 type=83

     

(parted) rm 2

     

(parted) mkpart

     

Partition type? primary/extended? primary
File system type? [ext2]?
Start? 12.9GB
End? 13.4GB

     

(parted) выйти

     

resize2fs / dev / sdb2

     

resize2fs 1.42.6 (21-Sep-2012)
Filesystem at /dev/sdb2 is mounted on /boot; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/sdb2 is now 498688 blocks long.

сделано!

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

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

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

lsof /boot

Удачи!

    
ответ дан user157258 09.05.2013 в 20:57
0

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

Couldn't find valid filesystem superblock.

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

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

    
ответ дан hendry 08.10.2013 в 02:55