Respostas:
No terminal, você pode usar o diskutil para obter informações sobre a unidade, incluindo o tamanho do bloco do dispositivo:
$ diskutil info / | grep "Block Size"
Device Block Size: 512 Bytes
Primeiro, observe que o tamanho do bloco do dispositivo é diferente do tamanho do bloco em uso pelo sistema de arquivos. O valor anterior, conforme relatado pelo diskutil, refere-se ao tamanho do bloco bruto usado pelo hardware. Não encontrei uma maneira fácil de verificar o último valor pela linha de comando, mas você pode simplesmente criar um arquivo de zero byte e obter informações no Finder. Dirá 0 bytes, mas 4k serão usados no disco.
Segundo, você pode criar um sistema de arquivos HFS + com tamanhos de bloco maiores que 4k usando o programa de linha de comando newfs_hfs
. A maneira mais fácil é usar o Utilitário de Disco para particionar a unidade e criar uma partição com a formatação padrão e, em seguida, use /bin/df
para determinar o dispositivo de bloco (apenas um exemplo:) /dev/disk0s2
. Em seguida, desmonte essa partição (usando umount /dev/diskXXX
o Utilitário de Disco) e, para reformatar como HFS + com blocos de 64k, faça o seguinte:
newfs_hfs -v VolumeName -b 65536 /dev/disk0s2
Use a dica Obter informações acima para verificar se um arquivo pequeno agora ocupa 64k no disco (pode ser 65k para unidades com 10 potências).
O desempenho é o principal motivo pelo qual você pode querer fazer isso, se a maioria dos dados a serem armazenados forem arquivos grandes (como MP3s, fotos, vídeos, arquivos .zip etc.), além de ajudar a manter baixa a fragmentação do disco. Obviamente, não se preocupe se você planeja armazenar principalmente arquivos pequenos.
Descobri que em unidades grandes (> 1 TB) formatadas como HFS com o tamanho de bloco padrão de 4k, quando a unidade se aproxima da capacidade, o desempenho de gravação diminui enormemente. Suponho que isso se deva à fragmentação da partição e à necessidade de procurar e bicar blocos livres para gravar os últimos 1% dos dados. Espero que tamanhos maiores de blocos aliviem um pouco esse problema.
stat -f %k .
.
diskutil info
às vezes, informamos o tamanho do bloco de alocação: Allocation Block Size: 32768 Bytes
assim como o tamanho do bloco do dispositivo. Achei isso verdade ao usar o dispositivo bruto rdisk2s0
com um cartão SD no leitor de cartão. Não sei como fazê-lo funcionar no disco rígido.
O tamanho do bloco do dispositivo OS X pode ser determinado executando o seguinte comando em um prompt da janela Terminal:
diskutil info / | grep "Block Size"
Que produzirá as seguintes informações:
Device Block Size: 512 Bytes
O tamanho do bloco do sistema de arquivos pode ser determinado usando o stat
utilitário:
stat -f %k .
O que mostrará o tamanho ideal do bloco de operações de E / S do sistema de arquivos em bytes:
4096
Com o sistema de arquivos HFS mais antigo, a segunda tentativa da Apple em um sistema de arquivos para o Macintosh, só havia 65.535 blocos de alocação em um disco. O tamanho do bloco era uma função do tamanho do disco em bytes dividido pelo número máximo de blocos de alocação, 65.535. Para discos pequenos, isso era bom, mas quando os tamanhos de disco começaram a se aproximar de 1 GB, o tamanho mínimo do bloco de alocação era 16 KB (1073741824/65535) = 16384.25, mas é necessário truncar para 16384.
O que isso significa é que um arquivo de 1 byte em um disco HFS de 1 GB exigia 16.384 bytes para armazenar no disco rígido, portanto havia muito espaço desperdiçado. Então a Apple criou o invólucro HFS + para reduzir o espaço desperdiçado.
Pode haver uma maneira de definir o tamanho do bloco mais alto, mas por que você deseja?
Aqui está um script rápido do bash que lista todas as saídas do diskinfo para todos os discos conectados no momento.
#!/bin/bash
for disk in /dev/disk*s*
do
diskutil info $disk
echo "**************************************************************************************"
echo " "
done