Muitos programas seguem as mesmas convenções sobre unidades de tamanho ou "tamanho do bloco". Mas não é uma regra universal, pois cada programa geralmente pode "fazer o que quer", então leia definitivamente o manual ou página de informações de cada ferramenta para ter certeza.
Para particionar, eu definitivamente usaria o gparted, ele deve evitar qualquer confusão, mostrando quais unidades está usando com bastante clareza.
man resize2fs
Na verdade, o meu não diz que usa apenas MB (um milhão de bytes), mas sim:
The size parameter specifies the requested new size of the filesystem.
If no units are specified, the units of the size parameter shall be the
filesystem blocksize of the filesystem. Optionally, the size parameter
may be suffixed by one of the following the units designators: 's',
'K', 'M', or 'G', for 512 byte sectors, kilobytes, megabytes, or giga‐
bytes, respectively. The size of the filesystem may never be larger
than the size of the partition. If size parameter is not specified, it
will default to the size of the partition.
Note: when kilobytes is used above, I mean real, power-of-2 kilobytes,
(i.e., 1024 bytes), which some politically correct folks insist should
be the stupid-sounding ``kibibytes''. The same holds true for
megabytes, also sometimes known as ``mebibytes'', or gigabytes, as the
amazingly silly ``gibibytes''. Makes you want to gibber, doesn't it?
O fdisk mostra tamanhos em setores, de acordo com o que o dispositivo examinado diz que é um setor. Aqui está um exemplo de saída para um dispositivo pequeno: o tamanho é relatado como 3997 MB, 3997171712 bytes, que está usando o 1MB "maior" preferido do fabricante = 1.000.000 bytes:
$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 3997 MB, 3997171712 bytes
17 heads, 16 sectors/track, 28702 cylinders, total 7806976 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 identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 8192 7806975 3899392 b W95 FAT32
Você pode perceber que está me dizendo que a única partição são 3899392 blocos, mas subtrair o final do início gera duas vezes mais ... isso é estranho e incorreto, mas man fdisk
diz "fdisk é um programa de buggy que faz coisas confusas - geralmente acontece para produzir resultados razoáveis. Sua única vantagem é que ele oferece suporte a rótulos de disco BSD e outras tabelas de partição que não sejam do DOS. Evite-o se puder. "
Ele recomenda cfdisk
, que mostra com mais precisão (em blocos de 512 bytes):
$ sudo cfdisk -P s /dev/sdb
Partition Table for /dev/sdb
First Last
# Type Sector Sector Offset Length Filesystem Type (ID) Flag
-- ------- ----------- ----------- ------ ----------- -------------------- ----
Pri/Log 0 8191* 0# 8192*Free Space None
1 Primary 8192* 7806975* 0 7798784 W95 FAT32 (0B) None
parted mostra MB = 1.000.000 bytes por padrão, mas isso pode ser alterado com isso:
Model: Multi Flash Reader (scsi)
Disk /dev/sdb: 3997MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 4194kB 3997MB 3993MB primary ext3
mas as unidades podem ser alteradas com o comando units:
unit unit
Set unit as the unit to use when displaying locations and
sizes, and for interpreting those given by the user when
not suffixed with an explicit unit. unit can be one of
"s" (sectors), "B" (bytes), "kB", "MB", "GB", "TB", "%"
(percentage of device size), "cyl" (cylinders), "chs"
(cylinders, heads, sectors), or "compact" (megabytes for
input, and a human-friendly form for output).
No entanto, gparted
mostra os tamanhos em (meu preferido) M ou MiB (potências de 1024), e ele também pode fazer todas as alterações / reduções / redimensionamentos / formatações, se quiser, ou você só pode criar partições com ele e formatá-las posteriormente usando a partição "inteira" e não se preocupe com os tamanhos exatos.
Você pode querer ler a página coreutils.info em Tamanho do bloco:
2.3 Tamanho do bloco
Alguns programas GNU (pelo menos 'df', 'du' e 'ls') exibem tamanhos em "blocos". Você pode ajustar o tamanho do bloco e o método de exibição para facilitar a leitura dos tamanhos. O tamanho do bloco usado para exibição é independente de qualquer tamanho de bloco do sistema de arquivos. As contagens de blocos fracionários são arredondadas para o número inteiro mais próximo.
...
Um tamanho de bloco inteiro pode ser seguido por um sufixo para especificar um múltiplo desse tamanho. Uma letra de tamanho simples, ou uma seguida por 'iB', especifica um múltiplo usando potências de 1024. Uma letra de tamanho seguida de 'B' especifica potências de 1000. Por exemplo, '1M' e '1MiB' são equivalentes a '1048576', enquanto '1MB' é equivalente a '1000000'.
Um sufixo simples sem um número inteiro anterior atua como se '1' tivesse sido acrescentado, exceto que ele faz com que uma indicação de tamanho seja anexada à saída. Por exemplo, '--block-size = "kB"' exibe 3000 como '3kB'.
Os seguintes sufixos estão definidos. Tamanhos grandes como '1Y' podem ser rejeitados pelo seu computador devido a limitações de sua aritmética.
Kilobyte 'kB': 10 ^ 3 = 1000.
kibibyte 'k' 'K' 'KiB': 2 ^ 10 = 1024. 'K' é especial: o prefixo SI é 'k' e o prefixo ISO / IEC 80000-13 é 'Ki', mas a tradição e o POSIX usam ' k 'significa' KiB '.
Megabyte de 'MB': 10 ^ 6 = 1.000.000.
Mebibyte 'M' 'MiB': 2 ^ 20 = 1.048.576.
Gigabyte de 'GB': 10 ^ 9 = 1.000.000.000.
Gibibyte 'G' 'GiB': 2 ^ 30 = 1.073.741.824.
Terabyte de 'TB': 10 ^ 12 = 1.000.000.000.000.
Tebibyte 'T' 'TiB': 2 ^ 40 = 1.099.511.627.776.
Petabyte 'PB': 10 ^ 15 = 1.000.000.000.000.000.
Pebibyte 'P' 'PiB': 2 ^ 50 = 1.125.899.906.842.624.
Exabyte de 'EB': 10 ^ 18 = 1.000.000.000.000.000.000.
Exibidor de 'E' 'EiB': 2 ^ 60 = 1.152.921.504.606.846.976.
Zettabyte 'ZB': 10 ^ 21 = 1.000.000.000.000.000.000.000
'Z' 'ZiB' 2 ^ 70 = 1.180.591.620.717.411.303.424.
Yottabyte 'YB': 10 ^ 24 = 1.000.000.000.000.000.000.000.000.
'Y' 'YiB' 2 ^ 80 = 1.208.925.819.614.629.174.706.176.
Os padrões de tamanho de bloco podem ser substituídos por uma opção explícita '--block-size = SIZE'. A opção '-k' é equivalente a '--block-size = 1K', que é o padrão, a menos que a variável de ambiente 'POSIXLY_CORRECT' esteja configurada. A opção '-h' ou '- legível por humanos' é equivalente a '--block-size = legível por humanos'. A opção '--si' é equivalente a '--block-size = si'.