Sistemas

Cambiar el sistema de particiones MBR (MSDOS partición) a GPT

En algunos casos, existe un fallo en el instalador de OVH para instalar imágenes de SO o distribuciones especificas, en servidores dedicados, como es el caso de Proxmox, un tanto ridículo pero muy molesto, que instala en equipos con discos o arrays de discos de mas de 2TB, formateando los discos con el obsoleto fdisk, o MBR MSDOS, en vez de con parted.

El instalador en vez de verificar la estructura de tu equipo (se supone que si alquilas un equipo con tarjeta RAID y 4 discos, es que como poco, puedes intentar crear un RAID 0,1,10,5,6), el script presupone el tamaño máximo del disco modelo.

El programador que realizo el script se que quedo corto, y simplemente (y esto se nota porque en cualquier modelo con discos individuales de más de 2TB, no pasa) al ser un disco menor de 2TB selecciona el vetusto modelo de particiones MBR o MSDOS, el cual no soporta discos de mas de 2TB.

La solución es algo compleja, pero pasa por modificar las particiones, convirtiéndolas de MSDOS (MBR) a GPT usando el modo rescue-pro de OVH.

Instalación del S.O. o distribución pre-instalada de OVH

Al realizar la particiones, deberemos tener en cuenta dejar al menos 33 Mb., con el fin de dejar espacio al final del disco para el esquema de la partición GPT.

Si tras la instalación, observamos que no existe un espacio de al menos 2048 Kbytes sin tocar por la primera partición, que es lo habitual por razones de alineación en la nuevas instalaciones con grub, deberíamos relanzar una nueva instalación creando una nueva partición (la primera) de al menos 2048Kbytes.

Arranque en modo rescue-pro (o con método live)

Una vez accedemos al servidor deberemos verificar el esquema de particiones.

Ejemplo modelo MBR-MSDOS

root@rescue:~# fdisk /dev/sda
WARNING: The size of this disk is 2.4 TB (2398806343680 bytes).
DOS partition table format can not be used on drives for volumes
larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID
partition table format (GPT).
Command (m for help): p
Disk /dev/sda: 2398.8 GB, 2398806343680 bytes
255 heads, 63 sectors/track, 291638 cylinders, total 4685168640 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1    *          1  4294967295  2147483647+  83  Linux
/dev/sda2        30722048    32817151     1047552   82  Linux swap / Solaris

Como observamos incluso el comando fdisk nos advierte del problema.

Para cambiar a GPT deberemos tener instalados en nuestro sistema parted y gdisk

Ejecutaremos

root@rescue:~# gdisk
GPT fdisk (gdisk) version 0.8.5
Type device filename, or press  to exit: /dev/sda
Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format.
THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if
you don't want to convert your MBR partitions to GPT format!
***************************************************************
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
The operation has completed successfully.
root@rescue:~#

En este punto, el sistema ya tiene una tabla de particiones con modelo GPT, pero es un sistema que no podría reiniciarse. Tras este cambio, debe ser tenidas en consideración ciertas cuestiones.

GPT almacena una tabla secundaria la final del disco. Esta estructura consume 33 sectores de 512 por defecto. Esto no existe en MBR, y suele significar que la última partición se extiende hasta el final.

Si la instalación es relativamente moderna, el instalador habrá creado la primera partición en el sector 34 o en el 2048. Esto nos permitirá crear una nueva partición con gdisk, especificar manualmente su posición 34 a 2047, y su tipo de partición como EF02.

En este punto tras varios intentos, siguiendo distintos artículos, observe, que existía un problema derivado de la falta de sincronización de la nueva tabla de particiones y el boot loader rescue-pro. Así que al final, opte por un reinicio, otra vez en modo rescue-pro, con el fin de no tener problemas con la tabla de particiones en memoria.

Tras el reinicio, otra vez en modo rescue-pro o modo live, crearemos la partición de arranque y la moveremos a la primera partición.

root@rescue:~# gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.5
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): p ## Comenatrio --> (p)rint Imprime la tabla de particiones
Disk /dev/sda: 4685168640 sectors, 2.2 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): D25B2781-C1EB-4896-9662-B35BCA93757F
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 4685168606
Partitions will be aligned on 2048-sector boundaries
Total free space is 4646064060 sectors (2.2 TiB)
Number  Start (sector)    End (sector)  Size       Code  Name
   1            4096        30722047   14.6 GiB    8300  Linux filesystem
   2        30722048        39108607   4.0 GiB     8200  Linux swap
   3            2048            2048   512 bytes   EF02  BIOS boot partition
Command (? for help): s ##Comentario (s)ort Ordena la tabla de particiones
You may need to edit /etc/fstab and/or your boot loader configuration!
Command (? for help): p
Disk /dev/sda: 4685168640 sectors, 2.2 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): D25B2781-C1EB-4896-9662-B35BCA93757F
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 4685168606
Partitions will be aligned on 2048-sector boundaries
Total free space is 4646064060 sectors (2.2 TiB)
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048            2048   512 bytes   EF02  BIOS boot partition
   2            4096        30722047   14.6 GiB    8300  Linux filesystem
   3        30722048        39108607   4.0 GiB     8200  Linux swap
Command (? for help): w  ## Comentario: Sale y guarda los cambios
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
The operation has completed successfully.

Actualizar grub en modo chroot

Tras este cambio, deberemos montar nuestro sistema en modo chroot, para poder editar el fichero /etc/fstab para indicar el nuevo esquema de particiones ya que al ordenar la tabla de particiones hemos modificado la numeración de las mismas, y también necesitaremos reinstalar grub para hacer efectivos los cambios, y que el indique que el modelo es GPT (a fin de cuentas el arranque ahora esta basado en EFI

root@rescue:~# mkdir /mnt/sysimage 
root@rescue:~# mount /dev/sda1 /mnt/sysimage
root@rescue:~# mount --bind /dev /mnt/sysimage/dev
root@rescue:~# mount --bind /dev/pts /mnt/sysimage/dev/pts
root@rescue:~# mount --bind /proc /mnt/sysimage/proc
root@rescue:~# mount --bind /sys /mnt/sysimage/sys
root@rescue:~# chroot /mnt/sysimage
root@rescue:/#

Editamos /etc/fstab para actualizar nuestra nueva tabla de particiones y después actualizamos grub

root@rescue:/# grub-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.

Ahora si, podremos reiniciar nuestro servidor en modo HD Boot, con nuestro nuevo esquema de particiones.

Atención
sda, y las particiones mostradas son solo ejemplos que deberán adaptarse a su sistema.
Esos pequeños detalles
OVH haría bien en añadir un paso en el instalador dejando que el usuario elija el modelo ya que también esta forma obtusa puede ser compleja para los usuarios que quieren instalar Windows.

Algunas veces las cosas en OVH no van tan finas como debían. Intentar hablar con el soporte es una acción casi imposible, y la verdad es que su personal y sus políticas son bastantes obtusas. Así que lo mejor es no perder el tiempo y solucionarlo uno mismo. Aun así, agradezco a OVH que gracias a esta política, muchas veces me permite investigar, y avanzar en el mundo de los sistemas


Artículos relacionados


Imagen gracias a Designed by Freepik y editada por Castris

Comparte este artículo

Artículo Antiguo
Este artículo tiene más de 2 años. Es muy probable que su contenido este anticuado, aunque pueda ser de utilidad, es conveniente que revises otras informaciones al respecto. Si lo encuentras útil o crees que puede ser actualizado, deja tu comentario con la actualización para poder editarlo y que pueda ser útil a los demás.

Comparte este articulo en

Abkrim

Yo solo se que no se nada, y que me paso la vida aprendiendo

Entradas recientes

Youtube – Mod Security en DirectAdmin. Conocerlo y gestionarlo en el panel de control DirectAdmin.

¡Hola a todos! Vamos a sumergirnos en el fascinante mundo de Mod Security y aprender…

3 meses hace

Apertura del canal Youtube, Tecno Boomer, dedicado al mundo del hosting

Ya son muchos años en el sector, muchos años pasando por varios paneles de control,…

3 meses hace

El Uso de la Lista UCEPROTECT en los Niveles 2 y 3: Una Falacia de Causa Cuestionable

La lista UCEPROTECT es una herramienta utilizada por muchos administradores de sistemas y proveedores de…

4 meses hace

Fatal error: Allowed memory size of 268435456 bytes exhausted en WordPress. Otro post más… pero diferente

No es la primera vez que me encuentro con el agotamiento de la memoria en…

11 meses hace

Problemas de Acceso con Centos 7, Almalinux 8, Ubuntu 20.04, y Debian 10/11: Un Enigma Firewall CSF

Descubre cómo solucionar problemas de acceso a servidores con Centos 7, Almalinux 8, Ubuntu 20.04…

1 año hace

MySQL no inicia debido a errores en la base de datos interna de MySQL

Uno de los mensajes más alarmantes que puedes encontrarte es aquel que indica que tu…

1 año hace