Как расширить раздел с помощью LVM, физического и логического томов?

33

На моем 240 ГБ SSD у меня было два первых раздела, один из которых содержал логический том с 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
klingt.net
источник
2
Что ж, проще всего было бы просто создать раздел NTFS и использовать его vgextendвместо полного удаления раздела. Если вместо этого вы увеличиваете существующий раздел PV, вам, вероятно, придется перезагрузиться, поскольку Linux отказывается перечитывать таблицу разделов, пока диск используется. Работать вокруг этого онлайн неудобно. - Пожалуйста, покажите вашу текущую таблицу разделов.
frostschutz
Я могу перезагрузить при необходимости.
klingt.net

Ответы:

45

Вы можете сделать это довольно просто. Кинда удивилась, что здесь уже не было ответа.

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

  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 уведомил ядро ​​о сбое), но больше нет.
Патрик
@ Патрик, я не добавил идею для этого; Я «улучшил» редактирование, поместив команду в кавычки (война за код ускользает от заработной платы!).
HalosGhost
О, извините, прочитайте название с неправильной историей события. @Qetesh, который относится к вам тогда :-)
Патрик
1
Можно вообще не перезагружаться, используя "partx -u" для шага 2, чтобы сообщить ядру обновить размер раздела: работает даже на активных разделах и может быть проверено, проверяя /sys/.../sdXY/size перед и после.
AB
11

Ни один из ответов не отдает должное силе LVM.

(Это основано на комментарии @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

MGP
источник
10

Вопрос был решен, прочитав этот пост в блоге. Я напишу решение в краткой форме:

  • загрузиться с живого CD с
  • использовать gdisk(если вы используете GPT) в противном случае вы могли бы пойти со старым добрымfdisk
  • обратите внимание на настройки вашего раздела, в моем случае gdisk -l /dev/sdb
  • удалите раздел с помощью
  • создать новый раздел с тем же выравниванием, что и предыдущий (в моем примере, начиная с блока 2048)
  • напишите новую таблицу разделов
  • запустить, partprobe -sчтобы обновить таблицу разделов без перезагрузки
  • изменить размер физического тома с pvresize /dev/sdb1или где ваш PV (используйте, 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
  • наслаждаться :)
klingt.net
источник
На самом деле вы можете вырезать примерно половину этих шагов и сделать это только с 1 перезагрузкой.
Патрик
GParted отказался изменить размер раздела, потому что он был заблокирован (этот символ ключа).
klingt.net
4

Некоторые отличные ответы уже.

Если вы используете XFS, то вы используете команду

xfs_growfs /mountpoint

а не resize2fs. Вы можете сделать это, пока активна точка монтирования, например, если вы увеличили корневой раздел и вам не нужно перезагружаться после.

Пол М
источник