ขนาดของเซ็กเตอร์บน Mac OS X มีอะไรบ้าง


15

ฉันอ่านในหน้า HFS Plus Wikipedia ว่าขนาดเซกเตอร์เริ่มต้นบน Mac คือ 512 b อย่างไรก็ตามฉันยังอ่านด้วยว่า Macs รองรับเซกเตอร์ 4kb ฉันจะทราบได้อย่างไรว่าฉันมีเซ็กเตอร์ขนาด 512 b หรือ 4 kb อย่างไร ฉันคิดว่า 512 เป็นคำตอบที่ถูก แต่ฉันอยากจะแน่ใจ

คำตอบ:


27

ในเทอร์มินัลคุณสามารถใช้ diskutil เพื่อรับข้อมูลเกี่ยวกับไดรฟ์รวมถึงขนาดบล็อกอุปกรณ์:

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

1
ขอบคุณทิโมธี - ไม่รู้เกี่ยวกับคำสั่งนี้ ดูเหมือนขุมสมบัติสำหรับข้อมูลดิสก์ / การจัดการภายใต้ OS X
kalaracey

ข้อควรระวัง: คำตอบนี้ไม่แยกความแตกต่างระหว่างขนาดบล็อกอุปกรณ์และขนาดบล็อกการจัดสรร อาจแตกต่างกันมากและขนาดบล็อกการจัดสรรอาจเป็นสิ่งที่ OP ต้องการเนื่องจากเป็นสิ่งที่ระบบไฟล์ใช้ ดูคำตอบของ Mike
LarsH

12

ก่อนอื่นให้สังเกตว่าขนาดบล็อกของอุปกรณ์นั้นแตกต่างจากขนาดบล็อกที่ระบบไฟล์ใช้ ค่าเดิมที่รายงานโดย diskutil หมายถึงขนาดบล็อกดิบที่ใช้โดยฮาร์ดแวร์ ฉันไม่พบวิธีที่ง่ายในการตรวจสอบค่าหลังด้วยบรรทัดคำสั่ง แต่คุณสามารถสร้างไฟล์เป็นศูนย์ไบต์จากนั้นรับข้อมูลจาก Finder มันจะบอกว่า 0 ไบต์ แต่ 4k ใช้บนดิสก์

ประการที่สองคุณสามารถสร้าง HFS + ระบบแฟ้มที่มีขนาดใหญ่กว่าขนาดของบล็อก 4k newfs_hfsใช้โปรแกรมบรรทัดคำสั่ง วิธีที่ง่ายที่สุดคือการใช้ Disk Utility พาร์ทิชันไดรฟ์และสร้างพาร์ทิชันที่มีการจัดรูปแบบเริ่มต้นจากนั้นใช้/bin/dfเพื่อตรวจสอบอุปกรณ์ป้องกัน (ตัวอย่างเท่านั้น/dev/disk0s2) จากนั้นให้ยกเลิกการต่อเชื่อมพาร์ติชันนั้น (โดยใช้umount /dev/diskXXXหรือ Disk Utility) และทำการฟอร์แมตใหม่เป็น HFS + ที่มีบล็อก 64k:

newfs_hfs -v VolumeName -b 65536 /dev/disk0s2

ใช้เคล็ดลับการรับข้อมูลข้างต้นเพื่อตรวจสอบว่าตอนนี้ไฟล์ขนาดเล็กมี 64k บนดิสก์ (อาจบอกว่า 65k สำหรับ powers-of-10 units)

ประสิทธิภาพเป็นเหตุผลหลักที่คุณอาจต้องการทำเช่นนี้หากข้อมูลส่วนใหญ่ที่เก็บไว้เป็นไฟล์ขนาดใหญ่ (เช่น MP3, ภาพถ่าย, วิดีโอ, ไฟล์. zip ฯลฯ ) และยังช่วยลดการกระจายตัวของดิสก์ เห็นได้ชัดว่าไม่ต้องกังวลถ้าคุณวางแผนที่จะจัดเก็บไฟล์ขนาดเล็กส่วนใหญ่

ฉันพบว่าในไดรฟ์ขนาดใหญ่ (> 1 TB) จัดรูปแบบเป็น HFS ด้วยขนาดบล็อก 4k เริ่มต้นเมื่อไดรฟ์ใกล้ความจุประสิทธิภาพการเขียนลดลงอย่างมาก ฉันเดาว่าเป็นเพราะพาร์ติชั่นมีการแยกส่วนและต้องตามล่าและจิกสำหรับบล็อกฟรีเพื่อที่จะเขียนข้อมูล 1% สุดท้าย ฉันหวังว่าบล็อกขนาดใหญ่จะช่วยบรรเทาปัญหานี้ได้บ้าง


stat -f %k .ขนาดระบบแฟ้มบล็อกจะได้รับจาก
lhf

นอกจากนี้: มันจะง่ายกว่าในไดรฟ์หากขนาดบล็อกระบบไฟล์ของคุณตรงกับขนาดบล็อกจริงของไดรฟ์ มิฉะนั้นแต่ละคนเขียนมีจริงเป็นวงจรอ่านแก้ไขเขียน (แคชช่วยแน่นอน.)
เอ็ดเวิร์ด Falk

Re: "ฉันไม่พบวิธีที่ง่ายในการตรวจสอบค่าหลังด้วยบรรทัดคำสั่ง" ฉันไม่รู้เกี่ยวกับเวอร์ชันเก่ากว่า แต่ใน macOS Sierra 10.12.6 diskutil infoบางครั้งจะบอกขนาดบล็อกการจัดสรร: Allocation Block Size: 32768 Bytesเช่นเดียวกับ ขนาดบล็อกอุปกรณ์ ฉันพบสิ่งนี้เป็นจริงเมื่อใช้อุปกรณ์ raw rdisk2s0กับการ์ด SD ในเครื่องอ่านการ์ด ฉันไม่รู้ว่าจะใช้งานได้กับฮาร์ดไดรฟ์อย่างไร
LarsH

9

ขนาดบล็อกของอุปกรณ์ OS X สามารถกำหนดได้โดยการดำเนินการคำสั่งต่อไปนี้จากหน้าต่างแจ้ง Terminal:

diskutil info / | grep "Block Size"

ซึ่งจะส่งออกข้อมูลต่อไปนี้:

Device Block Size: 512 Bytes

ขนาดบล็อกระบบไฟล์สามารถกำหนดได้โดยใช้statยูทิลิตี้:

stat -f %k .

ซึ่งจะแสดงขนาดบล็อกระบบปฏิบัติการ I / O ที่เหมาะสมที่สุดให้เป็นไบต์:

4096

4

ด้วยระบบไฟล์ HFS ที่เก่ากว่าความพยายามครั้งที่สองของ Apple ในระบบไฟล์สำหรับ Macintosh อาจมีบล็อกการจัดสรรสูงสุด 65,535 บล็อกบนดิสก์เท่านั้น ขนาดบล็อกเป็นฟังก์ชันของขนาดดิสก์เป็นไบต์หารด้วยจำนวนบล็อกการจัดสรรสูงสุด 65,535 สำหรับดิสก์ขนาดเล็กนี่เป็นเรื่องปกติ แต่เมื่อขนาดของดิสก์เริ่มเข้าใกล้ขนาด 1GB ขนาดบล็อกการจัดสรรขั้นต่ำคือ 16 KB (1073741824/65535) = 16384.25 แต่คุณต้องตัดให้เหลือ 16384

สิ่งนี้หมายความว่าไฟล์ 1 ไบต์บนดิสก์ 1GB HFS นั้นจำเป็นต้องมี 16,384 ไบต์ในการจัดเก็บบนฮาร์ดไดรฟ์ดังนั้นจึงมีเนื้อที่ว่างมากเกินไป ดังนั้น Apple จึงสร้าง HFS + wrapper เพื่อลดพื้นที่ว่างเปล่า

อาจมีวิธีตั้งค่าขนาดบล็อกให้สูงขึ้น แต่ทำไมคุณถึงต้องการ

นี่คือสคริปต์ทุบตีด่วนที่จะแสดงรายการของ diskinfo ทั้งหมดสำหรับดิสก์ที่คุณเชื่อมต่ออยู่ในปัจจุบัน

#!/bin/bash

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

ขอบคุณสำหรับคำตอบของคุณมาร์ค แต่ฉันคิดว่าคุณอาจเข้าใจผิดคำถามของฉัน ฉันกำลังมองหาขนาดของบล็อกใน HFS Plus (ระบบไฟล์เริ่มต้นปัจจุบันสำหรับ Macs) คืออะไร นั่นเป็นเรื่องที่น่าสนใจเกี่ยวกับความล้มเหลวของ HFS
kalaracey

ประเด็นคือมันแตกต่างกันไป แต่โดยทั่วไปแล้วจะมีขนาด 512 ไบต์
ⱮarkƬ

0

ดูเหมือนว่าขนาดบล็อกของอุปกรณ์คือ 4096 ไบต์ใน iMacs 2017 (iMac18,1) ทำให้เกิดปัญหากับผู้ใช้ ntfsprogs

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.