User Tools

Site Tools


convert_root_to_lvm_partition

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
convert_root_to_lvm_partition [2023/01/17 14:35] – created osoconvert_root_to_lvm_partition [2024/10/17 21:42] (current) – external edit 127.0.0.1
Line 1: Line 1:
-Crear una partición lógica con ''fdisk'' +====== Convertir root (/) a LVM ======
-<code bash>fdisk</code> +
-n -> new partition+
  
-e -extended+<WRAP center round alert 80%> 
 +===== Esto nunca funcionó!! ===== 
 +Terminé reinstalando Ubuntu (no venía mal) y habilitando LVM para agregar otro SSD. 
 +Llegué hasta el bind mount para crear el initramfs. Tal vez otro día lo retome usando una VM en vez de hacerlo sobre la PC principal. 
 +</WRAP>
  
-usar todo el espacio (o lo que haga falta)+Se puede crear una partición lógica con ''fdisk'' 
 +<code bash>fdisk</code> 
 +  * ''n'' -> new partition 
 +  * ''e'' -> extended 
 +  * usar todo el espacio (o lo que haga falta)
 Dentro de la extendida se puede crear la partición lógica Dentro de la extendida se puede crear la partición lógica
  
-+  * ''n'' -> new partition 
- +  * ''l'' -> logical 
-+  todo el espacio
- +
-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) ''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)
Line 24: Line 28:
 dd if=/dev/zero of=PhysicalVolume bs=512 count=1 dd if=/dev/zero of=PhysicalVolume bs=512 count=1
 </WRAP> </WRAP>
 +===== Para crear el LV =====
  
 Crear el volumen físico en la partición o disco  Crear el volumen físico en la partición o disco 
-<code bash> pvcreate /dev/sdc5</code>+<code bash>pvcreate /dev/sdc</code> 
 +crear el VolumeGroup 
 +<code bash># vgcreate vg_new_root /dev/sdc </code> 
 +crear el volumen lógico 
 +<code bash># lvcreate -L 300G -n lv0 vg_new_root</code> 
 +formatear... en este caso uso ext4 
 +<code bash># mkfs.ext4 /dev/vg_new_root/lv0 </code> 
 +crear una carpeta para montar ese lv 
 +<code bash># mkdir /mnt/ssd</code> 
 +montar 
 +<code bash># mount /dev/vg_new_root/lv0 /mnt/ssd/ </code> 
 +''lsblk'' queda así 
 +<code bash> 
 +... 
 +sdc                 8:32   0 447,1G  0 disk  
 +└─vg_new_root-lv0 253:0    0   300G  0 lvm  /mnt/ssd 
 +</code> 
 +===== Copiar ''/'' a la nueva partición ===== 
 + 
 +copiar los contenidos de / a la nueva unidad. Puedo usar ''cp'' pero voy a usar rsync 
 +<code bash>rsync -avxHAX --numeric-ids --progress / /mnt/ssd </code> 
 +editar el nuevo fstab 
 +<code bash># nano /mnt/ssd/etc/fstab </code> 
 +debería quedar la línea que hace referencia a ''/'' así y comentar la anterior 
 +<code bash>/dev/vg_new_root/lv0      /       ext4    defaults     1 1 </code> 
 + 
 +hacer un bind mount entre lo actual y lo que se copió 
 +<code bash>mount --bind / /mnt/ssd/ </code> 
 +<WRAP center round info 60%> 
 +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. 
 +</WRAP> 
 + 
 +//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'' 
 +<code bash># chroot /mnt/ssd/ </code> 
 +<WRAP center round info 60%> 
 +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. 
 +</WRAP> 
 + 
 + 
 +<code bash># mount -t proc /proc /proc </code> 
 + 
 +<code bash># mount -t sysfs /sys /sys </code> 
 + 
 +<code bash>vgscan </code> 
 + 
 +<code bash>vgchange -ay </code> 
 + 
 +<code bash>mkinitramfs -o /boot/initrd-`uname -r`.lvm.img `uname -r` </code> 
 + 
 +<code bash>umount /sys</code>
  
-<code bash> </code>+<code bash>umount /proc</code>
  
-<code bash> </code>+volver a la nornalidad, fuera de chroot 
 +<code bash>exit </code>
  
-<code bash> </code>+<code bash>update-grub </code>
  
-<code bash> </code>+<code bash>reboot </code>
  
-<code bash> </code> 
  
-<code bash> </code> 
  
-===== Para borrar el LVM =====+===== Para borrar el LV =====
  
 desactivar el LV desactivar el LV
convert_root_to_lvm_partition.1673966111.txt.gz · Last modified: 2024/10/17 21:42 (external edit)