Domanda:il filesystem di root è pieno e non è LVM. Dobbiamo spostarlo in una nuova partizione che è LVM. Come si può raggiungere questo obiettivo?
Rispondi :
La procedura per convertire un file system root esistente su una normale partizione del disco in un volume LVM è la seguente :
1. Innanzitutto crea una partizione LVM:
Seleziona un disco libero e crea una partizione LVM su di esso.
# pvcreate /dev/sdb1 # vgcreate vg_new_root /dev/sdb1 # lvcreate -L 4G -n lv0 vg_new_root
2. Formatta questa nuova partizione LVM con ext3 o ext4 (o secondo necessità). L'esempio riportato di seguito crea un file system aext4:
# mkfs.ext4 /dev/vg_new_root/lv0
3. Crea un nuovo punto di montaggio e quindi monta la partizione LVM su di esso:
# mkdir /mnt/NEW_ROOT_PARTITION # mount /dev/vg_new_root/lv0 /mnt/NEW_ROOT_PARTITION
4. Copia tutto il contenuto di “/” nella cartella appena montata:
# tar -cvpf - --one-file-system --acls --xattrs --selinux / | tar -C /mnt/NEW_ROOT_PARTITION -xf # cp -aux /dev /mnt/NEW_ROOT_PARTITION
5. Ora modifica il file – /mnt/NEW_ROOT_PARTITION/etc/fstab per riflettere la nuova radice:
/dev/vg_new_root/lv0 / ext4 defaults 1 1
6. Ora è necessario eseguire il chroot su un nuovo filesystem e creare initrd con supporto raid e lvm:
# mount --bind /dev /mnt/NEW_ROOT_PARTITION # chroot /mnt/NEW_ROOT_PARTITION # mount -t proc /proc /proc # mount -t sysfs /sys /sys
# vgscan # vgchange -ay # mkinitrd -v /boot/initrd-`uname -r`.lvm.img `uname -r`
# umount /sys # umount /proc # exit # mv /mnt/lv0/boot/initrd-`uname -r`.lvm.img /boot
7. Modifica /boot/grub/grub.conf per puntare alla nuova radice /dev/vg_new_root/lv0 . Eseguire il backup del vecchio initrd nella directory "/boot" e rinominare il nuovo initrd in quello esistente o modificare la voce in grub.conf.
8. Riavvia
# shutdown -r now