ฉันอ่านในหน้า HFS Plus Wikipedia ว่าขนาดเซกเตอร์เริ่มต้นบน Mac คือ 512 b อย่างไรก็ตามฉันยังอ่านด้วยว่า Macs รองรับเซกเตอร์ 4kb ฉันจะทราบได้อย่างไรว่าฉันมีเซ็กเตอร์ขนาด 512 b หรือ 4 kb อย่างไร ฉันคิดว่า 512 เป็นคำตอบที่ถูก แต่ฉันอยากจะแน่ใจ
ฉันอ่านในหน้า HFS Plus Wikipedia ว่าขนาดเซกเตอร์เริ่มต้นบน Mac คือ 512 b อย่างไรก็ตามฉันยังอ่านด้วยว่า Macs รองรับเซกเตอร์ 4kb ฉันจะทราบได้อย่างไรว่าฉันมีเซ็กเตอร์ขนาด 512 b หรือ 4 kb อย่างไร ฉันคิดว่า 512 เป็นคำตอบที่ถูก แต่ฉันอยากจะแน่ใจ
คำตอบ:
ในเทอร์มินัลคุณสามารถใช้ diskutil เพื่อรับข้อมูลเกี่ยวกับไดรฟ์รวมถึงขนาดบล็อกอุปกรณ์:
$ diskutil info / | grep "Block Size"
Device Block Size: 512 Bytes
ก่อนอื่นให้สังเกตว่าขนาดบล็อกของอุปกรณ์นั้นแตกต่างจากขนาดบล็อกที่ระบบไฟล์ใช้ ค่าเดิมที่รายงานโดย 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 .
ขนาดระบบแฟ้มบล็อกจะได้รับจาก
diskutil info
บางครั้งจะบอกขนาดบล็อกการจัดสรร: Allocation Block Size: 32768 Bytes
เช่นเดียวกับ ขนาดบล็อกอุปกรณ์ ฉันพบสิ่งนี้เป็นจริงเมื่อใช้อุปกรณ์ raw rdisk2s0
กับการ์ด SD ในเครื่องอ่านการ์ด ฉันไม่รู้ว่าจะใช้งานได้กับฮาร์ดไดรฟ์อย่างไร
ขนาดบล็อกของอุปกรณ์ OS X สามารถกำหนดได้โดยการดำเนินการคำสั่งต่อไปนี้จากหน้าต่างแจ้ง Terminal:
diskutil info / | grep "Block Size"
ซึ่งจะส่งออกข้อมูลต่อไปนี้:
Device Block Size: 512 Bytes
ขนาดบล็อกระบบไฟล์สามารถกำหนดได้โดยใช้stat
ยูทิลิตี้:
stat -f %k .
ซึ่งจะแสดงขนาดบล็อกระบบปฏิบัติการ I / O ที่เหมาะสมที่สุดให้เป็นไบต์:
4096
ด้วยระบบไฟล์ 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
ดูเหมือนว่าขนาดบล็อกของอุปกรณ์คือ 4096 ไบต์ใน iMacs 2017 (iMac18,1) ทำให้เกิดปัญหากับผู้ใช้ ntfsprogs