Quali sono le dimensioni del settore su Mac OS X?


15

Ho letto sulla pagina di HFS Plus Wikipedia che la dimensione del settore predefinito su un Mac è 512 b. Tuttavia, ho anche letto che i Mac supportano settori da 4kb. Come posso determinare quali settori ho, 512 b o 4 kb? Penso che 512 sia la risposta giusta, ma vorrei esserne sicuro.

Risposte:


27

Nel terminale, è possibile utilizzare diskutil per ottenere informazioni sull'unità, inclusa la dimensione del blocco del dispositivo:

$ diskutil info / | grep "Block Size"
  Device Block Size:        512 Bytes

1
Grazie Timoteo - non sapeva di questo comando. Sembra uno scrigno di informazioni sul disco / manipolazione sotto OS X.
Kalaracey,

Attenzione: questa risposta non distingue tra dimensione del blocco del dispositivo e dimensione del blocco di allocazione. Possono essere molto diversi e la dimensione del blocco di allocazione potrebbe essere proprio ciò che l'OP sta cercando, poiché è quello che utilizza il filesystem. Vedi la risposta di Mike.
LarsH,

12

Innanzitutto, nota che la dimensione del blocco del dispositivo è diversa dalla dimensione del blocco utilizzata dal filesystem. Il valore precedente riportato da diskutil si riferisce alla dimensione del blocco non elaborato utilizzata dall'hardware. Non ho trovato un modo semplice per controllare quest'ultimo valore dalla riga di comando, ma puoi semplicemente creare un file a zero byte e quindi ottenere informazioni dal Finder. Dirà 0 byte, ma 4k usato sul disco.

In secondo luogo, è possibile creare un filesystem HFS + con blocchi di dimensioni superiori a 4k utilizzando il programma da riga di comando newfs_hfs. Il modo più semplice è utilizzare Utility Disco per partizionare l'unità e creare una partizione con la formattazione predefinita, quindi utilizzare /bin/dfper determinare il dispositivo a blocchi (solo un esempio:) /dev/disk0s2. Quindi smontare quella partizione (usando umount /dev/diskXXXo Utility Disco) e riformattare come HFS + con blocchi 64k:

newfs_hfs -v VolumeName -b 65536 /dev/disk0s2

Usa il suggerimento Ottieni informazioni sopra per verificare che un piccolo file ora occupi 64k su disco (potrebbe essere 65k per unità di potenza di 10).

Le prestazioni sono la ragione principale per cui potresti voler fare questo, se la maggior parte dei dati da archiviare sono file di grandi dimensioni (come MP3, foto, video, file .zip, ecc.) E aiuta anche a mantenere bassa la frammentazione del disco. Ovviamente non preoccuparti se hai intenzione di archiviare file per lo più piccoli.

Ho scoperto che su unità di grandi dimensioni (> 1 TB) formattate come HFS con la dimensione del blocco 4k predefinita, quando l'unità si avvicina alla capacità, le prestazioni di scrittura peggiorano terribilmente. Immagino che sia dovuto alla frammentazione della partizione e alla ricerca e alla ricerca di blocchi liberi per scrivere l'ultimo 1% di dati. Spero che blocchi di dimensioni maggiori possano alleviare un po 'questo problema.


La dimensione del blocco del filesystem è data da stat -f %k ..
lhf,

Inoltre: è più semplice sull'unità se la dimensione del blocco del file system corrisponde alla dimensione del blocco fisico dell'unità. Altrimenti, ogni scrittura deve in realtà essere un ciclo di lettura-modifica-scrittura, (la cache aiuta, ovviamente.)
Edward Falk,

Ri: "Non ho trovato un modo semplice per controllare quest'ultimo valore dalla riga di comando" Non conosco le versioni precedenti, ma su macOS Sierra 10.12.6, diskutil infoa volte ti dirò le dimensioni del blocco di allocazione: Allocation Block Size: 32768 Bytescosì come la dimensione del blocco del dispositivo. Ho scoperto che questo è vero quando si utilizza il dispositivo raw rdisk2s0con una scheda SD nel lettore di schede. Non so come farlo funzionare per il disco rigido.
LarsH,

9

La dimensione del blocco del dispositivo OS X può essere determinata eseguendo il comando seguente dal prompt della finestra Terminale:

diskutil info / | grep "Block Size"

Che produrrà le seguenti informazioni:

Device Block Size: 512 Bytes

La dimensione del blocco del file system può essere determinata utilizzando l' statutilità:

stat -f %k .

Che ti mostrerà la dimensione ottimale del blocco di operazioni I / O del file system in byte:

4096

4

Con il vecchio file system HFS, il secondo tentativo di Apple di creare un file system per Macintosh, su un disco potevano esserci fino a 65.535 blocchi di allocazione. La dimensione del blocco era una funzione della dimensione del disco in byte divisa per il numero massimo di blocchi di allocazione, 65.535. Per i piccoli dischi ciò andava bene, ma quando le dimensioni del disco iniziarono ad avvicinarsi a 1 GB, la dimensione minima del blocco di allocazione era 16 KB (1073741824/65535) = 16384,25, ma è necessario troncare a 16384.

Ciò significa che un file da 1 byte su un disco HFS da 1 GB ha richiesto 16.384 byte per l'archiviazione sul disco rigido, quindi c'era troppo spazio sprecato. Così Apple ha creato il wrapper HFS + per ridurre lo spazio sprecato.

Potrebbe esserci un modo per aumentare le dimensioni del blocco, ma perché dovresti farlo?

Ecco un rapido script bash che elencherà tutto l'output di diskinfo per tutti i dischi attualmente connessi.

#!/bin/bash

for disk in /dev/disk*s*
do
    diskutil info $disk
    echo "**************************************************************************************"
    echo " "
done

Grazie per la tua risposta, Mark, ma penso che potresti aver frainteso la mia domanda. Sto cercando le dimensioni di un blocco su HFS Plus (l'attuale filesystem predefinito per Mac). Questo è interessante riguardo ai fallimenti di HFS, comunque.
Kalaracey,

Il punto è che varia, ma sembra essere generalmente di 512 byte.
Ɱark Ƭ

0

Sembra che la dimensione del blocco del dispositivo sia ora 4096 byte negli iMac 2017 (iMac18,1), causando problemi alle persone che usano ntfsprogs.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.