coluna “blocks” na saída do fdisk

5

Na minha máquina, fdisk -lu /dev/sda exibe a seguinte saída:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    73947135    36972544   83  Linux
/dev/sda2        73949182    78139391     2095105    5  Extended
/dev/sda5        73949184    78139391     2095104   82  Linux swap / Solaris

O que é essa unidade de "blocos"? Um "bloco fdisk" é um 1KiB? De onde vem essa unidade?

    
por Martin 21.03.2014 / 11:02

4 respostas

5

Você deve conhecer alguns conceitos como sector , track , cylinder para entender block . Aqui está uma definição simples:

Blocks and clusters

The Unix communities employ the term block to refer to a sector or group of
sectors. For example, the Linux fdisk utility normally displays partition
table information using 1024-byte blocks, but also uses the word sector to
help describe a disk's size in the phrase, 63 sectors per track.

Você pode ler mais neste link .

    
por 21.03.2014 / 11:19
7

Nas primeiras versões do Unix, um bloco continha 512 bytes desde o hardware, passando pelo sistema de arquivos, passando pelo código C, até as ferramentas do usuário.

Hoje em dia existem muitos tipos diferentes de hardware e muitos sistemas de arquivos diferentes (alguns dos quais não têm noção de tamanho de bloco), então “tamanho de bloco” é uma definição arbitrária escolhida por cada ferramenta. A maioria dos sistemas Unix tradicionais manteve o tamanho de bloco de 512 bytes por padrão para compatibilidade com versões anteriores, e é isso que o POSIX exige para vários comandos ( dd , du , df , ls , find -size ,…) . Vários utilitários GNU / Linux exibem unidades de 1kB por padrão ( du , df , ls ,…) a menos que sejam invocados no modo POSIXLY_CORRECT . Eu acho que a mudança para 1kB é motivada apenas porque é muito mais amigável para os humanos.

O utilitário fdisk do Linux usou blocos de 1kB para dois decares - o cabeçalho também poderia ter lido kB . No contexto do fdisk do Linux, “bloco” sempre significa 1kB. A unidade padrão mudou em versão 2.25 , agora a unidade é de 512 bytes. No modo expert, a unidade sempre foi de 512 bytes. 512 byte é uma unidade de baixo nível mais natural para discos de PC tradicionais porque eles escrevem em setores de 512 bytes, e os limites de partição são alinhados a 512 bytes, portanto, usar 1kB como a unidade leva a ½ frações. Discos grandes modernos têm setores maiores (mas “setores” são amplamente usados para significar 512 bytes, independentemente de quaisquer características físicas ou lógicas do disco), e partições GPT são normalmente alinhadas em 1MB.

    
por 22.03.2014 / 01:39
2

Eu não acredito que fdisk faça 1k bloco relatórios - ou que ele relate em blocos . Da página man :

-u, --units[=unit]

  • When listing partition tables, show sizes in sectors or in cylinders. The default is to show sizes in sectors. For backward compatibility, it is possible to use the option without the unit argument - then the default is used. Note that the optional unit argument cannot be separated from the -u option by a space, the correct form is for example -u=cylinders.

Ok, então fdisk não lista a saída como blocos , então. Ele usa cilindros ou setores por padrão. Bem, aqui está o que wikipedia tem a dizer sobre um setor :

In computer disk storage, a sector is a subdivision of a track on a magnetic disk or optical disc. Each sector stores a fixed amount of user-accessible data, traditionally 512 bytes for hard disk drives (HDDs) and 2048 bytes for CD-ROMs and DVD-ROMs. Newer HDDs use 4096-byte (4 KiB) sectors, which are known as the Advanced Format (AF).

Agora isso faz mais sentido para mim. Eu nunca tinha ouvido falar de um setor 1K antes, e então me atrapalhar com isso me confundiu. No entanto, algumas pesquisas revelaram que havia uma pequena sequência de unidades da marca Seagate que foram enviadas para uma parte do ano de 2005 que fez relatar um tamanho de setor de 1K.

E, de qualquer forma, está bem na saída do cabeçalho:

Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sector
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: E12A6152-B1E6-4D4A-9799-491B339BA633

Device        Start       End   Sectors  Size Type
/dev/sda1      4096   6197247   6193152    3G EFI System
/dev/sda2   6293504  31459327  25165824   12G Linux filesystem
/dev/sda3  31459328 234441614 202982287 96.8G Linux filesystem

Veja? Unidades: setores de 1 * 512 = 512 bytes ...

    
por 13.07.2015 / 00:12
0

Na minha versão do Ubuntu 14.04, o fdisk lista a partição em blocos, mas não me diz quantos setores existem em cada bloco. No entanto, ele fornece o número de setor inicial e final para cada partição e, quando subtraio o ponto inicial do ponto final, obtenho exatamente o dobro do número de setores que existem blocos na partição. Ou seja, existem dois setores em cada bloco no Ubuntu 12.04.

    
por 05.02.2016 / 17:54

Tags