[DICA] Verifique se suas partições estão alinhadas

O alinhamento de partições é crucial para maximizar o desempenho e a vida útil de unidades de armazenamento modernas, especialmente SSDs (Solid State Drives) e HDs com tecnologia Advanced Format (setores de 4K). Quando uma partição está desalinhada, um arquivo pequeno pode ocupar dois blocos físicos em vez de um, forçando o disco a realizar operações de leitura/gravação em dobro.

parted

O comando parted possui uma ferramenta nativa de verificação de alinhamento (align-check

Verificar uma partição específica (ex: /dev/sda1)
optimal 1 é o numero da partição, sda2 optimal 2

sudo parted /dev/sda align-check optimal 1

Exemplo de saída

$ sudo parted /dev/sda align-check optimal 1
1 aligned

lsblk

O lsblk mostra a relação entre partições e discos físicos, permitindo checar o alinhamento de forma rápida.

Pode ser mostrando a topologia
Verifique a coluna ALIGNMENT. Se o valor for 0, a partição está alinhada.

lsblk -t

ou

lsblk -o NAME,ALIGNMENT

Exemplo de saída

$ lsblk -o NAME,ALIGNMENT
NAME   ALIGNMENT
sda            0
├─sda1         0
├─sda2         0
└─sda3         0
4 curtidas

Aplicar o realinhamento com gparted

    • Prepare o ambiente: Utilize um Live USB do GParted (como o do Ubuntu ou GParted Live), pois não é possível alterar partições montadas ou em uso.
    • Abra o GParted: Selecione o disco correto no canto superior direito (ex: /dev/sda ou /dev/nvme0n1).
    • Redimensionar/Mover:
  • Clique com o botão direito na partição que deseja alinhar e selecione “Redimensionar/Mover” (Resize/Move).
  • Alinhamento: Na opção “Alinhar para” (Align to), selecione MiB.
  • Nota: Mover a partição ligeiramente (mesmo que (1 MiB) pode forçar o realinhamento.
  1. Aplicar: Clique no botão de “check” verde (Aplicar todas as operações) na barra de ferramentas para iniciar a correção
2 curtidas

Obrigado pelas dicas, @swatquest !

Fiquei assombrado, de ver que meus 2 SSDs e suas 31 partições estão totalmente alinhados – embora eu jamais tenha tido nenhum cuidado com isso, que eu nem conhecia:

# date; lsblk -o name,mountpoint,label,fstype,size,fsused,fsuse%,alignment
Sat May  2 11:36:30 -03 2026
NAME    MOUNTPOINT                  LABEL     FSTYPE   SIZE FSUSED FSUSE% ALIGNMENT
sda                                                  447.1G                       0
|-sda1                              EFI       vfat       2G                       0
|-sda2  /run/media/flavio/Linux1    Linux1    btrfs     50G  27.9G    56%         0
|-sda3  /run/media/flavio/Linux2    Linux2    ext4      30G  18.2G    62%         0
|-sda4  /run/media/flavio/Linux3    Linux3    ext4      30G  15.9G    54%         0
|-sda5  /run/media/flavio/Linux4    Linux4    ext4      30G  17.6G    60%         0
|-sda6  /run/media/flavio/Linux5    Linux5    ext4      30G     2M     0%         0
|-sda7  /run/media/flavio/Linux6    Linux6    ext4      30G  17.2G    58%         0
|-sda8  /run/media/flavio/Home1     Home1     xfs       15G   9.5G    63%         0
|-sda9  /run/media/flavio/Home2     Home2     xfs       15G   9.3G    63%         0
|-sda10 /run/media/flavio/Home3     Home3     ext4      15G   4.9G    34%         0
|-sda11 /run/media/flavio/Home4     Home4     ext4      15G   8.4G    57%         0
|-sda12 /run/media/flavio/Home5     Home5     xfs       15G   7.5G    50%         0
|-sda13                                       swap      11G                       0
|-sda14 /run/media/flavio/Home6     Home6     ext4      15G   6.4G    44%         0
`-sda15 /run/media/flavio/Warehouse Warehouse ext4   144.1G  78.2G    56%         0
sdb                                                  447.1G                       0
|-sdb1  /run/media/flavio/Linux7    Linux7    ext4      30G  14.2G    48%         0
|-sdb2  /run/media/flavio/Linux8    Linux8    ext4      30G     2M     0%         0
|-sdb3  /run/media/flavio/Linux9    Linux9    ext4      30G    16G    54%         0
|-sdb4  /run/media/flavio/Linux10   Linux10   ext4      30G     2M     0%         0
|-sdb5  /                           Linux11   ext4      30G   9.9G    34%         0
|-sdb6  /run/media/flavio/Linux12   Linux12   ext4      30G  11.6G    40%         0
|-sdb7  /run/media/flavio/Home7     Home7     ext4      15G     7G    48%         0
|-sdb8  /run/media/flavio/Home8     Home8     ext4      15G   5.8G    39%         0
|-sdb9  /run/media/flavio/Home9     Home9     ext4      15G   6.3G    43%         0
|-sdb10 /run/media/flavio/Home10    Home10    ext4      15G   6.1G    41%         0
|-sdb11 /home                       Home11    ext4      15G  10.9G    74%         0
|-sdb12 /run/media/flavio/Home12    Home12    ext4      15G   7.9G    54%         0
|-sdb13 /run/media/flavio/Midia     Midia     ext4   142.6G  77.2G    55%         0
|-sdb14 /run/media/flavio/Sites     Sites     ext4       2G   1.2G    62%         0
|-sdb15 /run/media/flavio/Works     Works     ext4       2G    24K     0%         0
`-sdb16 /boot/efi                   EFI2      vfat     511M   6.7M     1%         0
sr0                                                   1024M                       0


# lsblk -t
[sudo] password for flavio:
NAME    ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED       RQ-SIZE  RA  WSAME
sda             0    512      0     512     512    0 mq-deadline      64 128     0B
|-sda1          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sda2          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sda3          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sda4          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sda5          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sda6          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sda7          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sda8          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sda9          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sda10         0    512      0     512     512    0 mq-deadline      64 128     0B
|-sda11         0    512      0     512     512    0 mq-deadline      64 128     0B
|-sda12         0    512      0     512     512    0 mq-deadline      64 128     0B
|-sda13         0    512      0     512     512    0 mq-deadline      64 128     0B
|-sda14         0    512      0     512     512    0 mq-deadline      64 128     0B
`-sda15         0    512      0     512     512    0 mq-deadline      64 128     0B
sdb             0    512      0     512     512    0 mq-deadline      64 128     0B
|-sdb1          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sdb2          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sdb3          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sdb4          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sdb5          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sdb6          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sdb7          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sdb8          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sdb9          0    512      0     512     512    0 mq-deadline      64 128     0B
|-sdb10         0    512      0     512     512    0 mq-deadline      64 128     0B
|-sdb11         0    512      0     512     512    0 mq-deadline      64 128     0B
|-sdb12         0    512      0     512     512    0 mq-deadline      64 128     0B
|-sdb13         0    512      0     512     512    0 mq-deadline      64 128     0B
|-sdb14         0    512      0     512     512    0 mq-deadline      64 128     0B
|-sdb15         0    512      0     512     512    0 mq-deadline      64 128     0B
`-sdb16         0    512      0     512     512    0 mq-deadline      64 128     0B
sr0             0    512      0     512     512    0 mq-deadline      64 128     0B


# parted /dev/sda align-check optimal 1
1 aligned

# parted /dev/sdb align-check optimal 1
1 aligned

# parted /dev/sda1 align-check optimal 1
1 aligned
# parted /dev/sda2 align-check optimal 1
1 aligned
# parted /dev/sda3 align-check optimal 1
1 aligned
# parted /dev/sda4 align-check optimal 1
1 aligned
# parted /dev/sda5 align-check optimal 1
1 aligned
# parted /dev/sda6 align-check optimal 1
1 aligned
# parted /dev/sda7 align-check optimal 1
1 aligned
# parted /dev/sda8 align-check optimal 1
1 aligned
# parted /dev/sda9 align-check optimal 1
1 aligned
# parted /dev/sda10 align-check optimal 1
1 aligned
# parted /dev/sda11 align-check optimal 1
1 aligned
# parted /dev/sda12 align-check optimal 1
1 aligned
# parted /dev/sda13 align-check optimal 1
1 aligned
# parted /dev/sda14 align-check optimal 1
1 aligned
# parted /dev/sda15 align-check optimal 1
1 aligned

# parted /dev/sdb1 align-check optimal 1
1 aligned
# parted /dev/sdb2 align-check optimal 1
1 aligned
# parted /dev/sdb3 align-check optimal 1
1 aligned
# parted /dev/sdb4 align-check optimal 1
1 aligned
# parted /dev/sdb5 align-check optimal 1
1 aligned
# parted /dev/sdb6 align-check optimal 1
1 aligned
# parted /dev/sdb7 align-check optimal 1
1 aligned
# parted /dev/sdb8 align-check optimal 1
1 aligned
# parted /dev/sdb9 align-check optimal 1
1 aligned
# parted /dev/sdb10 align-check optimal 1
1 aligned
# parted /dev/sdb11 align-check optimal 1
1 aligned
# parted /dev/sdb12 align-check optimal 1
1 aligned
# parted /dev/sdb13 align-check optimal 1
1 aligned
# parted /dev/sdb14 align-check optimal 1
1 aligned
# parted /dev/sdb15 align-check optimal 1
1 aligned
# parted /dev/sdb16 align-check optimal 1
1 aligned

Tudo se alinha “naturalmente”, sem a gente ter de se preocupar?

Desalinhamento é figurinha difícil de acontecer?

É fruto de algum acontecimento improvável causado por software com defeito porém capaz de funcionar para causar falhas?

Fruto de defeito físico aleatório?

2 curtidas

Normalmente quando é feito de modo automático é difícil de ocorrer.

Modo manual pode acontecer.

1 curtida

aqui faço de modo diferente

~$ sudo parted /dev/sda align-check optimal 1
1 aligned
$ sudo parted /dev/sda align-check optimal 2
2 aligned
$ sudo parted /dev/sda align-check optimal 3
3 aligned

Não sabia que funcionava assim também

parted /dev/sda13 align-check optimal 1
1 aligned

Suspeitei desde o princípio… :grimacing:

Uma das torturas mais cruéis (e desnecessárias!), que se pode impingir ao “candidato a iniciante”, no Linux, é aquela coisa de “fdisk”, “cfdisk” etc. – com uma numerologia esdrúxula, de entortar o nervo ótico da vítima:

Talvez tenha sido a coisa mais desanimadora que encontrei nas “revistinhas de linux”, entre 2003 e 2007 – com a suspeita subliminar contra o GParted, supostamente menos confiável.

E talvez seja, ainda hoje, a fonte da famigerada “dificuldade do Arch Linux”.

Tenho a impressão de que desde +/-2007, resolvi experimentar o GParted – e deu certo 1 vez, 2 vezes, 3 vezes – e nunca mais perdi meu tempo com aquela numerologia aterrorizante.

2 curtidas

Uai…

Parece que ele ignora qualquer número grudado em “sda” (sda1, sda2, sda16) – e considera somente o número lá no final, depois do “optimal”:

$ sudo parted /dev/sdb16 align-check optimal 1
1 aligned

$ sudo parted /dev/sdb16 align-check optimal  
Partition number? 1                                                       
1 aligned
 
$ sudo parted /dev/sdb16 align-check optimal
Partition number? 16                                                      
Error: Partition doesn't exist.

… e no entanto…

$ sudo parted /dev/sdb align-check optimal 1
1 aligned
$ sudo parted /dev/sdb align-check optimal 2
2 aligned
(...)
$ sudo parted /dev/sdb align-check optimal 15
15 aligned
$ sudo parted /dev/sdb align-check optimal 16
16 aligned
$ sudo parted /dev/sdb align-check optimal 17
Error: Partition doesn't exist.

Desalinhamento era comum uns 30-40 anos atrás, na época dos primeiros computadores. O particionamento era feito manual e as pessoas, para usar cada kilobyte do disco, começava a primeira partição no bloco 2 (depois da mbr). Outro acontecimento comum era a pessoa especificar o tamanho da partição pelos blocos e usar números redondos como início no bloco 100 e final no bloco 200000 (isso já época dos discos em LBA, os discos CHS seria papo pra outro tópico nostálgico). Número redondo na base 10 quase nunca alinha com os redondos da base 2. Na época dos discos também eram menos otimizados, então eles efetivamente liam cada bloco que era pedido. Alinhamento não era problema de desempenho.

Mas quando o usuário fazia upgrade de disco e clonava o disco antigo pro novo, tinha essa chance da partição estar desalinhada “sem problemas” num disco, e passar a causar “perda de performance” no disco novo. Só que essa perda não era sentida pois o hardware novo era muito mais rápido.

Mas a situação ficou realmente ruim para desalinhamento quando começaram a surgir os discos de estado sólido (SSD). Afinal, a escrita adicional em um disco rotacional não “gastava” vida útil, mas nos SSD sim.

Felizmente também, muitos anos atrás, chuto de uns 15 a 20 anos, as ferramentas de particionamento começaram a alinhar as partições automaticamente. Pra ficar desalinhado, o usuário precisava efetivamente forçar a situação.

4 curtidas