Як змінити розмір кореневого розділу LVM у Fedora без LiveCD чи перезавантаження


24

У мене є віртуальна машина, у якої нещодавно зображення диска збільшилось з 20 ГБ до 50 ГБ і fdisk -lпідтверджує, що ВМ може бачити цей новий розмір. Тепер мені потрібно змінити розмір мого кореневого розділу LVM, щоб заповнити додаткові 30 Гб.

Я знайшов кілька статей про зміну розміру LVM, але в кількох, що стосуються зміни розміру кореневого розділу, всі заявки, що вам потрібно завантажити з LiveCD. Чи можна це зробити, не знімаючи сервер? Сервер критично важливий, тому я хотів би мінімізувати час простою.

Редагувати: Вихід fdisk -l:

[root@fedora-host ~]# sudo fdisk -l

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00097c90

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    83886079    41430016   8e  Linux LVM

Disk /dev/mapper/VolGroup-lv_root: 36.1 GB, 36104568832 bytes
255 heads, 63 sectors/track, 4389 cylinders, total 70516736 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-lv_root doesn't contain a valid partition table

Disk /dev/mapper/VolGroup-lv_swap: 6308 MB, 6308233216 bytes
255 heads, 63 sectors/track, 766 cylinders, total 12320768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-lv_swap doesn't contain a valid partition table

Редагувати: Як змінити розмір фізичного розділу? fdisk може бачити вільний простір, але я не знаю, як змінити розмір основного розділу LVM, щоб використовувати його. Я спробував завантажитися в LiveCD і за допомогою resizeкоманди parted'd , але все, що мені дає, - це помилка "Неможливо виявити файлову систему". Я знайшов цей посібник , в якому сказано, що мені потрібно видалити розділ і створити новий з правильним розміром, але це звучить дуже небезпечно.

Остаточне редагування: resizeКоманда Parted дивно не в змозі змінити розмір LVM-розділів. Піди розберися. Натомість я просто видалив старий розділ і створив новий з новим діапазоном, як зазначено у посиланні вище, і який правильно змінив розмір розділу LVM. Потім я дотримувався наведених нижче порад щодо зміни томів та файлових систем всередині LVM-розділу.


Покажіть нам вихід fdisk - l. Ви змінили розмір розділу, а не лише гучність?
Zoredache

@Zoredache, я додав цей висновок до питання.
Серін

Відповіді:


33

Ви можете збільшити логічний обсяг в Інтернеті. Вам доведеться відключити його, щоб зменшити його (для чого потрібен режим LiveCD / Rescue.)

  1. pvresize /dev/sda2(припустимо, що ваш LVM-розділ є sda2. Замініть, як потрібно.)
  2. lvextend /dev/mapper/root -l+100%FREE (або, як би не називався ваш кореневий логічний том).
  3. resize2fs /dev/mapper/root (за умови, що ext2 / 3/4)

1
Я особисто віддаю перевагу lvextend -L [size][unit] /dev/group/volumeхоча б тому, що можу збільшити обсяг на 10 гігабайт, вказавши-L +10G
Hubert Kario

Так, але ОП запитав; Now I need to resize my root LVM partition to fill the extra 30GB.(Що означає збільшити логічний обсяг наявним вільним простором.)
Аарон Коплі

"Новий розмір (1076 розширень) відповідає існуючому розміру (1076
розширень

7
Я подумав, що цей трюк є акуратним: якщо ви додасте -rваріант lvextend, він зачепить, fsadmщоб змінити розмір FS. Це зробило б 3-й крок зайвим.
Джоді C

3
Зверніть увагу, що ця відповідь передбачає, що розділ вже розширений, щоб заповнити вільний простір, і лише логічні томи потрібно оновити. pvresize /dev/sda2Команда нічого не робить до розділу / DEV / sda2 не було змінено з розлучався або FDISK. Мені довелося змінити розмір шахти за допомогою fdisk, оскільки розділений на моїй системі не відображатиметься або не має команди зміни розміру. Змінення розміру Fdisk включає видалення та відтворення розділу.
Джейсон

2

Чи дійсно ваша система змінилася від 20 до 50 ГБ? Це здається дивним, оскільки ваш пристрій sda2 становить ~ 40 Гб, lv_root показує 36 ГБ, а своп - 6 ГБ.

Ваш вихід fdisk -lпоказує загальний обсяг секторів /dev/sdaІБ 104857600. Останній сектор, який використовується, /dev/sda2- це 83886079. Це говорить про те, що ви не коригували розмір розділу, щоб використовувати весь доступний простір на диску. Команда pvresize не змінює таблицю розділів. Спершу потрібно змінити таблицю розділів.


1

Встановити gparted. Запустити як root (використовуйте ssh -X або x2go, якщо віддалено). Виберіть розділ. Він повинен показувати вільний простір повз кінця (праворуч). Якщо цього немає, вам потрібно перезавантажити свою віртуальну машину, щоб побачити новий розмір віртуального пристрою. Це повинно бути мінімальним простоєм з системою.

Клацніть правою кнопкою миші та виберіть розмір. Перетягніть кінець до кінця диска. Слідкуйте, щоб ви не торкалися початку. gparted здатний перемістити розділ під час зміни розміру, але це, звичайно, зруйнує працюючу систему. Але перемістити кінець - це добре. Перегляньте операцію gparted, що очікує на розгляд, щоб переконатися, що ви розширюєте і не переміщуєте розділ. Клацніть Застосувати. gparted змінить розділ на диску, а потім видасть ioctl ядра, щоб перечитати таблицю розділів, змінивши також розмір пристрою живого блоку. Потім, оскільки він бачить, що це ПВ LVM, він працює для вас pvresize. Вихід gparted, і vgs тепер показує ваш новий простір.

Я чув чутки, що розлука може зробити все це без накладних графічних інтерфейсів, але я ніколи не зміг зрозуміти вуду. Розділений повинен бути одним з найгірших інтерфейсів CLI, який я коли-небудь намагався використовувати.

Не використовуйте fdisk, вам потрібно видалити та перерозподілити розділ для зміни розміру, і за замовчуванням він видалить підпис LVM2 під час запису. Я думаю, що я побачив "просунутий" варіант, щоб вимкнути цю руйнівну поведінку, але я ніколи її не перевіряв.

Ви також можете спробувати cfdisk (curs fdisk). Можливо, розмір розділу може бути корисним. Досить просто запустити pvresize вручну, і є команда сказати ядру перечитати таблицю розділів. Але мені доведеться перевірити, щоб він не стирав підпис LVM, як fdisk.


0

Якщо фізичний об'єм LVM знаходиться на розділі, то ні, ви не можете змінити його розмір без перезавантаження.

Ви можете редагувати таблицю розділів на диску, але Linux відмовиться використовувати її до перезавантаження.

Якщо ви використовуєте XFS, перейдіть resize2fsнаxfs_growfs .

Ви можете відображати фотографії, які використовуєте, та НН у групі гучності за допомогою pvsтаlvs .

PV на сирому диску

pvresize /dev/sda
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>

ПВ на перегородці

По- перше , ви повинні змінити розмір розділу, використання parted, fdiskабо аналогічний інструмент для цього. Пам'ятайте, що ці інструменти редагують лише опис, де є розділи, вони не переміщують дані. Іншими словами, ви легко можете розширити лише останній розділ на диску. Потім перезавантажте машину, після чого ви маєте змогу повідомити LVM, що в ній є додатковий простір:

pvresize /dev/sda2
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>

Використовуючи компакт-диск Gparted Live, sudo pvresize /dev/sda2повідомляє про "1 фізичний об'єм (-ів) змінено", але sudo lvextend /dev/mapper/VolGroup-lv_root -L +10Gне вдається з помилкою "недостатньо вільного місця: потрібно 320 розширень, але доступно лише 0". sudo fdisk -lповідомляє, що у мене 54G, а sudo pvdisplayзвіти лише 40G. Чому lvextend не вдається?
Серін

1
@Cerin, ти пропустив першу заяву Губертса про ПВ на розділі. Спочатку вам слід змінити розмір розділу, використовувати для цього розділений, fdisk або подібний інструмент .
Зоредаче

@Zoredache, Гаразд, це в основному все моє питання. Я не знаю, як це зробити. Я просто завантажився в Gparted LiveCD і спробував використовувати resizeкоманду parted для збільшення розміру основного розділу, але це дало мені помилку "Не вдалося виявити файлову систему". Як змінити розмір розділу за допомогою розділеного або fdisk?
Серін

@Cerin: шукайте SF або задайте інше питання
Hubert Kario

0

Я б подумав перевірити ssm (system-storage-manager), чи він доступний у вашому дистрибутиві.

Перевірте це для отримання додаткової інформації: /unix//a/293173

З'являється ssm, щоб полегшити розмір логічних томів без необхідності робити все самостійно.

Мені вдалося розширити свій домашній розділ за допомогою нього після перезавантаження ОС та входу в систему спочатку як root. (Доводилося перезавантажуватись загалом двічі, але воно працювало врешті-решт, і тепер у мене в розділі «моєму дому» є додаткові 50G.)


0

Поєднавши 25 хаутів, я нарешті маю це рішення. Тут не потрібен живий компакт-диск, він повністю летить.

Крок 1. відформатуйте розділ з проділом (без gui). У цьому прикладі максимальний розмір диска збільшився з 8 ГБ до 32 ГБ у віртуальній коробці.

    # parted
       ....
       Number   Begin   End     Size     Type     FileSystem       Flags
         1      1049kB  1075MB  1074MB   primary  ext4             boot
         2      1075MB  8590MB  7515MB   primary                   lvm
       ....
    (parted) mkpart primary ext2 8590 100%
       ....
       Number   Begin   End     Size     Type     FileSystem       Flags
         1      1049kB  1075MB  1074MB   primary  ext4             boot
         2      1075MB  8590MB  7515MB   primary                   lvm
         3      8590MB  34,4GB  25,8GB   primary  ext2             lba
       ....
    (parted) set 3 lvm on
    (parted) set 3 lba off
    (parted) print
       ....
         3      8590MB  34,4GB  25,8GB   primary  ext2             lvm
       ....
    (parted) quit

Крок 2. Створіть фізичний том на основі нового розділу

# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

Крок 3. Додайте фізичну гучність до групи гучності. На звичайному сервері fedora 28 встановлення групи томів називається Fedora.

# vgextend fedora /dev/sda3
  Volume group "fedora" successfully extended

Крок 4. Додайте наявний простір у групі томів до логічного тома. На звичайному сервері Fedora 28 встановлення логічного обсягу називається root.

# lvextend -l+100%FREE /dev/fedora/root
  Size of logical volume fedora/root changed from <6,20 GiB (1586 extents) to 30,19 GiB (7729 extents).
  Logical volume fedora/root successfully resized.

Крок 5. Скажіть файловій системі в логічному томі використовувати додатковий простір. У Fedora файлова система - xfs.

Увага! xfs_growfs використовує точку монтування для ідентифікації файлової системи, а не ім'я файлової системи, яку ви знайдете у df-виході !!!!!!!

Команда 'xfs_growfs / dev / mapper / fedora-root' скаже вам / dev / mapper / fedora-root не є змонтованою файловою системою XFS. Якщо ви використовуєте іншу файлову систему, зверніться до https://www.tldp.org/HOWTO/LVM-HOWTO/extendlv.html

# xfs_growfs /
    data blocks changed from 1624064 to 7914496

Крок 6. Насолоджуйтесь

# df
FileSystem               1K-blocks      Used   Available used% Mounted on
....
/dev/mapper/fedora-root   31647744   6492840    25154904  21% /
/dev/sda1                   999320    125576      804932  14% /boot
....

-1

Спробуйте testdisk

sudo dnf встановити testdisk

sudo testdisk

Просто встановіть створити файл журналу. Потім він перелічить розділи, - виберіть медіа / розділ - потім наберіть - та проаналізуйте - швидкий пошук - виберіть та запишіть

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