This is an old revision of the document!
Table of Contents
Convertir root (/) a LVM
Esto nunca funcionó!! Terminé reinstalando (venía bien) y habilitando LVM para agregar otro SSD
Se puede crear una partición lógica con fdisk
fdisk
n→ new partitione→ extended- usar todo el espacio (o lo que haga falta)
Dentro de la extendida se puede crear la partición lógica
n→ new partitionl→ logical- todo el espacio
lsblk debería mostrar 3 niveles el /dev/sdx, y adentro las 2 particiones, que en realidad están superpuestas (fdisk y parted pueden mostrar esto)
Supongamos que se crearon dentro del disco /dev/sdc las particiones sdc1 como extndida y sdc5 la lógica
NO es necesario crear la partición, pvcreate puede usar discos enteros.
pvcreate initializes PhysicalVolume for later use by the Logical Volume Manager (LVM). Each PhysicalVolume can be a disk partition, whole disk, meta device, or loopback file. For DOS disk partitions, the partition id should be set to 0x8e using fdisk(8), cfdisk(8), or a equivalent. For whole disk devices only the partition table must be erased, which will effectively destroy all data on that disk. This can be done by zeroing the first sector with:
dd if=/dev/zero of=PhysicalVolume bs=512 count=1
Para crear el LV
Crear el volumen físico en la partición o disco
# pvcreate /dev/sdc
crear el VolumeGroup
# vgcreate vg_new_root /dev/sdc
crear el volumen lógico
# lvcreate -L 300G -n lv0 vg_new_root
formatear… en este caso uso ext4
# mkfs.ext4 /dev/vg_new_root/lv0
crear una carpeta para montar ese lv
# mkdir /mnt/ssd
montar
# mount /dev/vg_new_root/lv0 /mnt/ssd/
lsblk queda así
... sdc 8:32 0 447,1G 0 disk └─vg_new_root-lv0 253:0 0 300G 0 lvm /mnt/ssd
Copiar ''/'' a la nueva partición
copiar los contenidos de / a la nueva unidad. Puedo usar cp pero voy a usar rsync
rsync -avxHAX --numeric-ids --progress / /mnt/ssd
editar el nuevo fstab
# nano /mnt/ssd/etc/fstab
debería quedar la línea que hace referencia a / así y comentar la anterior
/dev/vg_new_root/lv0 / ext4 defaults 1 1
hacer un bind mount entre lo actual y lo que se copió
mount --bind / /mnt/ssd/
A bind mount is an alternate view of a directory tree. Classically, mounting creates a view of a storage device as a directory tree. A bind mount instead takes an existing directory tree and replicates it under a different point. The directories and files in the bind mount are the same as the original. Any modification on one side is immediately reflected on the other side, since the two views show the same data.
For example, after issuing the Linux command-
mount –bind /some/where /else/where
the directories /some/where and /else/where have the same content, which is the content of /some/where. (If /else/where was not empty, its previous content is now hidden.)
Unlike a hard link or symbolic link, a bind mount doesn't affect what is stored on the filesystem. It's a property of the live system.
we have to change the root to the new file system, followed by creating initrd with raid as well as lvm support
tocar el nuevo direectrio con chrooot
# chroot /mnt/ssd/
A chroot is an operation that changes the apparent root directory for the current running process and their children. A program that is run in such a modified environment cannot access files and commands outside that environmental directory tree. This modified environment is called a chroot jail.
# mount -t proc /proc /proc
# mount -t sysfs /sys /sys
vgscan
vgchange -ay
mkinitramfs -o /boot/initrd-`uname -r`.lvm.img `uname -r`
umount /sys
umount /proc
volver a la nornalidad, fuera de chroot
exit
update-grub
reboot
Para borrar el LV
desactivar el LV
lvchange -an /dev/vg_new_root/lv0
borrar lvm
lvremove /dev/vg_new_root/lv0
borrar el grupo
vgremove vg_new_root
borrar el physical volume
pvremove /dev/sdc5
si hay que borrar absolutamnete todo, wipefs
wipefs -a /dev/sdc
