Bagaimana cara memperpanjang partisi dengan LVM dan volume fisik dan volume logis yang terkandung?

33

Pada 240 GB SSD saya, saya memiliki dua partisi pertama, satu berisi Logical Volume dengan Linux Mint dan yang lainnya berisi partisi NTFS untuk dibagikan dengan Windows. Sekarang saya menghapus partisi NTFS dan ingin memperluas grup volume logis saya untuk menggunakan ruang disk yang dirilis.

Bagaimana cara memperpanjang grup volume , volume logis saya yang berisi / home dan filesystem (ext4) di / home? Apakah ini mungkin dilakukan secara online?

PS: Ya, saya tahu harus mencadangkan data saya :)

/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

output dari 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

output dari 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
sumber
2
Nah, cara mudahnya adalah dengan hanya membuat partisi NTFS dan menggunakan vgextend, daripada menghapus partisi sepenuhnya. Jika Anda menumbuhkan partisi PV yang ada sebagai gantinya Anda mungkin harus reboot, karena Linux menolak untuk membaca kembali tabel partisi saat disk sedang digunakan. Mengatasi masalah online ini terasa canggung. - Tolong tunjukkan tabel partisi Anda saat ini.
frostschutz
Saya bisa reboot jika perlu.
klingt.net

Jawaban:

44

Anda dapat melakukan ini dengan cukup sederhana. Agak kaget tidak ada jawaban untuk ini di sini.

Anda dapat melakukan seluruh proses ini saat menjalankan sistem file yang ingin Anda ubah ukurannya (ya, aman dan didukung penuh). Tidak perlu CD penyelamatan atau sistem operasi alternatif.

  1. Ubah ukuran partisi (sekali lagi, Anda dapat melakukan ini dengan sistem berjalan). GParted mudah digunakan dan mendukung pengubahan ukuran.
    Anda juga dapat menggunakan alat level bawah seperti fdisk. Tetapi Anda harus menghapus partisi dan membuatnya kembali. Pastikan saat melakukannya agar partisi baru dimulai di lokasi yang sama persis.
  2. Mulai ulang. Karena tabel partisi telah dimodifikasi pada sistem yang berjalan, itu tidak akan berlaku sampai reboot.
  3. Jalankan pvresize /dev/sdXYagar LVM mengambil ruang baru.
  4. Ubah ukuran volume logis dengan lvextend. Jika Anda ingin menggunakan semuanya lvextend -r -l +100%FREE /dev/VGNAME/LVNAME,. The -rakan mengubah ukuran filesystem juga.
    Meskipun saya selalu merekomendasikan untuk tidak menggunakan seluruh grup volume. Anda tidak pernah tahu apa yang akan Anda butuhkan di masa depan. Anda selalu dapat berkembang nanti, Anda tidak dapat menyusut.
Patrick
sumber
3
Saya ingin menerima jawaban Anda, tetapi saya tidak bekerja seperti yang Anda sarankan, karena GParted tidak dapat mengubah ukuran partisi root pada sistem yang sedang berjalan (setidaknya dalam kasus saya).
klingt.net
@HalosGhost Saya mengembalikan suntingan Anda. partprobe -stidak melakukan apa yang Anda pikirkan. Kernel tidak akan mengambil ukuran partisi yang sedang digunakan. partprobe -shanya berfungsi jika partisi sedang digunakan selama resize (jadi ketika fdisk memberitahukan kernel gagal), tetapi tidak lagi.
Patrick
@ Patrick, saya tidak menambahkan ide untuk itu; Saya "memperbaiki" hasil edit dengan menempatkan perintah di backticks (perang untuk kode lolos upah!).
HalosGhost
Oh, maaf, bacakan namanya dari acara sejarah yang salah. @Tetapi itu berlaku untuk Anda kalau begitu :-)
Patrick
1
Dimungkinkan untuk tidak reboot sama sekali menggunakan "partx -u" untuk langkah 2, untuk memberitahu kernel untuk memperbarui ukuran partisi: bekerja bahkan pada partisi aktif dan dapat diverifikasi dengan memeriksa /sys/.../sdXY/size sebelum dan setelah.
AB
11

Tidak ada jawaban yang membuat keadilan bagi kekuatan LVM.

(Ini berdasarkan pada komentar @frostchutz untuk pertanyaan di atas.)

Mari kita dapatkan faktanya:

  • OP memiliki dua partisi, sdb1 dan sdb2 adalah volume fisik untuk LVM.
  • sdb1 adalah ntfs sekarang, kita perlu memberikan ruang itu ke homevolume logis di dalam linuxvggrup volume.

Langkah LVM menggunakan "cara pragmatis":

  • buat volume fisik di sdb1: pvcreate /dev/sdb1
  • tambahkan sdb1 ke linuxvg:vgextend linuxvg /dev/sdb1
  • memperluas volume logis homedengan semua ruang kosong:lvextend -l +100%FREE /dev/linuxvg/home
  • memperpanjang ext4 fs: resize2f /dev/linuxvg/home

LVM memungkinkan tingkat tipuan besar. Volume logis ada di dalam grup volume, yang bisa menggunakan beberapa disk.

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

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

MGP
sumber
10

Pertanyaannya terpecahkan, setelah membaca posting blog ini . Saya akan menulis solusinya dalam bentuk singkat:

  • boot dari live cd dengan
  • gunakan gdisk(jika Anda menggunakan GPT) kalau tidak Anda bisa pergi dengan yang lama yang baikfdisk
  • perhatikan pengaturan partisi Anda, dalam kasus saya gdisk -l /dev/sdb
  • hapus partisi Anda dengan
  • buat partisi baru dengan perataan yang sama persis seperti yang sebelumnya (dalam contoh saya mulai di blok 2048)
  • tulis tabel partisi baru Anda
  • jalankan partprobe -suntuk menyegarkan tabel partisi tanpa reboot
  • ubah ukuran volume fisik Anda dengan pvresize /dev/sdb1atau di mana pun pv Anda (gunakan pvsuntuk menentukan apakah Anda tidak tahu)
  • sekarang ubah ukuran volume logis Anda dengan lvextend -l +100%FREE /dev/file/of/your/lv, dalam kasus sayasudo lvextend -l +100%FREE /dev/linuxvg/home
  • mengubah ukuran sistem file sudo resize2fs /dev/linuxvg/home
  • periksa dulu konsistensi sudo e2fsck -f /dev/linuxvg/home
  • Nikmati :)
klingt.net
sumber
Sebenarnya Anda dapat memotong sekitar setengah langkah tersebut dan melakukannya hanya dengan 1 reboot.
Patrick
GParted menolak untuk mengubah ukuran partisi, karena terkunci (simbol kunci ini).
klingt.net
4

Beberapa jawaban bagus sudah.

Jika Anda menggunakan xfs, maka Anda menggunakan perintah

xfs_growfs /mountpoint

daripada resize2fs. Anda dapat melakukannya saat mountpoint itu aktif, seperti jika Anda telah menumbuhkan partisi root, dan Anda tidak perlu mem-boot ulang setelah itu.

Paul M.
sumber