Solusi 1:
Pembaruan cepat dari sisi saya. Konteks:hari ini saya mendapatkan server khusus yang diinstal dengan skema partisi fisik, bukan LVM. Ada 3 partisi:
/boot (ext4) - 512M/ (ext4) - 730Gswap - 8G
Karena sifat tidak memiliki akses konsol, tujuan akhirnya adalah mengubah partisi root yang ada menjadi LVM.
Mempertimbangkan ext4 tidak menyusut, satu-satunya cara adalah menggunakan kembali partisi swap sebagai root sementara. Saya juga memutuskan untuk mengatur root sementara dengan LVM untuk memastikan prosesnya dapat berjalan dengan benar.
Pertama ternyata swap:
swapoff -a
Kemudian ubah ukuran partisi melalui parted (awalnya dimulai dari 742 hingga 750):
parted
resize 3 742 744
dan membuat partisi untuk LVM:
mkpart primary ext2 744 750
set 4 lvm on
Pembuatan PV/VG/LV/filesystem untuk temp root:
pvcreate /dev/sda4
vgcreate VolGroup00 /dev/sda4
lvcreate -L 5.73G -n tmproot VolGroup00
mkfs.ext4 /dev/VolGroup00/tmproot
Langkah selanjutnya adalah menyalin root ke tempat sementara:
mount /dev/VolGroup00/tmproot /media
rsync -ravzxq / /media/
Setelah semuanya ada maka entri untuk sistem file root di /media/etc/fstab juga harus diubah:
/dev/VolGroup00/tmproot / ext4 defaults 1 1
Hampir sampai, bagian terakhir dan katakanlah bagian yang paling tidak diinginkan tanpa akses konsol adalah memodifikasi /boot/grub/grub.conf:
entri asli:
title CentOS (2.6.32-279.22.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-279.22.1.el6.x86_64 ro root=UUID=e769af21-d9e1-455f-a6a7-7a9c84d8cbea rd_NO_LUKS LANG=en_US.UTF-8 KEYBOARDTYPE=pc KEYTABLE=hu rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-279.22.1.el6.x86_64.img
entri yang dimodifikasi:
title CentOS (2.6.32-279.22.1.el6.x86_64) LVM
insmod lvm
kernel /vmlinuz-2.6.32-279.22.1.el6.x86_64 ro LANG=en_US.UTF-8 KEYBOARDTYPE=pc KEYTABLE=hu SYSFONT=latarcyrheb-sun16 crashkernel=auto dolvm root=/dev/mapper/VolGroup00-tmproot panic=10
#rd_NO_DM rd_NO_MD rd_NO_LUKS
initrd /initramfs-2.6.32-279.22.1.el6.x86_64.img
Untuk amannya:insmod lvm ditambahkan bersama dengan parameter dolvm untuk kernel dan jalur root juga diubah menjadi root=/dev/mapper/VolGroup00-tmproot. Penting untuk menggunakan jalur /dev/mapper/ saat ini. Sebagai jaminan, saya juga menambahkan parameter panic=10 dan tidak mengubah entri boot default di header. Alih-alih itu, saya mencoba memberi tahu grub untuk boot dengan pengaturan baru hanya satu kali dan jika gagal, entri asli dapat berfungsi:
grub
savedefault --default=1 --once
Dan akhirnya:
reboot
Tidak apa-apa bagi saya pada awalnya, jadi saya mengulangi seluruh prosedur dengan membuat grup volume baru di atas partisi root asli dan akhirnya saya mendapatkan root di tempat yang tepat menggunakan LVM.
Semoga ini bisa membantu.
Solusi 2:
Tidak ada yang mustahil di Linux, tetapi Anda harus bertekad dan gila untuk mencoba apa yang Anda gambarkan. Ingatlah bahwa jika Anda hanya memiliki akses SSH, ada kemungkinan besar Anda akan kehilangan akses ke server jika melakukan kesalahan. Jika Anda memiliki konsol "serial" jarak jauh dan sakelar daya virtual, itu bisa sedikit membantu. Yang mengatakan, jika Anda memiliki instalasi baru tanpa kehilangan data, mengapa tidak mencobanya? Saya menemukan tutorial untuk mengubah sistem Linux dari jarak jauh ke RAID1; langkah-langkah yang akan Anda coba untuk LVM akan serupa.
Pertama, mari pertimbangkan kebutuhan ruang penyimpanan sementara. Dengan asumsi Anda tidak memiliki disk kedua di server, Anda dapat mengecilkan partisi yang ada menggunakan parted
. Tentu saja, ini mengharuskan partisi boot dan root Anda menggunakan kurang dari setengah disk, dan mereka harus menggunakan sistem file yang dapat menyusut. (XFS dan JFS, misalnya, tidak dapat disusutkan.)
Setelah mengecilkan partisi yang ada, Anda dapat membuat volume fisik LVM di ruang kosong, grup volume, dan volume logis di dalamnya. Replikasi sistem file Anda. (Saat mereplikasi sistem file root Anda, Anda harus mematikan semuanya kecuali sshd
, dan idealnya berada dalam mode pengguna tunggal. Anda mungkin harus menggunakan rsync
bukan dd
karena Anda mereplikasi sistem file yang terpasang.)
Kemudian, Anda akan menyiapkan initrd dengan dukungan LVM dan memberi tahu GRUB untuk mem-boot ke sistem baru, seperti yang dijelaskan dalam tutorial Warren Togami. Setelah Anda melakukannya, mudah untuk menghapus sistem file lama menggunakan parted
dan meningkatkan volume LVM.
Semoga beruntung! Beri tahu kami jika berhasil!
Solusi 3:
Saya sebelumnya telah memigrasikan partisi root saya "/" yang mengarah ke partisi disk "/dev/sda2" dengan 10G pada centos 6 ke partisi LV, langkah-langkah yang dilakukan adalah sebagai berikut :
- Tambahkan hard disk pada VMware 10G.
- mengenali disk tanpa mem-boot ulang sistem.
ls /sys/class/scsi_host/| while read x ; do echo "- - -" > /sys/class/scsi_host/${x}/scan ; done
- Buat partisi pada disk baru, misalkan disk baru saya adalah /dev/sdb
- Bekerja dengan :
fdisk /dev/sdb
- Berada di antarmuka "fdisk" memungkinkan membuat partisi dengan kunci "n" menetapkan kapasitas +9G, kemudian mengubah jenis partisi dengan kunci "t" menetapkan "8e" (partisi lvm) dan terakhir kunci "w" untuk menerapkan perubahan, jika Anda ingin melihat bagaimana tampilan tabel partisi Anda dapat menekan tombol "p".
- setelah partisi dibuat, kami dapat memvalidasi bahwa perangkat telah dibuat dengan perintah berikut ( perintah berfungsi saat disk tidak digunakan):
partprobe /dev/sdb
- setelah perangkat keluar secara fisik, mari buat objek LVM dengan urutan berikut:
pvcreate /dev/sdb1 vgcreate vg_root /dev/sdb1 lvcreate -v -n lv_root vg_root -L 9G
- setelah unit LV dibuat, mari tetapkan FS dan pasang ke sistem saat ini.
mkfs -t ext4 /dev/vg_root/lv_root mkdir /mnt/new_root/ mount -t ext4 /dev/vg_root/lv_root /mnt/new_root/
- jika Anda tidak tahu apa FS dari partisi Anda saat ini, Anda dapat mengetahuinya dengan perintah seperti:
df -lhT cat /etc/fstab blkid
- ketika LV baru dipasang, kita dapat melanjutkan untuk menyalin semua file sistem.
find / -xdev | cpio -pmvd /mnt/new_root/
- setelah file disalin, kita dapat melanjutkan untuk mengubah "chroot" tetapi sebelumnya mari kita pasang beberapa partisi :
cd /mnt/new_root/ mount -t proc /proc proc mount -t sysfs /sys sys/ mount --rbind /dev dev/
- sekarang mari kita ubah chroot
chroot /mnt/new_root/
- setelah kita berada di root baru, ubah file :
vi /etc/fstab
- meninggalkan file hampir mirip dengan :
#UUID=98dd25ba-feed-4ddb-80be-5e2d1ab2bdaa / ext4 defaults 1 1 /dev/mapper/vg_root-lv_root / ext4 defaults 1 1
- Setelah file dimodifikasi dengan benar, mari buat file di root dengan nama "./autorelabel" kalau-kalau Anda bekerja dengan SELINUX "enforcing" atau "permissive".
touch ./autorelabel
- Mari kita keluar dari lingkungan chroot di /mnt/new-root
exit
- Jika perubahan telah dilakukan berdasarkan skenario Anda, mari lakukan salah satu perubahan terakhir, yaitu memodifikasi file grub "/boot/grub/grub.conf", menambahkan menu baru (jangan mengubah opsi boot Anda saat ini sampai yang baru ditambahkan berfungsi dengan benar).
# before title CentOS 6 (2.6.32-573.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=UUID=98dd25ba-feed-4ddb-80be-5e2d1ab2bdaa rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-573.el6.x86_64.img
# now title CentOS 6 (2.6.32-573.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=UUID=98dd25ba-feed-4ddb-80be-5e2d1ab2bdaa rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-573.el6.x86_64.img title CentOS 6 (2.6.32-573.el6.x86_64-lvroot) root (hd0,0) insmod lvm kernel /vmlinuz-2.6.32-573.el6.x86_64 ro dolvm root=/dev/mapper/vg_root-lv_root rd.lvm.lv=vg_root/lv_root LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet initrd /initramfs-2.6.32-573.el6.x86_64.img
# the line added was title CentOS 6 (2.6.32-573.el6.x86_64-lvroot) root (hd0,0) insmod lvm kernel /vmlinuz-2.6.32-573.el6.x86_64 ro dolvm root=/dev/mapper/vg_root-lv_root rd.lvm.lv=vg_root/lv_root LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet initrd /initramfs-2.6.32-573.el6.x86_64.img
- Setelah perubahan pada file grub selesai, mari selesaikan pembuatan ulang file iso initrd baru :
cd /boot cp -av initramfs-$(uname -r).img initramfs-$(uname -r).img.old dracut -f
- akhirnya reboot :
init 6 # or reboot
- Setelah menu grub muncul, pilih yang baru ditambahkan "CentOS 6 (2.6.32-573.el6.x86_64-lvroot)" dan validasi bahwa itu berfungsi dengan benar.
- Jika sistem berfungsi dengan baik dan tidak menggunakan "/dev/sda", sistem dapat dihapus dan dilepaskan dari VM atau server fisik Anda.
dd if=/dev/zero of=/dev/sda bs=1
- Penyetelan terjal terakhir sebagai entri default item baru ditambahkan pada menu grub "/boot/grub/grub.conf":
#default=0 default=1
Semoga informasi yang diberikan sebelumnya akan membantu seseorang.
terima kasih sebelumnya,
Manuel Lazo