Jakie są rozmiary sektorów w Mac OS X?

15

Na stronie Wikipedii HFS Plus przeczytałem, że domyślny rozmiar sektora na komputerze Mac to 512 b. Jednak przeczytałem również, że komputery Mac obsługują sektory 4 KB. Jak mogę ustalić, które mam sektory 512 b lub 4 kb? Myślę, że 512 jest właściwą odpowiedzią, ale chciałbym być pewien.

kalaracey
źródło

Odpowiedzi:

27

W terminalu możesz użyć diskutil, aby uzyskać informacje o napędzie, w tym o wielkości bloku urządzenia:

$ diskutil info / | grep "Block Size"
  Device Block Size:        512 Bytes
Tim B.
źródło
1
Dzięki Tymoteusz - nie wiedziałem o tym poleceniu. Wygląda jak skarbnica informacji o dysku / manipulacji na dysku w systemie OS X.
kalaracey 15.01.2013
Uwaga: ta odpowiedź nie rozróżnia wielkości bloku urządzenia od wielkości bloku alokacji. Mogą być bardzo różne, a rozmiar bloku alokacji może być dokładnie tym, czego szuka OP, ponieważ tego używa system plików. Zobacz odpowiedź Mike'a.
LarsH
12

Po pierwsze, zwróć uwagę, że rozmiar bloku urządzenia różni się od rozmiaru bloku używanego przez system plików. Poprzednia wartość podana przez diskutil odnosi się do surowego rozmiaru bloku używanego przez sprzęt. Nie znalazłem łatwego sposobu na sprawdzenie tej ostatniej wartości za pomocą wiersza poleceń, ale możesz po prostu utworzyć plik zerowy, a następnie uzyskać informacje z Findera. Powie 0 bajtów, ale 4k użyte na dysku.

Po drugie, możesz utworzyć system plików HFS + o rozmiarze bloku większym niż 4k za pomocą programu wiersza poleceń newfs_hfs. Najłatwiejszym sposobem jest użycie Narzędzia dyskowego do podzielenia dysku na partycje i utworzenie partycji z domyślnym formatowaniem, a następnie użycie /bin/dfdo określenia urządzenia blokowego (tylko przykład:) /dev/disk0s2. Następnie odmontuj tę partycję (używając umount /dev/diskXXXlub Narzędzie dyskowe) i sformatuj ponownie jako HFS + z blokami 64k:

newfs_hfs -v VolumeName -b 65536 /dev/disk0s2

Skorzystaj z powyższej wskazówki Uzyskaj informacje, aby sprawdzić, czy mały plik zajmuje teraz 64 KB na dysku (może to powiedzieć 65 KB dla jednostek o mocy 10).

Wydajność jest głównym powodem, dla którego warto to zrobić, jeśli większość przechowywanych danych to duże pliki (takie jak MP3, zdjęcia, wideo, pliki .zip itp.), A także pomaga utrzymać niską fragmentację dysku. Oczywiście nie przejmuj się, jeśli planujesz przechowywać głównie małe pliki.

Odkryłem, że na dużych dyskach (> 1 TB) sformatowanych jako HFS z domyślnym rozmiarem bloku 4k, gdy dysk zbliża się do pojemności, wydajność zapisu strasznie spada. Zgaduję, że wynika to z fragmentacji partycji i konieczności polowania i dziobania wolnych bloków w celu wypisania ostatniego 1% danych. Mam nadzieję, że większe rozmiary bloków nieco złagodzą ten problem.

Mike Gleason
źródło
Rozmiar bloku systemu plików jest podawany przez stat -f %k ..
lhf
Ponadto: na dysku jest łatwiej, jeśli rozmiar bloku systemu plików odpowiada rozmiarowi bloku fizycznego dysku. W przeciwnym razie każdy zapis musi faktycznie być cyklem odczytu-modyfikacji-zapisu (buforowanie oczywiście pomaga).
Edward Falk,
Odp: „Nie znalazłem łatwego sposobu na sprawdzenie tej ostatniej wartości za pomocą wiersza polecenia” Nie wiem o starszych wersjach, ale w systemie macOS Sierra 10.12.6 diskutil infoczasami powie ci rozmiar bloku alokacji: Allocation Block Size: 32768 Bytesa także rozmiar bloku urządzenia. Stwierdziłem, że jest to prawdą, gdy korzystam z surowego urządzenia rdisk2s0z kartą SD w czytniku kart. Nie wiem, jak sprawić, by działał na dysku twardym.
LarsH
9

Rozmiar bloku urządzenia OS X można określić, wykonując następujące polecenie z wiersza polecenia Terminal:

diskutil info / | grep "Block Size"

Które wygenerują następujące informacje:

Device Block Size: 512 Bytes

Rozmiar bloku systemu plików można określić za pomocą statnarzędzia:

stat -f %k .

Który pokaże ci rozmiar bloku operacji we / wy optymalnego systemu plików w bajtach:

4096
rjb
źródło
4

W starszym systemie plików HFS, drugiej próbie Apple'a na system plików dla komputerów Macintosh, na dysku mogło być maksymalnie 65 535 bloków alokacji. Rozmiar bloku był funkcją wielkości dysku w bajtach podzielonej przez maksymalną liczbę bloków alokacji, 65 535. W przypadku małych dysków było to w porządku, ale kiedy rozmiary dysków zaczęły zbliżać się do 1 GB, minimalny rozmiar bloku alokacji wynosił 16 KB (1073741824/65535) = 16384,25, ale musisz obciąć do 16384.

Oznacza to, że 1 bajtowy plik na 1 GB dysku HFS wymagał 16 384 bajtów do zapisania na dysku twardym, więc było zbyt wiele zmarnowanego miejsca. Tak więc Apple stworzyło opakowanie HFS +, aby zmniejszyć zmarnowane miejsce.

Może być sposób na ustawienie większego rozmiaru bloku, ale dlaczego miałbyś chcieć?

Oto szybki skrypt bash, który wyświetli wszystkie dane wyjściowe diskinfo dla wszystkich aktualnie podłączonych dysków.

#!/bin/bash

for disk in /dev/disk*s*
do
    diskutil info $disk
    echo "**************************************************************************************"
    echo " "
done
Ɱark Ƭ
źródło
Dziękuję za odpowiedź, Mark, ale myślę, że mogłeś źle zrozumieć moje pytanie. Szukam rozmiaru bloku w systemie HFS Plus (obecny domyślny system plików dla komputerów Mac). To jednak interesujące w odniesieniu do wad HFS.
kalaracey
Chodzi o to, że zmienia się, ale wydaje się, że generalnie ma 512 bajtów.
Ɱark Ƭ
0

Wygląda na to, że rozmiar bloku urządzenia wynosi teraz 4096 bajtów w iMacach 2017 (iMac18,1), co powoduje problemy dla osób używających ntfsprogs.

js2010
źródło