Saya memiliki dua volume logis, satu di-mount sebagai /, yang lain di-mount sebagai / home.
Saya ingin menggabungkan mereka, karena /
volumenya terus-menerus kehabisan ruang. (Ya, saya tahu apa yang menggunakan semua ruang itu; tidak, saya tidak bisa menghapusnya.)
Saya bersedia menurunkan mesin selama satu atau dua hari untuk melakukannya.
OS: Linux xxxxx 2.6.32-279.22.1.el6.x86_64 #1 SMP Wed Feb 6 03:10:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
(CentOS)
/
volume, bukankah itu gunanya menggunakan LVM?Jawaban:
Saya sudah selesai, dan partisi ulang bekerja. Namun, karena ada area yang hilang di kedua panduan, saya akan meringkas apa yang saya lakukan. Harap perhatikan bahwa saya telah mengganti nama pengguna saya dengan
zzzz
nama komputer sayaxxxxxxx
. Selain itu, semua perintah harus dijalankan sebagai root kecuali jika dinyatakan lain.Pertama, saya membuat cadangan:
Ini menciptakan cadangan terkompresi dari direktori / home, dan meletakkannya di drive eksternal saya. (Perhatikan bahwa drive eksternal Anda akan memiliki jalur yang berbeda.)
Sekarang, Anda perlu reboot ke mode single-user.
Ketika komputer Anda menyala lagi, Anda perlu mencari layar seperti ini:
Tekan tombol apa saja untuk menghentikannya. Anda akan melihat layar seperti ini:
Tekan a, lalu Spasi, lalu ketik
single
. Tekan enter.Anda akan melihat prompt seperti ini:
Masukkan perintah berikut:
Ini harus menunjukkan Anda
Size
,Used
danAvail
. Kami tertarikUsed
.Tulis berapa banyak ruang yang digunakan oleh volume rumah Anda. Kami akan membutuhkannya nanti.
Ingat berapa banyak ruang yang digunakan volume rumah Anda? Gandakan itu, dan berikan untuk perintah ini. Sebagai contoh, saya memiliki 15 gigabyte yang digunakan oleh direktori home saya, jadi saya mengukurnya hingga 30 gigabytes.
Peringatan : Langkah selanjutnya ini adalah salah satu yang bisa kehilangan data. Membuat yakin bahwa Anda masukkan ke dalam ukuran yang lebih besar dari perintah sebelumnya. Tambahkan 5 Gigabytes untuk memastikan.
Beri tahu partisi root untuk menggunakan semua ruang yang baru saja kita bebaskan.
Salin data Anda ke partisi root
(Ngomong-ngomong, itu
-a
penting, karena kalau tidak semuanya akan dimiliki oleh root, dan Anda tidak menginginkannya.)Lakukan pemeriksaan cepat apakah data disalin dengan benar:
Sekarang kita hapus partisi home, dan beri tahu root untuk mengambil ruang baru lagi.
Pada titik ini, saya membuat kesalahan besar, yang bisa Anda pelajari. Saya reboot, dan ketika sistem kembali, ia menolak me-mount partisi root saya sebagai baca-tulis karena tidak bisa me-mount partisi home / saya. Jadi, sebelum kita reboot, kita ketik
Salah satu baris itu akan memberitahu sistem untuk me-mount partisi / home. Letakkan
#
sebelum itu. Tekan Ctrl-O, Enter, Ctrl-X. Sekarang kamu bisa reboot.(Secara hipotesis, jika Anda lupa mengedit fstab seperti yang saya lakukan, perintah untuk me-mount partisi root Anda adalah
mount -n -o remount -t ext2 /dev/vg_xxxxxxxx/lv_root /
)sumber
/home
. Kemudian, selama Anda dapat meng-unmount/home
, Anda dapat menghapusnya. Namun, saya tidak benar-benar memenuhi syarat untuk berbicara Anda melalui proses. Ini adalah sesuatu yang harus Anda ajukan pertanyaan baru.PERINGATAN: Cadangkan semua data penting sebelum melakukan apa pun!
Anda perlu memindahkan semua data dari partisi / home ke partisi lain, partisi lokal atau drive eksternal atau di mana pun tempat lain Anda memiliki cukup ruang.
Hapus / home lv dan kemudian rentangkan / (root) lv
Salin data kembali ke direktori / home
Edit 1
Jawaban di atas adalah dengan asumsi Anda tidak memiliki cukup ruang di partisi root untuk menempatkan data di partisi home.
Jika tidak demikian, pasang saja partisi home di tempat lain dan salin datanya, misalnya:
Kemudian hapus saja partisi home dan perluas partisi root
sumber
Anda dapat melakukannya tanpa penyimpanan eksternal, lari dari
/
, tetapi Anda harus melepasnya/home
.Ini bukan prosedur yang sangat berisiko jika Anda berhati-hati, tetapi meskipun demikian, saran standar berlaku: melakukan pencadangan terlebih dahulu, dan mengujinya.
Saya akan menggunakan
foo
untuk nama grup volume, danroot
danhome
sebagai nama volume logis. Ini membuat jalur volume logisfoo/root
danfoo/home
, dan jalur perangkat/dev/mapper/foo-root
dan/dev/mapper/foo-home
. Saya berasumsi bahwa mereka berada di grup volume yang sama, jika tidak, ini akan menjadi lebih rumit dan tergantung pada tata letak volume fisik dari dua grup volume.Pertama, unmount
/home
dan jalankane2fsck -f /dev/mapper/foo-home
. Kemudian menyusutkan sistem file terlebih dahulu, dan volume logis yang sesuai. Jalankan diresize2fs /dev/mapper/foo-home NNNN
mana NNNN adalah jumlah blok yang ingin Anda pertahankan di dalam volume (Anda bisa menggunakan kB atau MB atau GB sebagai gantinya dengan akhiranK
,M
atauG
). Setelah menyusut filesystem, mengecilkan volume logis denganlvresize -L MMMM foo/home
mana MMMM adalah jumlah megabyte (catatan bahwa unit default adalah berbeda dariresize2fs
, tetapi Anda dapat menggunakan akhiran yang samaK
,M
,G
). Berhati-hatilah untuk tidak menyusutkan volume logis lebih jauh dari filesystem - ini adalah langkah berbahaya dalam prosedur ini.Sekarang ada ruang yang tidak digunakan dalam grup volume. Jalankan
lvresize -l +100%FREE foo/root
untuk membuat volume root mengambil semua ruang kosong di grup volume. Kemudian jalankanresize2fs /dev/mapper/foo-root
(tanpa parameter ukuran) untuk memperbesar sistem file untuk menjangkau seluruh volume logis; memperbesar bisa dilakukan saat volume sudah terpasang.Anda sekarang memiliki ruang untuk menyalin beberapa file. Jika Anda tidak memiliki cukup ruang untuk semuanya, gerakkan sebanyak mungkin, lalu ulangi prosedurnya.
Setelah Anda menyalin semua file dari
/home
, Anda siap untuk menghancurkannya. Pastikan/home
kosong (jika Anda memindahkan file) atau bahwa semua file/home
telah disalin ke/root
(jika Anda menyalin file). Untuk menghancurkan volume logis yang sekarang tidak dibutuhkan, jalankanlvremove foo/home
. Akhirnya, memperbesar volume root denganlvresize -l 0%FREE foo/root
dan sistem berkasnya denganresize2fs /dev/mapper/foo-home
.sumber
Oke, saya menemukan diri saya dalam posisi yang persis sama. Tampaknya CentOS membuat volume root kecil secara default dan mengisi sisa ruang Anda dengan
/home
. Saya bahkan menguji pengaturan saya terlebih dahulu dalam VM tetapi dengan disk yang lebih kecil CentOS tidak membuat volume rumah. Saya mengambil masalah ini sebelum menjadi ruang dibatasi tho 'dan juga memikirkan bagaimana tidak harus masuk ke mode pengguna tunggal. Sebagai berikut:Dapatkan akses ke mesin, ssh baik-baik saja (dengan asumsi pengguna non-root).
cd /
jadi kamu tidak ada di direktori homesudo -s
kami akan menjadi root untuk semua inilsof /home
pastikan tidak ada yang menggunakan volume rumah, seharusnya tidakmv
,,tar
atau serupa dengan isi rumah ke tempat lainlvremove centos/home
/etc/fstab
dan komentar atau hapus baris untuk/home
/home
- Anda sekarang pada posisi yang aman, reboot di sini seharusnya OKlvresize -l +100%FREE centos/root
xfs_growfs /dev/centos/root
pada CentOS 7, orang lain mungkin menggunakanresize2fs
df -h
sudahkah anda berhasilSemoga ini memudahkan seseorang. Sungguh menakjubkan apa yang dapat Anda lakukan secara langsung pada sistem file hari ini.
sumber