Extensão de partições e sistemas de arquivos no Linux (fdisk)
Cenários
No Linux, após a expansão da capacidade ser bem-sucedida, o espaço em disco adicional precisa ser alocado para uma partição existente ou uma nova partição.
Este tópico usa o CentOS 7.0 64bit para descrever como alocar o espaço em disco adicional para uma partição usando o fdisk.
O método para alocar o espaço adicional varia dependendo do sistema operacional do servidor. Este documento é usado apenas para referência. Para obter informações detalhadas sobre as operações e diferenças, consulte os documento do SO correspondentes.
- Crie uma nova partição (os serviços não serão interrompidos).
Criar uma nova partição após a expansão não requer que as partições originais sejam desmontadas. Portanto, os impactos nos serviços são menores do que recriar uma partição existente. Este método é recomendado para discos do sistema ou discos que transportam serviços que não podem ser interrompidos.
Se o estilo de partição MBR for usado, certifique-se de que a capacidade do disco não exceda 2 TB e o número de partições não atinja o limite superior após a expansão.
- Recrie uma partição existente (os serviços serão interrompidos).
Se o estilo de partição MBR for usado e o número de partições tiver atingido o limite superior, você só poderá alocar o espaço adicional a uma partição existente. Recriar uma partição existente não exclui seus dados, mas requer que a partição seja desmontada. Portanto, os serviços serão interrompidos.
Se o estilo de partição MBR for usado e a capacidade do disco após a expansão exceder 2 TB, o espaço superior a 2 TB não poderá ser usado. Para fazer uso desse espaço, altere o estilo da partição do disco de MBR para GPT. Os dados no disco serão apagados durante tal alteração. Portanto, faça backup dos dados do disco antes de alterar o estilo da partição.
Execute as operações de expansão com cautela. A operação incorreta pode levar à perda de dados ou exceções. Portanto, é aconselhável usar o CBR para fazer backup dos dados do disco antes da expansão. Para mais detalhes, consulte Gerenciamento de backups.
Pré-requisitos
- Você fez logon no ECS.
- Para saber como fazer logon em um ECS, consulte o Guia de usuário do Elastic Cloud Server.
- Para saber como efetuar logon em um BMS, consulte o Guia de usuário do Bare Metal Server.
- Você conectou o disco ao ECS, e o espaço adicional não foi alocado.
Verificar os sistemas de arquivos no disco a ser expandido
Antes de expandir a capacidade do disco, verifique se os sistemas de arquivos no disco podem ser montados corretamente.
- (Opcional) Se houver uma partição desmontada, execute o seguinte comando para montar a partição no diretório especificado:
mount Disk partition Mount point
Exemplo de comando:
mount /dev/xvdb1 /mnt/sdc
Se o sistema retornar um erro de montagem, verifique se o sistema de arquivos foi criado corretamente. Por exemplo, um usuário pode criar o sistema de arquivos para o disco /dev/xvdb em vez da partição /dev/xvdb1. Neste caso, o que montou é, na verdade o disco /dev/xvdb, mas não a partição /dev/xvdb1.
- Execute o seguinte comando para exibir as informações de montagem de disco:
df -TH
Informação semelhante à seguinte é exibida:
[root@ecs-b656 test]# df -TH Filesystem Type Size Used Avail Use% Mounted on /dev/xvda2 xfs 11G 7.4G 3.2G 71% / devtmpfs devtmpfs 4.1G 0 4.1G 0% /dev tmpfs tmpfs 4.1G 82k 4.1G 1% /dev/shm tmpfs tmpfs 4.1G 9.2M 4.1G 1% /run tmpfs tmpfs 4.1G 0 4.1G 0% /sys/fs/cgroup /dev/xvda3 xfs 1.1G 39M 1.1G 4% /home /dev/xvda1 xfs 1.1G 131M 915M 13% /boot /dev/xvdb1 ext4 11G 38M 9.9G 1% /mnt/sdc
Na saída do comando, o sistema de arquivos da partição /dev/xvdb1 é ext4 e a partição é montada em /mnt/sdc.
- Execute o seguinte comando para alternar para o diretório de montagem para exibir os arquivos no disco:
ll Mounting directory
Exemplo de comando:
ll /mnt/sdc
Se os arquivos no disco podem ser visualizados, o disco é normal e pode ser expandido.
Visualizar o estilo da partição
Antes de alocar o espaço adicional, consulte o estilo de partição de disco atual. Se MBR for usado, você pode usar a ferramenta de particionamento fdisk ou parted. Se GPT for usado, você deve usar a ferramenta de particionamento parted.
- Execute o seguinte comando para exibir o estilo de partição de disco atual:
fdisk -l
Informação semelhante à seguinte é exibida:[root@ecs-1120 linux]# fdisk -l Disk /dev/xvda: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000c5712 Device Boot Start End Blocks Id System /dev/xvda1 2048 83886079 41942016 83 Linux WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion. Disk /dev/xvdb: 161.1 GB, 161061273600 bytes, 314572800 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: gpt # Start End Size Type Name 1 34 209715166 100G Microsoft basic opt 2 209715167 314572766 50G Microsoft basic opt1 WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion. Disk /dev/xvdc: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: gpt # Start End Size Type Name 1 34 16777215 8G Microsoft basic opt 2 16777216 83884031 32G Microsoft basic opt
Na saída do comando, o parâmetro Disk label type indica o estilo de partição de disco. O valor dos indica o estilo da partição MBR, e o valor gpt indica o estilo da partição GPT.
Criação de uma nova partição
O exemplo a seguir mostra como fazer uso do espaço adicional de um disco do sistema criando uma nova partição e montando a partição em /opt sem interromper os serviços.
- Execute o seguinte comando para exibir as informações de partição de disco:
fdisk -l
Informação semelhante à seguinte é exibida: (/dev/xvda é o disco do sistema.)[root@ecs-bab9 test]# fdisk -l Disk /dev/xvda: 64.4 GB, 64424509440 bytes, 125829120 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000cc4ad Device Boot Start End Blocks Id System /dev/xvda1 * 2048 2050047 1024000 83 Linux /dev/xvda2 2050048 22530047 10240000 83 Linux /dev/xvda3 22530048 24578047 1024000 83 Linux /dev/xvda4 24578048 83886079 29654016 5 Extended /dev/xvda5 24580096 26628095 1024000 82 Linux swap / Solaris
- Execute o seguinte comando para entrar em fdisk:
fdisk /dev/xvda
Informação semelhante à seguinte é exibida:[root@ecs-2220 ~]# fdisk /dev/xvda 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):
- Digite n e pressione Enter para criar uma nova partição.
ECS
Command (m for help): n All primary partitions are in use Adding logical partition 6 First sector (26630144-83886079, default 26630144):
Se o estilo de partição MBR for usado, um máximo de 4 partições primárias ou 3 partições primárias e 1 partição estendida podem ser criadas. A partição estendida não pode ser usada diretamente e deve ser dividida em partições lógicas antes do uso.
Neste exemplo, o número máximo de partições primárias foi alcançado para o disco do sistema, e o disco já tem 5 partições (3 partições primárias e 2 partições lógicas). Portanto, o sistema cria automaticamente uma sexta partição lógica na partição estendida.
Para exibir as operações de exemplo caso o número máximo de partições primárias não seja atingido para o disco do sistema, consulte Extensão de partições e sistemas de arquivos de um disco de sistema no Linux (fdisk).
- Digite o sector inicial da nova partição, por exemplo, o valor padrão, e pressione Enter.
O sector de início deve ser maior do que o sector final da partição existente.
Informação semelhante à seguinte é exibida:First sector (26630144-83886079, default 26630144): Using default value 26630144 Last sector, +sectors or +size{K,M,G} (26630144-83886079, default 83886079):
- Insira o sector final da nova partição e pressione Enter.
O sector final padrão é usado neste exemplo.
Informação semelhante à seguinte é exibida:Last sector, +sectors or +size{K,M,G} (26630144-83886079, default 83886079): Using default value 83886079 Partition 6 of type Linux and of size 27.3 GiB is set Command (m for help):
- Digite p e pressione Enter para exibir a nova partição.
Informação semelhante à seguinte é exibida:
Disk /dev/xvda: 64.4 GB, 64424509440 bytes, 125829120 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000cc4ad Device Boot Start End Blocks Id System /dev/xvda1 * 2048 2050047 1024000 83 Linux /dev/xvda2 2050048 22530047 10240000 83 Linux /dev/xvda3 22530048 24578047 1024000 83 Linux /dev/xvda4 24578048 83886079 29654016 5 Extended /dev/xvda5 24580096 26628095 1024000 82 Linux swap / Solaris /dev/xvda6 26630144 83886079 28627968 83 Linux Command (m for help):
- Digite w e pressione Enter para gravar as alterações na tabela de partições.
Informação semelhante à seguinte é exibida:
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.
A partição é criada.
Caso queira descartar as alterações feitas antes, você pode sair do fdisk digitando q.
- Execute o seguinte comando para sincronizar a nova tabela de partição com o sistema operacional:
partprobe
- Execute o seguinte comando para definir o formato do sistema de arquivos para a nova partição:
(O sistema de arquivos ext4 é usado neste exemplo.)
mkfs -t ext4 /dev/xvda6
O procedimento para definir o sistema de arquivos xfs é o mesmo que para o sistema de arquivos ext3 ou ext4. O comando para criar o sistema de arquivos xfs é mkfs -t xfs /dev/xvda6.
Informação semelhante à seguinte é exibida:[root@ecs-bab9 test]# mkfs -t ext4 /dev/xvda6 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1790544 inodes, 7156992 blocks 357849 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2155872256 219 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
A formatação demora um pouco e você precisa observar o status de execução do sistema. Uma vez done é exibido na saída do comando, a formatação está completa.
- Execute o seguinte comando para montar a nova partição em um diretório que demanda espaço, por exemplo /opt:
mount /dev/xvda6 /opt
Informação semelhante à seguinte é exibida:[root@ecs-bab9 test]# mount /dev/xvda6 /opt [root@ecs-bab9 test]#
Se a nova partição estiver montada em um diretório que não esteja vazio, os subdiretórios e arquivos no diretório serão ocultos. Portanto, é aconselhável montar a nova partição em um diretório vazio ou em um novo diretório. Se a nova partição tiver de ser montada num diretório que não esteja vazio, mova temporariamente os subdiretórios e arquivos deste diretório para outro diretório. Depois que a partição for montada com êxito, mova os subdiretórios e os arquivos de volta.
- Execute o seguinte comando para visualizar o resultado da montagem:
df -TH
Informação semelhante à seguinte é exibida:[root@ecs-bab9 test]# df -TH Filesystem Type Size Used Avail Use% Mounted on /dev/xvda2 xfs 11G 7.4G 3.2G 71% / devtmpfs devtmpfs 4.1G 0 4.1G 0% /dev tmpfs tmpfs 4.1G 82k 4.1G 1% /dev/shm tmpfs tmpfs 4.1G 9.2M 4.1G 1% /run tmpfs tmpfs 4.1G 0 4.1G 0% /sys/fs/cgroup /dev/xvda3 xfs 1.1G 39M 1.1G 4% /home /dev/xvda1 xfs 1.1G 131M 915M 13% /boot /dev/xvda6 ext4 29G 47M 28G 1% /opt
Recriar uma partição existente
O exemplo a seguir mostra como fazer uso do espaço adicional de um disco conectado a um servidor recriando a partição /dev/xvdb1 e montando a partição em /mnt/sdc. Durante esse processo, os serviços serão interrompidos.
Durante uma expansão, o espaço adicional é adicionado ao final do disco. Quando o disco tem várias partições, apenas a partição no final deste disco pode ser estendida.
- Execute o seguinte comando para exibir as informações de partição de disco:
fdisk -l
Informação semelhante à seguinte é exibida:[root@ecs-b656 test]# fdisk -l Disk /dev/xvda: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000cc4ad Device Boot Start End Blocks Id System /dev/xvda1 * 2048 2050047 1024000 83 Linux /dev/xvda2 2050048 22530047 10240000 83 Linux /dev/xvda3 22530048 24578047 1024000 83 Linux /dev/xvda4 24578048 83886079 29654016 5 Extended /dev/xvda5 24580096 26628095 1024000 82 Linux swap / Solaris Disk /dev/xvdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xb00005bd Device Boot Start End Blocks Id System /dev/xvdb1 2048 20971519 10484736 83 Linux
Na saída do comando, a capacidade total do disco /dev/xvdb é de 21,5 GB, e o disco tem apenas uma partição, dev/xvdb1. O sector do começo da separação é 2048, e seu sector final é 20971519.
Veja a capacidade /dev/xvdb e verifique se o espaço adicional está incluído.- Se o espaço adicional não estiver incluído, atualize a capacidade de acordo com Extensão de partições e sistemas de arquivos de um disco de dados SCSI no Linux (fdisk).
- Se o espaço adicional estiver incluído, anote os sectores inicial e final da partição dev/xvdb1 e vá para 2. Estes valores serão utilizados nas seguintes operações.
- Execute o seguinte comando para desmontar a partição:
umount /mnt/sdc
- Execute o seguinte comando para entrar no fdisk e digite d para excluir a partição /dev/xvdb1:
fdisk /dev/xvdb
Informação semelhante à seguinte é exibida:[root@ecs-b656 test]# fdisk /dev/xvdb 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): d Selected partition 1 Partition 1 is deleted Command (m for help):
Depois de excluir a partição, recrie a partição de acordo com as etapas a seguir e os dados nesse disco não serão perdidos.
- Digite n e pressione Enter para criar uma nova partição.
Inserir n cria uma nova partição.
Informação semelhante à seguinte é exibida:Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended
Existem dois tipos de partições de disco:- Escolher p cria uma partição primária.
- Escolher e cria uma partição estendida.
- Certifique-se de que o tipo de partição inserido é o mesmo que a partição tinha antes. Neste exemplo, uma partição primária é usada. Portanto, insira p e pressione Enter para criar uma partição primária.
Informação semelhante à seguinte é exibida:
Select (default p): p Partition number (1-4, default 1):
Na saída do comando, Partition number especifica o número da partição primária.
- Certifique-se de que o número de partição inserido é o mesmo que a partição tinha antes. Neste exemplo, a partição número 1 é usada. Portanto, insira 1 e pressione Enter.
Informação semelhante à seguinte é exibida:
Partition number (1-4, default 1): 1 First sector (2048-41943039, default 2048):
Na saída do comando, First sector especifica o sector inicial.
Os dados serão perdidos se as seguintes operações forem realizadas:- Selecione um sector inicial diferente do que a partição tinha antes.
- Selecione um sector final menor do que a partição tinha antes.
- Certifique-se de que o sector inicial inserido seja o mesmo que a partição tinha antes. Neste exemplo, o sector inicial 2048 é gravado em 1. Portanto, insira 2048 e pressione Enter.
Informação semelhante à seguinte é exibida:
First sector (2048-41943039, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
Na saída do comando, Last sector especifica o sector final.
- Certifique-se de que o sector final inserido seja maior ou igual ao sector final gravado em 1. Neste exemplo, o sector de extremidade registrado é 20971519, e o sector final padrão é usado. Portanto, insira 41943039 e pressione Enter.
Informação semelhante à seguinte é exibida:
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): Using default value 41943039 Partition 1 of type Linux and of size 20 GiB is set Command (m for help):
A partição foi criada com sucesso.
- Digite p e pressione Enter para exibir os detalhes sobre a partição nova.
Informação semelhante à seguinte é exibida:
Command (m for help): p Disk /dev/xvdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xb00005bd Device Boot Start End Blocks Id System /dev/xvdb1 2048 41943039 20970496 83 Linux Command (m for help):
Detalhes sobre a partição /dev/xvdb1 são exibidos.
- Digite w e pressione Enter para gravar as alterações na tabela de partições.
Informação semelhante à seguinte é exibida:
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
A partição é criada.
Caso queira descartar as alterações feitas antes, você pode sair do fdisk digitando q.
- Execute as seguintes operações com base no sistema de arquivos do disco:
- Para sistema de arquivos ext3 ou ext4
- Execute o seguinte comando para verificar a exatidão do sistema de arquivos em /dev/xvdb1:
e2fsck -f /dev/xvdb1
Informação semelhante à seguinte é exibida:[root@ecs-b656 test]# e2fsck -f /dev/xvdb1 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/xvdb1: 11/655360 files (0.0% non-contiguous), 83137/2621184 blocks
- Execute o seguinte comando para estender o tamanho do sistema de arquivos em /dev/xvdb1:
resize2fs /dev/xvdb1
Informação semelhante à seguinte é exibida:[root@ecs-b656 test]# resize2fs /dev/xvdb1 resize2fs 1.42.9 (28-Dec-2013) Resizing the filesystem on /dev/xvdb1 to 5242624 (4k) blocks. The filesystem on /dev/xvdb1 is now 5242624 blocks long.
- Execute o seguinte comando para montar a nova partição em /mnt/sdc:
mount /dev/xvdb1 /mnt/sdc
- Execute o seguinte comando para verificar a exatidão do sistema de arquivos em /dev/xvdb1:
- Para o sistema de arquivos xfs
- Execute o seguinte comando para montar a nova partição em /mnt/sdc:
mount /dev/xvdb1 /mnt/sdc
- Execute o seguinte comando para estender o tamanho do sistema de arquivos em /dev/xvdb1:
sudo xfs_growfs /dev/xvdb1
- Execute o seguinte comando para montar a nova partição em /mnt/sdc:
- Para sistema de arquivos ext3 ou ext4
- Execute o seguinte comando para visualizar o resultado da montagem:
df -TH
Configurar montagem automática do disco no início do sistema
Para montar partições automaticamente na inicialização do sistema, não especifique partições, por exemplo, /dev/xvdb1, em /etc/fstab porque a sequência de dispositivos de nuvem e, portanto, seus nomes podem mudar durante a parada ou inicialização do servidor. Você é aconselhado a usar o UUID em /etc/fstab para definir a montagem automática no início do sistema.
UUID é a cadeia de caracteres única para partições de disco em um sistema Linux.
- Execute o seguinte comando para consultar o UUID da partição:
blkid Disk partition
Neste exemplo, execute o seguinte comando para consultar o UUID da partição /dev/xvdb1:
blkid /dev/xvdb1
Informação semelhante à seguinte é exibida:
[root@ecs-b656 test]# blkid /dev/xvdb1 /dev/xvdb1: UUID="1851e23f-1c57-40ab-86bb-5fc5fc606ffa" TYPE="ext4"
O UUID da partição /dev/xvdb1 é exibido.
- Execute o seguinte comando para abrir o arquivo fstab usando o editor vi:
vi /etc/fstab
- Pressione i para entrar no modo de edição.
- Mova o cursor para o final do arquivo e pressione Enter. Em seguida, adicione as seguintes informações:
UUID=1851e23f-1c57-40ab-86bb-5fc5fc606ffa /mnt/sdc ext3 defaults 0 2
UUID=1851e23f-1c57-40ab-86bb-5fc5fc606ffa /mnt/sdc ext4 defaults 0 2
O conteúdo anterior é usado apenas para referência. Adicione as informações que são usadas no ambiente. Os parâmetros são descritos a seguir:- A primeira coluna indica o UUID da partição obtido em 1.
- A segunda coluna indica o diretório no qual a partição está montada. Você pode consultar o ponto de montagem usando o comando df -TH.
- A terceira coluna indica o formato do sistema de arquivos da partição. Você pode consultar o formato do sistema de arquivos usando o comando df -TH.
- A quarta coluna indica a opção de montagem de partição. Normalmente, esse parâmetro é definido como defaults.
- A quinta coluna indica a opção de backup de despejo do Linux.
- 0: não use o backup de dump do Linux. Normalmente, o backup de despejo não é usado e você pode definir esse parâmetro como 0.
- 1: use o backup de dump do Linux.
- A sexta coluna indica a opção fsck, ou seja, se deve usar o fsck para verificar o disco anexado durante a inicialização.
- 0: não use fsck.
- Se o ponto de montagem for a partição raiz (/), este parâmetro deve ser definido como 1.
Quando este parâmetro é definido como 1 para a partição raiz, este parâmetro para outras partições deve começar com 2 para que o sistema verifique as partições em ordem crescente dos valores.
- Pressione Esc, insira :wq e pressione Enter.
O sistema salva as configurações e sai do editor vi.