Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: ✔️ VMs linux
Este artigo fornece uma solução para um problema em que você não consegue redimensionar uma partição MBR para um disco de dados maior que 2 TB em uma máquina virtual do Linux no Azure.
Importante
Este artigo se aplica a distribuições Linux endossadas com suporte.
Sintomas
Ao executar o fdisk
comando para redimensionar uma partição MBR, você recebe a seguinte mensagem de aviso:
O tamanho deste disco é de 8,8 TB. O formato de tabela de partição DOS não pode ser usado em unidades para volumes maiores que 2 TB para setores de 512 bytes. Use parted(1) e formato de tabela de partição GUID (GPT).
Aqui está um exemplo de comando:
sudo fdisk /dev/sdd
Aqui está um exemplo de saída 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 verificar o novo tamanho, siga estas etapas:
Informe o sistema operacional (SO) sobre a alteração da tabela de partição executando o seguinte comando:
sudo partprobe /dev/sdd
Verifique o novo tamanho da partição
/dev/sdd1
executando o seguinte comando:sudo lsblk -o NAME,TYPE,FSTYPE,LABEL,SIZE,RO,MOUNTPOINT
A saída do comando mostra que a partição foi redimensionada apenas para 2 TB. Aqui está um exemplo de saída de comando:
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
Motivo
O MBR, que contém os limites da partição e as informações do tipo de partição (sistema de arquivos), tem um limite de endereçamento de 2^32 setores. A limitação de endereço de 32 bits na estrutura de dados da partição MBR limita o tamanho do disco e da partição.
Para setores de 512 bytes, a limitação de endereço para uma partição MBR é de 2 TB. Para dispositivos 4Kn mais recentes, cada setor lógico tem 2^32 x 4.096 bytes ou 16 TB.
Solução
Como a GPT (Tabela de Partição GUID) não tem limitações de endereço de setor, recomendamos usar a GPT para um disco de dados de 2 TB ou maior.
Aqui estão dois métodos para usar o GPT em discos de dados:
Faça um backup completo dos dados no disco e recrie o GPT.
Altere o tipo de partição de MBR para GPT
Importante
- Faça um instantâneo do disco de dados antes de fazer qualquer alteração.
- Essa alteração só pode ser feita em um disco de dados, não em um disco do sistema operacional. Se for feito em um disco do sistema operacional, ele acabará em uma situação sem inicialização.
- Para a Red Hat, não é possível converter o rótulo MSDOS em GPT sem perder dados.
Etapa 1: Identificar o tipo de tabela de partição atual
Use uma das ferramentas a seguir para verificar se o disco de dados atual é MBR ou GPT.
Etapa 2: recriar a partição
Observação
Esta seção usa a gdisk
ferramenta para recriar a partição como exemplo.
Instale a
gdisk
ferramenta se ela não estiver instalada na máquina virtual Linux:sudo yum install gdisk -y
Verifique o tamanho atual do disco de dados:
sudo gdisk -l /dev/sdd | grep Disk | grep sectors
Disk /dev/sdd: 17179869184 sectors, 8.0 TiB
Pare o aplicativo em execução na máquina virtual e desmonte o sistema de arquivos:
sudo systemctl stop myapp.service sudo umount /appext4
Observação
- Ambos
myapp.service
e/appext4
são entradas de exemplo. Substitua-os de acordo. - Se você precisar aumentar o tamanho do disco de dados, poderá fazê-lo agora por meio de sua conta do Azure. Um redimensionamento de disco no portal do Azure precisa de tempo de inatividade. Para obter mais informações, consulte Expandir um Azure Managed Disk.
- Ambos
Recrie a partição número 1 usando o
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.
Verifique se o estilo da partição foi alterado para GPT:
sudo gdisk -l /dev/sdd | grep -A4 '^Partition table scan:'
Partition table scan: MBR: protective BSD: not present APM: not present GPT: present
Verifique o tamanho da partição executando o seguinte comando:
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 o sistema de arquivos que foi montado automaticamente e repare-o:
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
Remonte o sistema de arquivos:
sudo mount /appext4
Redimensione o sistema de arquivos:
Se o sistema de arquivos for
ext4
, execute o seguinte 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.
Se o sistema de arquivos for
XFS
, execute o seguinte comando:sudo xfsgrowfs /dev/sdd1
Verifique o novo tamanho:
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 isenção de responsabilidade para informações de terceiros
Os produtos de terceiros mencionados neste artigo são produzidos por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, do desempenho ou da confiabilidade desses produtos.
Entre em contato conosco para obter ajuda
Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.