Як я розширюю розділ з LVM та вмістом фізичного та логічного томів, що містяться?


33

На моєму SSD з 240 ГБ у мене були перші два розділи, один з яких містив логічний том з Linux Mint, а другий містив розділ NTFS для спільного використання з Windows. Тепер я видалив розділ NTFS і хочу розширити свою логічну групу томів для використання звільненого дискового простору.

Як я розширюю групу томів , мій логічний том, що містить / home та файлову систему (ext4) у / home? Чи можливо це зробити в Інтернеті?

PS: Так, я знаю, що мені потрібно створити резервну копію даних :)

/dev/sdb/  (240GB)
    linuxvg  (160GB) should use 100% of the disk space
        swap
        root
        home (ext4, 128GB) should be extended to use the remaining space

вихід sudo vgdisplay:

  --- Volume group ---
  VG Name               linuxvg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               160,00 GiB
  PE Size               4,00 MiB
  Total PE              40959
  Alloc PE / Size       40959 / 160,00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               ...

  --- Logical volume ---
  LV Path                /dev/linuxvg/swap
  LV Name                swap
  VG Name                linuxvg
  LV UUID                ...
  LV Write Access        read/write
  LV Creation host, time mint, 2013-08-06 22:48:32 +0200
  LV Status              available
  # open                 2
  LV Size                8,00 GiB
  Current LE             2048
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

  --- Logical volume ---
  LV Path                /dev/linuxvg/root
  LV Name                root
  VG Name                linuxvg
  LV UUID                ...
  LV Write Access        read/write
  LV Creation host, time mint, 2013-08-06 22:48:43 +0200
  LV Status              available
  # open                 1
  LV Size                24,00 GiB
  Current LE             6144
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

  --- Logical volume ---
  LV Path                /dev/linuxvg/home
  LV Name                home
  VG Name                linuxvg
  LV UUID                ...
  LV Write Access        read/write
  LV Creation host, time mint, 2013-08-06 22:48:57 +0200
  LV Status              available
  # open                 1
  LV Size                128,00 GiB
  Current LE             32767
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:2

  --- Physical volumes ---
  PV Name               /dev/sdb1     
  PV UUID               ...
  PV Status             allocatable
  Total PE / Free PE    40959 / 0

вихід sudo fdisk -l:

Disk /dev/sdb: 240.1 GB, 240057409536 bytes
255 heads, 63 sectors/track, 29185 cylinders, total 468862128 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

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1   468862127   234431063+  ee  GPT

Disk /dev/mapper/linuxvg-swap: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 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/linuxvg-root: 25.8 GB, 25769803776 bytes
255 heads, 63 sectors/track, 3133 cylinders, total 50331648 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/linuxvg-home: 137.4 GB, 137434759168 bytes
255 heads, 63 sectors/track, 16708 cylinders, total 268427264 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

2
Ну, найпростішим способом було б просто pvcreate розділ NTFS і використовувати його vgextend, а не видаляти розділ повністю. Якщо ви робите існуючий розділ PV замість цього, вам, ймовірно, доведеться перезавантажити, оскільки Linux відмовляється перечитувати таблицю розділів, поки диск використовується. Робота над цим Інтернетом незручна. - Будь ласка, покажіть свою поточну таблицю розділів.
frostschutz

Я можу перезавантажитись за потреби.
klingt.net

Відповіді:


44

Зробити це можна досить просто. Ніби не здивований, що тут вже не було відповіді на це.

Ви можете виконати весь цей процес під час роботи у файловій системі, яку ви хочете змінити для зміни розміру (так, це безпечно і повністю підтримується). Немає потреби в рятувальних компакт-дисках або альтернативних операційних системах.

  1. Змініть розмір розділу (знову ж, це можна зробити під час роботи системи). GParted простий у використанні та підтримує зміну розміру.
    Ви також можете використовувати інструмент нижчого рівня, наприклад fdisk. Але вам доведеться видалити розділ і відтворити його. Просто переконайтесь, що робити це так, щоб новий розділ починався в тому самому місці.
  2. Перезавантажте. Оскільки таблиця розділів була змінена в запущеній системі, вона не набере чинності до перезавантаження.
  3. Запустіть, pvresize /dev/sdXYщоб LVM забрала новий простір.
  4. Змініть розмір логічного обсягу за допомогою lvextend. Якщо ви хочете використовувати все це, lvextend -r -l +100%FREE /dev/VGNAME/LVNAME. Також -rбуде змінено розмір файлової системи.
    Хоча я завжди рекомендую не використовувати всю групу гучності. Ви ніколи не знаєте, що вам знадобиться в майбутньому. Ви завжди можете розширюватися пізніше, ви не можете скорочуватися.

3
Я хотів би прийняти вашу відповідь, але я не працював так, як ви запропонували, оскільки GParted не може змінити розмір кореневого розділу в запущеній системі (принаймні в моєму випадку).
klingt.net

@HalosGhost Я відмінив вашу зміну. partprobe -sне робить те, що ви думаєте, що робить. Ядро не набере розмір розділу, який використовується. partprobe -sпрацює лише в тому випадку, якщо розділ використовувався під час зміни розміру (тому коли fdisk сповістив ядро, воно не вдалося), але його більше немає.
Патрік

@Patrick, я не додав ідеї для цього; Я "поліпшив" редагування, поставивши команду в задній план (війна за код уникає зарплати!).
HalosGhost

О, вибачте, прочитайте назву з неправильної події історії. @Qetesh, який стосується вас тоді :-)
Патрік

1
Можна взагалі не перезавантажувати, використовуючи "partx -u" для кроку 2, щоб сказати ядру, щоб оновити розмір розділу: працює навіть на активних розділах і може бути перевірений, перевіривши /sys/.../sdXY/size до і після.
AB

11

Жодна з відповідей не викликає справедливості щодо сили ЛВМ.

(Це засновано на коментарі @frostchutz до вищезазначеного питання.)

Розберемо факти:

  • OP має два розділи, sdb1 і sdb2 - це фізичний об'єм для LVM.
  • sdb1 - це ntfs зараз, нам потрібно надати цьому простору homeлогічний об'єм всередині linuxvgгрупи томів.

Кроки LVM, використовуючи "прагматичний шлях":

  • створити фізичний об'єм на sdb1: pvcreate /dev/sdb1
  • додати sdb1 до linuxvg:vgextend linuxvg /dev/sdb1
  • розширити логічний об'єм homeна весь вільний простір:lvextend -l +100%FREE /dev/linuxvg/home
  • продовжити ext4 fs: resize2f /dev/linuxvg/home

LVM дозволяє отримати великий рівень непрямості. Логічний том знаходиться у групі томів, яка може використовувати декілька дисків.

home -> linuxvg -> (sdb1, sdb2, sdc1)

http://tldp.org/HOWTO/LVM-HOWTO/createvgs.html


10

Питання було вирішено, прочитавши цю публікацію в блозі. Я напишу рішення у стислому вигляді:

  • завантаження з живого CD з
  • використання gdisk(якщо ви використовуєте GPT) інакше ви можете піти зі старим добримfdisk
  • відзначте ваші налаштування розділів, в моєму випадку gdisk -l /dev/sdb
  • видаліть свій розділ за допомогою
  • створити новий розділ з точно таким же вирівнюванням, що і попередній (у моєму прикладі, починаючи з блоку 2048)
  • написати нову таблицю розділів
  • запустіть partprobe -sдля оновлення таблиці розділів без перезавантаження
  • змінити розмір фізичного об'єму за допомогою pvresize /dev/sdb1або, де знаходиться ваш відеоканал (використовуйте pvsдля визначення, якщо ви не знаєте)
  • тепер змінити розмір вашого логічного обсягу lvextend -l +100%FREE /dev/file/of/your/lv, в моєму випадкуsudo lvextend -l +100%FREE /dev/linuxvg/home
  • змінити розмір файлової системи sudo resize2fs /dev/linuxvg/home
  • спочатку перевірте консистенцію sudo e2fsck -f /dev/linuxvg/home
  • насолоджуйтесь :)

Насправді ви можете вирізати приблизно половину цих кроків і зробити це лише 1 перезавантаження.
Патрік

GParted відмовився змінити розмір розділу, оскільки він був заблокований (цей ключовий символ).
klingt.net

4

Деякі чудові відповіді вже.

Якщо ви використовуєте xfs, то ви використовуєте команду

xfs_growfs /mountpoint

а не resize2fs. Це можна зробити, поки активна точка монтажу активна, наприклад, якщо ви виробили кореневий розділ, і вам не потрібно перезавантажувати після.

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