Por que minhas partições não mostram a capacidade correta em um disco rígido de 4096 bytes?

2

Depois de ler muito sobre por que os novos discos rígidos de blocos físicos de 4096 bytes devem ser particionados, cuidando do alinhamento ( Linux em discos do setor 4KB: conselhos práticos , O que é o alinhamento de partições e por que eu preciso disso? , Por que eu tenho que" alinhar "as partições no meu novo disco rígido Western Digital? , eu estava convencido a ter certeza meu novo disco foi devidamente particionado e formatado com blocos de 4096 bytes.

Então particionei usando fdisk -b 4096 /dev/sdb e especifiquei um tamanho de 50GB para sdb1 , 412GB para sdb2 e o espaço restante para sdb3 (3.8GB para sdb3), levando à seguinte tabela de partições:

    Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 7600 cylinders, total 122096646 sectors
Units = sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x1c7f9c20

       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1   *         256    13107455    52428800   83  Linux
    /dev/sdb2        13107456   121110783   432013312   83  Linux
    /dev/sdb3       121110784   122096645     3943448   82  Linux swap

Em seguida, formatei os dois sdb1 e sdb2 com ext4:

# mkfs.ext4 /dev/sdb1 
mke2fs 1.42.4 (12-June-2012)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
409600 inodes, 1638400 blocks
81920 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1677721600
50 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

# mkfs.ext4 /dev/sdb2 
mke2fs 1.42.4 (12-June-2012)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
3375104 inodes, 13500416 blocks
675020 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
412 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

e configure a área de troca:

# mkswap /dev/sdb3
Setting up swapspace version 1, size = 492924 KiB
no label, UUID=2d18a027-6c03-4b29-b03e-c0c7f61413c5

A primeira coisa estranha que notei foi o tamanho do swap relatado de apenas 492924 KiB. Então, depois de montar as partições recém-formatadas, descobri que elas parecem muito menores do que deveriam ser:

Filesystem                        Size  Used Avail Use% Mounted on
/dev/sdb1                         6.3G  222M  5.8G   4% /mnt/zip
/dev/sdb2                          52G  907M   48G   2% /mnt/memory

Por que isso está acontecendo? Existe alguma maneira de corrigir isso?

EDITAR:

Após a sugestão @Alexios, tentei reiniciar, mas / proc / partitions não foi alterado. Ambos / dev / sda e / dev / sdb são unidades idênticas de 500 GB, mas / dev / sda eu formatado desalinhado (usando o tamanho padrão do setor de 512 bytes iniciado após o setor 63) e / dev / sdb alinhado (usando o tamanho do setor 4096 iniciando após o setor 255 ). Como podemos ver, o sistema considera que / dev / sdb tem menos blocos que / dev / sda, embora ambos tenham sido particionados com os mesmos tamanhos:

# cat /proc/partitions 
major minor  #blocks  name

  11        0    4590208 sr0
   8        0  488386584 sda
   8        1   48829536 sda1
   8        2  437498145 sda2
   8        3    2058871 sda3
   8       16  488386584 sdb
   8       17    6553600 sdb1
   8       18   54001664 sdb2
   8       19     492931 sdb3
    
por Claudio 08.08.2012 / 08:59

1 resposta

3

O que está acontecendo é que a opção -b é um absurdo e nem deveria estar lá. Os números de setor registrados no MBR são sempre interpretados como unidades do tamanho do setor lógico do drive (512 bytes). Ao usar a opção -b , você está fazendo com que o fdisk divida todos os setores que ele registra por 8, então o kernel interpreta as partições como 1/8 do tamanho que você pretendia.

Se você usar parted em vez de fdisk , ele garantirá que suas partições sejam alinhadas corretamente automaticamente. Com fdisk , apenas certifique-se de que os setores iniciais sejam múltiplos de 8.

    
por 08.08.2012 / 21:15