Як змінити розмір / збільшити / виростити не-LVM-розділ ext4


20

Я вже шукав форуми, але не зміг знайти гарну відповідну відповідь:

У мене є сервер Ubuntu 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

Вихід розбитого друку все є

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 показав невеликий вільний простір нерозподіленого простору, потім розділ (позначений як "завантажувальний" та 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

Відповіді:


18

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

Я знаю, що "видалити розділ" звучить страшно, але він зовсім не змінює дані. Він просто змінює річ, на яку посилається контейнер. Поки ти НЕ БУДЕш mkfs.ext4добре.

Початкова точка вашого розділу повинна бути такою ж, як і раніше, або ОС не знатиме, як інтерпретувати те, що стоїть за нею. Тоді кінцева точка може бути далі, щоб зробити більшу перегородку.

Я думаю, що помилка в коментарі пов'язана з переміщенням початкової точки. Почати його потрібно в точно той же момент, що і було запущено. Кінцева точка може переміщатися.

Кредит psusi який запропонував FDISK замість cfdisk і підтверджуючи питання початкової точки.


Гаразд, я видалив розділ cfdisk і створив новий. Але я не міг його змінити розміром2fs і тоді вже не можу його встановити.
Mischa

resize2fs 1.41.11 (14 березня 2010 р.) resize2fs: Неправильне магічне число в суперблоці при спробі відкрити / dev / vdc1 Не вдалося знайти дійсний суперблок файлової системи.
Mischa

1
насправді, cfdisk показав невеликий вільний простір нерозподіленого простору, потім розділ (позначений як "завантажувальний" та Linux / ext3), а потім решту нерозподіленого простору. Після видалення розділу та його створення знову за допомогою cfdisk - cfdisk показує одну велику розділену область (що було б добре зі мною) і як файлову систему вводить лише "Linux".
Міша

8
Потрібно відтворити розділ так, щоб він починався в точно такому ж секторі, що і раніше. Ви не можете зробити це за допомогою cfdisk. Використовуйте fdisk або проділ та переведіть їх у секторний режим.
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 1049kB 12.9GB 12.9GB первинний тип = 83
2 12.9GB 13.0GB 107MB первинний тип ext4 = 83

(розлучено) rm 2

(розлучився) mkpart

Тип розділу? первинний / розширений? основний
тип файлової системи? [ext2]?
Почати? 12,9 Гб
кінець? 13,4 Гб

(розлучився) кинути

resize2fs / dev / sdb2

resize2fs 1.42.6 (21-Sep-2012)
Filesystem at / dev / sdb2 встановлено на / boot; необхідна он-лайн зміна розміру
old_desc_blocks = 1, new_desc_blocks = 2
Файлова система on / dev / sdb2 тепер становить 498688 блоків.

зроблено!

Усі дані залишаються на місці. / завантаження готове до використання та 472 Мб велике (розлука не настільки безпечна за розмірами, прочитайте інструкцію, щоб знати, чому)

Усі дані були резервні копії раніше, але лише в якості запобіжних заходів. Рекомендую зробити те саме.

Використовуйте наступну команду, щоб знайти процес, який зупиняє відключення / завантаження, якщо він не працює:

lsof / boot

Удачі!


2
Вам потрібно використовувати одиниці секторів, а не ГБ, щоб бути впевненим, що ви отримаєте його саме там.
psusi

0

Якщо ви спробуєте видалити та відтворити розділ, коли ваш розділ запустився нижче 2048 року, у вас можуть виникнути проблеми, як у мене resize2fs.

Couldn't find valid filesystem superblock.

З fdisk версії 2.17.2 fdisk IIUC змушує вас починати з 2048 року, щоб переконатися, що ваш жорсткий диск "правильно вирівняний". Тож якщо ваш оригінальний розділ розпочався до 2048 року, ви перебуваєте у невдалій їзді, намагаючись відтворити розділ.

Найкращим підходом є rsync під час клонування диска .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.