Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: ✔️ Máquinas virtuales Linux
En este artículo se proporciona una solución a un problema por el que no se puede cambiar el tamaño de una partición de registro de arranque maestro (MBR) para un disco de datos de más de 2 TB en una máquina virtual Linux de Azure.
Síntomas
Al ejecutar el comando para cambiar el fdisk
tamaño de una partición MBR, recibirá el siguiente mensaje de advertencia:
El tamaño de este disco es de 8,8 TB. El formato de tabla de particiones DOS no se puede usar en unidades para volúmenes mayores de 2 TB para sectores de 512 bytes. Use parted(1) y el formato de tabla de particiones GUID (GPT).
Este es un ejemplo de comando:
sudo fdisk /dev/sdd
Este es un ejemplo de salida de comando:
WARNING: The size of this disk is 8.8 TB (8796093022208 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).
The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help):
Command (m for help): d
Selected partition 1
Partition 1 is deleted
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-4294967295, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4294967294, default 4294967294):
Using default value 4294967294
Partition 1 of type Linux and of size 2 TiB is set <--- HERE
Command (m for help): p
Disk /dev/sdd: 8796.1 GB, 8796093022208 bytes, 17179869184 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 label type: dos
Disk identifier: 0x7024d1b6
Device Boot Start End Blocks Id System
/dev/sdd1 2048 4294967294 2147482623+ 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
Para comprobar el nuevo tamaño, siga estos pasos:
Informe al sistema operativo (SO) del cambio de tabla de particiones mediante la ejecución del siguiente comando:
sudo partprobe /dev/sdd
Ejecute el comando siguiente para comprobar el nuevo tamaño de la partición
/dev/sdd1
:sudo lsblk -o NAME,TYPE,FSTYPE,LABEL,SIZE,RO,MOUNTPOINT
La salida del comando muestra que la partición se ha cambiado de tamaño solo a 2 TB. He aquí un ejemplo de salida de comandos:
NAME TYPE FSTYPE LABEL SIZE RO MOUNTPOINT sda disk 32G 0 ├─sda1 part vfat 500M 0 /boot/efi ├─sda2 part xfs 500M 0 /boot ├─sda3 part xfs 31G 0 / └─sda4 part 2M 0 sdb disk 256G 0 └─sdb1 part ext4 256G 0 /mnt sdd disk 8T 0 └─sdd1 part ext4 2T 0 /appext4
Causa
El MBR, que contiene la información de tipo de límites de partición y partición (sistema de archivos), tiene un límite de direccionamiento de 2^32 sectores. La limitación de direcciones de 32 bits dentro de la estructura de datos de partición MBR limita el tamaño del disco y la partición.
Para los sectores de 512 bytes, la limitación de direcciones para una partición MBR es de 2 TB. Para los dispositivos 4Kn más recientes, cada sector lógico es de 2^32 x 4096 bytes o 16 TB.
Solución
Dado que la tabla de particiones GUID (GPT) no tiene limitaciones de direcciones de sector, se recomienda usar GPT para un disco de datos de 2 TB o más.
Estos son dos métodos para usar GPT en discos de datos:
Realice una copia de seguridad completa de los datos en el disco y vuelva a crear el GPT.
Cambio del tipo de partición de MBR a GPT
Importante
- Tome una instantánea del disco de datos antes de realizar cualquier cambio.
- Este cambio solo se puede realizar en un disco de datos, no en un disco del sistema operativo. Si se hace en un disco del sistema operativo, terminará en una situación de no arranque.
- Para Red Hat, no es posible convertir la etiqueta MSDOS en GPT sin perder datos.
Paso 1: Identificación del tipo de tabla de partición actual
Use una de las siguientes herramientas para comprobar si el disco de datos actual es MBR o GPT.
Paso 2: Volver a crear la partición
Nota:
En esta sección se usa la gdisk
herramienta para volver a crear la partición como ejemplo.
Instale la
gdisk
herramienta si no está instalada en la máquina virtual Linux:sudo yum install gdisk -y
Compruebe el tamaño actual del disco de datos:
sudo gdisk -l /dev/sdd | grep Disk | grep sectors
Disk /dev/sdd: 17179869184 sectors, 8.0 TiB
Detenga la ejecución de la aplicación en la máquina virtual y desmonte el sistema de archivos:
sudo systemctl stop myapp.service sudo umount /appext4
Nota:
- Ambos
myapp.service
y/appext4
son entradas de ejemplo. Reemplácelas en consecuencia. - Si necesita aumentar el tamaño del disco de datos, puede hacerlo ahora a través de su cuenta de Azure. Un cambio de tamaño de disco en Azure Portal necesita tiempo de inactividad. Para más información, consulte Expansión de un disco administrado de Azure.
- Ambos
Vuelva a crear el número de partición 1 mediante el
gdisk
comando :sudo gdisk /dev/sdd
GPT fdisk (gdisk) version 0.8.10 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 in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing q if you dont want to convert your MBR partitions to GPT format! *************************************************************** Command (? for help): p --> PRINT PARTITION TABLE Disk /dev/sdd: 17179869184 sectors, 8.0 TiB Logical sector size: 512 bytes Disk identifier (GUID): 8A3DAD49-6916-4BC5-836B-2F90C5161C05 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 17179869150 Partitions will be aligned on 2048-sector boundaries Total free space is 12884903870 sectors (6.0 TiB) Number Start (sector) End (sector) Size Code Name 1 2048 4294967294 2.0 TiB 8300 Linux filesystem Command (? for help): d --> DELETE PARTITION TABLE Using 1 Command (? for help): n --> CREATE NEW PARTITION TABLE Partition number (1-128, default 1): --> PARTITION 1 First sector (34-17179869150, default = 2048) or {+-}size{KMGTP}: 2048 --> SAME 1th SECTOR AS THE ORIGINAL PARTITION Last sector (2048-17179869150, default = 17179869150) or {+-}size{KMGTP}: --> HIT ENTER TO USE THE WHOLE SPACE, IN THIS CASE 8 TB Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem' Command (? for help): p --> PRINT PARTITION TABLE Disk /dev/sdd: 17179869184 sectors, 8.0 TiB Logical sector size: 512 bytes Disk identifier (GUID): 8A3DAD49-6916-4BC5-836B-2F90C5161C05 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 17179869150 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 17179869150 8.0 TiB 8300 Linux filesystem Command (? for help): w --> APPLY CHANGES Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y --> "Y" TO APPLY OK; writing new GUID partition table (GPT) to /dev/sdd. Warning: The kernel is still using the old partition table. The new table will be used at the next reboot. The operation has completed successfully.
Compruebe que el estilo de partición se ha cambiado a GPT:
sudo gdisk -l /dev/sdd | grep -A4 '^Partition table scan:'
Partition table scan: MBR: protective BSD: not present APM: not present GPT: present
Para comprobar el tamaño de la partición, ejecute el comando siguiente:
sudo lsblk -o NAME,TYPE,FSTYPE,LABEL,SIZE,RO,MOUNTPOINT
NAME TYPE FSTYPE LABEL SIZE RO MOUNTPOINT sda disk 32G 0 ├─sda1 part vfat 500M 0 /boot/efi ├─sda2 part xfs 500M 0 /boot ├─sda3 part xfs 31G 0 / └─sda4 part 2M 0 sdb disk 256G 0 └─sdb1 part ext4 256G 0 /mnt sdd disk 8T 0 └─sdd1 part ext4 2T 0 /appext4
Desmonte el sistema de archivos que se montó automáticamente y repare:
sudo umount /appext4 sudo fsck.ext4 -fy /dev/sdd1
e2fsck 1.42.9 (28-Dec-2013) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/sdd1: 6728/134217728 files (0.2% non-contiguous), 8849024/536870655 blocks
Vuelva a montar el sistema de archivos:
sudo mount /appext4
Cambie el tamaño del sistema de archivos:
Si el sistema de archivos es
ext4
, ejecute el siguiente comando:sudo resize2fs /dev/sdd1
resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/sdd1 is mounted on /appext4; on-line resizing required old_desc_blocks = 256, new_desc_blocks = 1024 The filesystem on /dev/sdd1 is now 2147483387 blocks long.
Si el sistema de archivos es
XFS
, ejecute el siguiente comando:sudo xfsgrowfs /dev/sdd1
Compruebe el nuevo tamaño:
sudo lsblk -o NAME,TYPE,FSTYPE,LABEL,SIZE,RO,MOUNTPOINT
NAME TYPE FSTYPE LABEL SIZE RO MOUNTPOINT sda disk 32G 0 ├─sda1 part vfat 500M 0 /boot/efi ├─sda2 part xfs 500M 0 /boot ├─sda3 part xfs 31G 0 / └─sda4 part 2M 0 sdb disk 256G 0 └─sdb1 part ext4 256G 0 /mnt sdc disk 1T 0 └─sdc1 part LVM2_member 1T 0 └─vgtest1-lvol1 lvm ext4 500G 0 sdd disk 8T 0 └─sdd1 part ext4 8T 0 /appext4 sde disk 1T 0
Aviso de declinación de responsabilidades sobre la información de terceros
Los productos de otros fabricantes que se mencionan en este artículo han sido creados por compañías independientes de Microsoft. Microsoft no ofrece ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.