Centos 7 Perpanjang partisi dengan ruang yang tidak terisi


14

Saya memiliki server centos 7 (CentOS Linux release 7.3.1611 (Core))Ketika saya memperbarui server saya, saya melihat kesalahan, Anda memerlukan ruang tambahan. Tapi saya punya 20GB disk di server ketika saya memeriksa ruang disk saya melihat hanya 4,5GB partisi yang dibuat dan 16GB adalah ruang bebas tidak ada alokasi. Bagaimana saya bisa memperpanjang partisi dari 16GB ruang kosong?

lsblk:

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0               2:0    1    4K  0 disk
sda               8:0    0   20G  0 disk
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0  4.5G  0 part
  ├─centos-root 253:0    0    4G  0 lvm  /
  └─centos-swap 253:1    0  512M  0 lvm  [SWAP]
sr0              11:0    1 1024M  0 rom

masukkan deskripsi gambar di sini


Jawaban:


20

Ada tiga langkah yang harus dilakukan:

  1. ubah tabel partisi Anda sehingga sda2berakhir di ujung disk
  2. baca kembali tabel partisi (akan membutuhkan reboot)
  3. ubah ukuran LVM pv Anda menggunakan pvresize

Langkah 1 - Tabel partisi

Lari fdisk /dev/sda. Masalah puntuk mencetak tabel partisi Anda saat ini dan menyalin output itu ke tempat yang aman. Sekarang masalah ddiikuti oleh 2untuk menghapus partisi kedua. Masalah nuntuk membuat partisi kedua yang baru. Pastikan awal sama dengan awal tabel partisi yang Anda cetak sebelumnya. Pastikan ujungnya ada di ujung disk (biasanya default).

Masalah tdiikuti oleh 2diikuti oleh 8euntuk beralih jenis partisi dari partisi kedua baru Anda ke 8e (Linux LVM).

Masalah puntuk meninjau tata letak partisi baru Anda dan pastikan awal partisi kedua yang baru persis di tempat partisi kedua yang lama.

Jika semuanya terlihat benar, terbitkan wuntuk menulis tabel partisi ke disk. Anda akan mendapatkan pesan kesalahan dari partprobe bahwa tabel partisi tidak dapat dibaca ulang (karena disk sedang digunakan).

Mulai ulang sistem Anda

Langkah ini perlu agar tabel partisi dibaca ulang.

Ubah ukuran LVM PV

Setelah sistem Anda reboot memohon pvresize /dev/sda2. Volume LVM Fisik Anda sekarang akan menjangkau sisa drive dan Anda dapat membuat atau memperluas volume logis ke ruang itu.


solusi hebat, ini bekerja dengan sempurna. masih hanya bagian cara memperluas volume logis.
Mimouni

Jawaban yang sangat bagus ini berhenti tepat di garis akhir! Saya menemukan cara untuk menyelesaikannya. Contoh yang dibagikan dalam pertanyaan menunjukkan dua volume logis di bawahnya sda2: centos-rootdan centos-swap. Dalam hal ini, grup volume adalah centosdan dua volume logis di dalam grup itu adalah rootdan swap. Jika kami ingin memperluas centos-rootvolume dalam contoh ini dengan 50% dari ruang yang tersedia di sda2partisi baru kami, kami akan menggunakan lvextend -r -l +50%FREE /dev/centos/root. The -rmengubah ukuran sistem file yang mendasari untuk mencocokkan volume logis diperpanjang.
Shadoninja

@ Sharoninja yang berada di luar ruang lingkup pertanyaan aslinya. Jadi saya tidak menambahkannya dan tidak akan menambahkannya ke pertanyaan ini di masa depan.
Andreas Rogge

@AndreasRogge Saya berpendapat bahwa sepenuhnya berada dalam ruang lingkup pertanyaan ini karena terminologi di ruang ini dapat membingungkan dan mudah untuk diartikan. Layak memposting ringkasan lengkap tentang cara mendapatkan ruang disk yang tidak terisi yang dapat digunakan oleh sistem file karena itu akan menjadi alasan yang sangat umum bagi orang untuk menemukan pertanyaan ini.
Shadoninja

13

Anda dapat melakukan ini tanpa me-reboot di CentOS 7. Dengan asumsi disk Anda adalah / dev / vda dan partisi RHEL / CentOS standar:

Perpanjang partisi

# fdisk /dev/vda

Masukkan puntuk mencetak tabel partisi awal Anda.

Masukkan d(hapus) diikuti oleh 2untuk menghapus definisi partisi yang ada (partisi 1 biasanya / boot dan partisi 2 biasanya partisi root).

Masukkan n(baru) diikuti oleh p(primer) diikuti oleh 2untuk membuat kembali partisi nomor 2 dan enteruntuk menerima blok mulai dan enterlagi untuk menerima blok akhir yang secara default ke akhir disk.

Masukkan t(jenis) maka 2kemudian 8emengubah jenis partisi baru untuk "Linux LVM".

Masukkan puntuk mencetak tabel partisi baru Anda dan pastikan blok awal cocok dengan apa yang ada di tabel partisi awal yang dicetak di atas.

Masukkan wuntuk menulis tabel partisi ke disk. Anda akan melihat kesalahan Device or resource busyyang bisa Anda abaikan.

Perbarui tabel partisi dalam-memori kernel

Setelah mengubah tabel partisi Anda, jalankan perintah berikut untuk memperbarui tabel partisi di-memori kernel:

# partx -u /dev/vda

Ubah ukuran volume fisik

Ubah ukuran PV untuk mengenali ruang ekstra

# pvresize /dev/vda2

Ubah ukuran LV dan sistem file

Dalam perintah ini centosadalah PV, rootadalah LV dan /dev/vda2merupakan partisi yang diperluas. Gunakan pvsdan lvsperintah untuk melihat nama volume fisik dan logis Anda jika Anda tidak mengetahuinya. The -rpilihan dalam perintah ini mengubah ukuran filesystem tepat sehingga Anda tidak harus memanggil resize2fsatau xfs_growfssecara terpisah.

# lvextend -r centos/root /dev/vda2

Jawaban yang lebih rumit daripada "jawaban yang dipilih" satu!
Furkat U.

Ini brilian. Terima kasih! Ini harus menjadi jawaban yang diterima. Saya melewatkan langkah terakhir untuk mengubah ukuran sistem file dan lv!
Skinner927

4

Bagi mereka yang mengalami kesulitan memperluas volume logis seperti saya, membaca posting ini mungkin bisa membantu. Singkatnya, Anda bisa menggunakan lvextenduntuk memperluas volume logis lvextend -l +<PE> <LV_PATH> Anda : Anda bisa mendapatkan jumlah PE yang tersisa ( <PE>) dengan vgdisplaydan mendapatkan jalur volume logis Anda ( LV_PATH) dengan lvdisplay.

Kemudian tergantung pada distribusi Anda, Anda ingin xfs_growfs <LV_PATH>(Centos 7) atau resize2fs <LV_PATH>akhirnya mengubah ukuran.


0

Lihat ini - semuanya dalam satu baris, tanpa pertanyaan:

parted —pretend-input-tty /dev/vda resizepart 2 100%;
partx -u /dev/vda; pvresize /dev/vda2;
lvextend -r centos/var /dev/vda2

Anda harus mempertimbangkan untuk menambahkan penjelasan dan lingkungan Anda. Sebagai contoh, partx saya tidak memiliki opsi -u(Centos6.7 util-linux-ng-2.17.2-12.28.el6).
Boop
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.