06
Junio
2015

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

OVH: Instalador equipos con discos > 2,2TB no usa GPT en algunos casos

logo ovh 72DPIEn 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 la 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.
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.

sda, y las particiones mostradas son solo ejemplos que deberán adaptarse a su sistema.

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

Author; Abdelkarim Mateos Sanchez Categories: Sistemas Unix

About the Author

Abdelkarim Mateos Sanchez

Abdelkarim Mateos Sanchez

Déje un comentario

Estás comentando como invitado.