Cara mengubah ukuran partisi root LVM di Fedora tanpa LiveCD atau Rebooting


24

Saya memiliki mesin virtual yang baru-baru ini disk image-nya meningkat dari 20GB menjadi 50GB, dan fdisk -lmemverifikasi bahwa VM dapat melihat ukuran baru ini. Sekarang saya perlu mengubah ukuran partisi LVM root saya untuk mengisi 30GB tambahan.

Saya telah menemukan beberapa artikel tentang mengubah ukuran LVM, tetapi beberapa yang membahas mengubah ukuran partisi root semua mengklaim Anda perlu boot dari LiveCD. Apakah ada cara untuk melakukan ini tanpa mencatat server? Server sangat penting, jadi saya ingin meminimalkan waktu henti.

Edit: Output dari 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

Sunting: Bagaimana cara mengubah ukuran partisi fisik? fdisk dapat melihat ruang kosong, tetapi saya tidak tahu cara mengubah ukuran partisi LVM primer untuk menggunakannya. Saya mencoba mem-boot ke LiveCD dan menggunakan resizeperintah parted'd , tetapi semua itu memberi saya kesalahan "Tidak dapat mendeteksi sistem file". Saya menemukan panduan ini , yang mengatakan saya perlu menghapus partisi dan membuat yang baru dengan ukuran yang benar, tetapi kedengarannya sangat berbahaya.

Edit Terakhir: resizePerintah Parted anehnya tidak dapat mengubah ukuran partisi LVM. Sosok pergi. Sebagai gantinya, saya hanya menghapus partisi lama dan membuat yang baru dengan rentang baru, seperti yang dijelaskan dalam tautan di atas, dan yang mengubah ukuran partisi LVM dengan benar. Saya kemudian mengikuti saran di bawah ini untuk mengubah ukuran volume dan sistem file di dalam partisi LVM.


Tunjukkan kami keluaran fdisk - l. Anda mengubah ukuran partisi dan bukan hanya volumenya, bukan?
Zoredache

@Zoredache, saya menambahkan output ke pertanyaan.
Cerin

Jawaban:


33

Anda dapat mengembangkan volume logis secara online. Anda harus meng-unmount untuk mengecilkannya (yang memerlukan LiveCD / Mode Penyelamatan.)

  1. pvresize /dev/sda2(dengan asumsi partisi LVM Anda sda2. Ganti sesuai kebutuhan.)
  2. lvextend /dev/mapper/root -l+100%FREE (atau, apa pun volume root root Anda disebut.)
  3. resize2fs /dev/mapper/root (dengan asumsi ext2 / 3/4)

1
Saya pribadi lebih suka lvextend -L [size][unit] /dev/group/volume, jika hanya karena saya dapat memperluas volume hingga 10 gigabytes dengan menentukan-L +10G
Hubert Kario

Ya, tapi OP bertanya; Now I need to resize my root LVM partition to fill the extra 30GB.(Yaitu untuk menumbuhkan volume logis dengan ruang kosong yang tersedia.)
Aaron Copley

"Ukuran baru (1076 extents) cocok dengan ukuran yang ada (1076 extents)"
Cerin

7
Saya pikir trik ini rapi: Jika Anda menambahkan -ropsi lvextend, itu akan menghubungkan fsadmuntuk mengubah ukuran FS. Ini akan membuat langkah ke-3 mubazir.
Jodie C

3
Catatan jawaban ini mengasumsikan partisi telah diperluas untuk mengisi ruang kosong dan hanya volume logis perlu diperbarui. The pvresize /dev/sda2perintah tidak apa-apa sampai partisi / dev / sda2 telah diubah ukurannya dengan berpisah atau fdisk. Saya harus mengubah ukuran tambang dengan fdisk karena parted di sistem saya tidak akan menunjukkan atau tidak memiliki perintah mengubah ukuran. Mengubah ukuran Fdisk melibatkan menghapus dan membuat ulang partisi.
Jason

2

Apakah sistem Anda benar-benar berubah dari 20 menjadi 50 GB? Itu tampak sangat aneh karena perangkat sda2 Anda ~ 40GB, lv_root menunjukkan 36GB, dan swap menunjukkan 6GB.

Output Anda fdisk -lmenunjukkan total sektor /dev/sdais 104857600. Sektor terakhir yang digunakan oleh /dev/sda2adalah 83886079. Ini memberitahu saya bahwa Anda belum menyesuaikan ukuran partisi untuk menggunakan semua ruang yang tersedia di drive. Perintah pvresize tidak mengubah tabel partisi. Anda harus mengubah tabel partisi terlebih dahulu.


1

Instal gparted. Jalankan sebagai root (gunakan ssh -X atau x2go jika remote). Pilih partisi. Ini harus menunjukkan ruang kosong melewati ujung (ke kanan). Jika tidak, Anda harus melakukan reboot untuk mesin virtual Anda untuk melihat ukuran baru dari perangkat virtual. Itu harus minimal downtime dengan systemd.

Klik kanan dan pilih ukuran. Seret ujung ke ujung disk. Pastikan Anda tidak menyentuh bagian awal. gparted dapat memindahkan partisi saat mengubah ukuran, tetapi itu tentu saja akan menghancurkan sistem yang sedang berjalan. Tapi menggerakkan ujungnya baik-baik saja. Tinjau operasi yang tertunda yang akan dilakukan gparted untuk memastikan Anda memperpanjang dan tidak memindahkan partisi. Klik berlaku. gparted akan mengubah partisi pada disk, kemudian mengeluarkan kernel ioctl untuk membaca ulang tabel partisi, mengubah ukuran perangkat blok hidup juga. Kemudian, karena melihat itu adalah LVM PV, ia menjalankan pvresize untuk Anda. Keluar gparted, dan vgs sekarang menunjukkan ruang baru Anda.

Saya pernah mendengar desas-desus bahwa berpisah dapat melakukan semua itu tanpa overhead dari GUI, tetapi saya tidak pernah bisa mengetahui voodoo. Parted harus menjadi salah satu antarmuka CLI terburuk yang pernah saya coba gunakan.

Jangan gunakan fdisk, Anda harus menghapus dan merealokasi partisi untuk mengubah ukuran, dan secara default itu akan menghapus tanda tangan LVM2 saat menulis. Saya pikir saya melihat opsi "lanjutan" untuk mematikan perilaku merusak itu, tetapi saya belum pernah mengujinya.

Anda juga dapat mencoba cfdisk (kutukan fdisk). Itu mungkin memiliki ukuran partisi yang dapat digunakan. Cukup mudah untuk menjalankan pvresize secara manual, dan ada perintah untuk memberitahu kernel untuk membaca ulang tabel partisi. Tapi saya harus menguji untuk memastikan itu tidak menghapus tanda tangan LVM seperti fdisk.


0

Jika volume fisik LVM ada di partisi, tidak, Anda tidak dapat mengubah ukurannya tanpa me-reboot.

Anda dapat mengedit tabel partisi pada drive, tetapi Linux akan menolak untuk menggunakannya sampai Anda me-reboot.

Jika Anda menggunakan XFS, alihkan resize2fske xfs_growfs.

Anda dapat menampilkan PV yang Anda gunakan dan LV dalam grup volume menggunakan pvsdan lvs.

PV pada disk mentah

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

PV pada partisi

Pertama, Anda harus mengubah ukuran partisi, menggunakan parted, fdiskatau alat serupa untuk itu. Ingat bahwa alat-alat itu hanya mengedit deskripsi di mana partisi berada, mereka tidak memindahkan data. Dengan kata lain, dengan mudah Anda hanya dapat memperpanjang partisi terakhir pada disk. Kemudian reboot mesin Anda dan setelah itu Anda dapat memberi tahu LVM bahwa ia memiliki ruang tambahan yang tersedia:

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

Menggunakan Live CD Gparted, sudo pvresize /dev/sda2melaporkan "1 volume fisik diubah ukurannya", tetapi sudo lvextend /dev/mapper/VolGroup-lv_root -L +10Ggagal dengan kesalahan "ruang kosong tidak cukup: 320 diperlukan, tetapi hanya 0 tersedia". sudo fdisk -llaporan bahwa saya memiliki 54G tersedia, sedangkan sudo pvdisplaylaporan hanya 40G sedang digunakan. Mengapa lvextend gagal?
Cerin

1
@ Cerin, Anda melewatkan pernyataan pertama Huberts untuk PV di partisi. Pertama, Anda harus mengubah ukuran partisi, gunakan parted, fdisk atau alat serupa untuk itu .
Zoredache

@Zoredache, Ok, well, itu pada dasarnya seluruh pertanyaan saya. Saya tidak tahu bagaimana melakukannya. Saya baru saja boot ke LiveCD Gparted dan mencoba menggunakan resizeperintah parted untuk meningkatkan ukuran partisi primer, tetapi itu memberi saya kesalahan "Tidak dapat mendeteksi sistem file". Bagaimana Anda mengubah ukuran partisi menggunakan parted atau fdisk?
Cerin

@Cerin: cari SF atau ajukan pertanyaan lain
Hubert Kario

0

Saya akan mempertimbangkan memeriksa ssm (system-storage-manager) jika tersedia di distro Anda.

Lihat ini untuk info lebih lanjut: /unix//a/293173

ssm tampaknya memudahkan untuk mengubah ukuran volume logis tanpa harus melakukan semuanya sendiri.

Saya dapat menggunakan untuk memperpanjang partisi rumah saya dengan itu setelah me-reboot OS saya dan masuk terlebih dahulu sebagai root. (Harus me-reboot total dua kali, tetapi pada akhirnya berhasil dan saya sekarang memiliki tambahan 50G yang tersedia di partisi saya / home.)


0

Setelah menggabungkan 25 howto, saya akhirnya memiliki solusi ini. Tidak memerlukan live cd, itu sepenuhnya on the fly.

Langkah 1. memformat partisi dengan parted (no gui). Dalam contoh ini ukuran maksimum disk meningkat dari 8BG menjadi 32 GB dalam kotak virtual.

    # 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

Langkah 2. Buat Volume Fisik berdasarkan partisi baru

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

Langkah 3. Tambahkan volume fisik ke Grup Volume. Di server fedora 28 yang sederhana instal grup volume disebut fedora.

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

Langkah 4. Tambahkan ruang yang tersedia di grup volume ke volume logis. Dalam menginstal server fedora 28 polos volume logis disebut 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.

Langkah 5. Beri tahu filesystem dalam volume logis untuk menggunakan ruang ekstra. Dalam fedora sistem file adalah xfs.

Perhatian! xfs_growfs menggunakan mount point untuk mengidentifikasi filesystem, bukan nama filesystem yang Anda temukan dalam output df !!!!!!!

Perintah 'xfs_growfs / dev / mapper / fedora-root' akan memberi tahu Anda / dev / mapper / fedora-root bukan sistem file XFS yang terpasang. Jika Anda menggunakan sistem file yang berbeda, lihat https://www.tldp.org/HOWTO/LVM-HOWTO/extendlv.html

# xfs_growfs /
    data blocks changed from 1624064 to 7914496

Langkah 6. Nikmati

# 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

Coba testdisk

sudo dnf instal testdisk

sudo testdisk

Cukup atur membuat file log Kemudian akan mencantumkan partisi, - pilih media / partisi - lalu ketik - dan analisis - pencarian cepat - pilih dan tulis

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.