ขนาดของบล็อก
แทร็ก 3 มิติ (แทร็กเดียวกันบนดิสก์ทั้งหมด) เรียกว่าทรงกระบอก แต่ละเพลงแบ่งออกเป็น 63 ภาค แต่ละเซกเตอร์ประกอบด้วยข้อมูล 512 ไบต์ ดังนั้นขนาดบล็อกในตารางพาร์ติชั่นคือ 64 หัว * 63 ภาค * 512 ไบต์เอ้อ ... หารด้วย 1024 ... :-)
ที่มา: การแบ่งพาร์ติชันด้วย fdisk
เมื่อใดก็ตามที่ Linux อ้างถึงขนาดบล็อกมันมักจะ 1024 ไบต์เสมอ - Linux ใช้บล็อก 1024- ไบต์เป็นหน่วยดั้งเดิมสำหรับแคชบัฟเฟอร์และทุกอย่างเวลาที่ไม่ได้อยู่ในไดรเวอร์เฉพาะระบบไฟล์เนื่องจากระบบไฟล์บางระบบใช้ระบบอื่น granularities (ตัวอย่างเช่นบนระบบไฟล์ ext3 ขนาดปกติขนาดบล็อกของระบบไฟล์คือ 4096 ไบต์) อย่างไรก็ตามคุณแทบไม่เคยเห็นขนาดบล็อกของระบบไฟล์เลย เกือบจะเป็นวิธีเดียวที่จะเห็นว่ามันเป็นแฮกเกอร์เคอร์เนลหรือเรียกใช้โปรแกรมเช่น dumpe2fs
ปัญหานี้คือว่ามีสี่หน่วยแตกต่างกันที่คุณต้องจำไว้ ในการทำให้สิ่งต่าง ๆ แย่ลงสองหน่วยนี้มีชื่อเดียวกัน เหล่านี้เป็นหน่วยต่าง ๆ :
- ขนาดบล็อกฮาร์ดแวร์ "ขนาดเซกเตอร์"
- ขนาดบล็อกระบบไฟล์ "ขนาดบล็อก"
- ขนาดบล็อกบัฟเฟอร์แคชเคอร์เนล "ขนาดบล็อก"
- ขนาดบล็อกตารางพาร์ติชัน "ขนาดถัง"
เพื่อแยกความแตกต่างระหว่างขนาดบล็อกระบบไฟล์และขนาดบล็อกแคชบัฟเฟอร์ฉันจะทำตามคำศัพท์ FAT และใช้ "ขนาดคลัสเตอร์" สำหรับขนาดบล็อกระบบไฟล์
ขนาดเซกเตอร์เป็นหน่วยที่ฮาร์ดแวร์เกี่ยวข้อง ช่วงนี้ระหว่างฮาร์ดแวร์ประเภทต่าง ๆ แต่ฮาร์ดแวร์สไตล์พีซีส่วนใหญ่ (ฟลอปปีดิสก์ IDE ฯลฯ ) ใช้เซ็กเตอร์ขนาด 512 ไบต์
ขนาดคลัสเตอร์เป็นหน่วยการจัดสรรที่ระบบไฟล์ใช้และเป็นสาเหตุของการแตกแฟรกเมนต์ - ฉันแน่ใจว่าคุณรู้เรื่องนี้แล้ว บน ext3 ระบบไฟล์ขนาดปานกลางนี้มักจะ 4096 ไบต์ dumpe2fs
แต่คุณสามารถตรวจสอบว่ามีการ โปรดจำไว้ว่าสิ่งเหล่านี้มักจะเรียกว่า " บล็อก " เท่านั้นที่ฉันอ้างถึงพวกเขาเป็นกลุ่มที่นี่ ขนาดคลัสเตอร์คือสิ่งที่ได้รับมาในst_blksize
บัฟเฟอร์บัฟเฟอร์เพื่อให้โปรแกรมสามารถคำนวณการใช้งานดิสก์จริงของไฟล์
ขนาดบล็อกคือขนาดของบัฟเฟอร์ที่เคอร์เนลใช้ภายในเมื่อแคชส่วนที่ถูกอ่านจากอุปกรณ์จัดเก็บข้อมูล (ดังนั้นชื่อ "อุปกรณ์บล็อก") เนื่องจากนี่เป็นรูปแบบดั้งเดิมที่สุดของหน่วยความจำในเคอร์เนลขนาดระบบไฟล์ทั้งหมดจะต้องเป็นทวีคูณของสิ่งนี้ ขนาดบล็อกนี้เป็นขนาดที่โปรแกรมผู้ใช้อ้างถึง ตัวอย่างเช่นเมื่อคุณรัน
du
โดยไม่มีตัวเลือก -h หรือ -H มันจะคืนค่าจำนวนบล็อกเหล่านี้ที่ไฟล์ใช้ df
จะรายงานขนาดในบล็อกเหล่านี้คอลัมน์ "บล็อก" ในfdisk -l
ผลลัพธ์เป็นประเภทนี้และอื่น ๆ มันคือสิ่งที่เรียกกันทั่วไปว่า "บล็อก" สองเซ็กเตอร์ดิสก์พอดีกับแต่ละบล็อก
ขนาดทรงกระบอกใช้เฉพาะในตารางพาร์ติชั่นและไบออส (และไบออสไม่ได้ใช้โดย Linux)
ที่มา: ขนาดบล็อกดิสก์ลินุกซ์ ... ช่วยด้วย
ส่วนที่ 0-31
เพื่อตอบคำถามของคุณเกี่ยวกับ 32 ภาคแรกเนื่องจากแฟลชไดรฟ์เป็นอุปกรณ์ที่จัดรูปแบบ FAT จากนั้นดูที่คำจำกัดความของระบบไฟล์ FAT คุณจะเห็นว่าระบบไฟล์ FAT ประกอบด้วยสี่ส่วนที่แตกต่างกัน:
a) ภาคที่สงวนไว้;
b) ภูมิภาค File Allocation Table (FAT);
c) ภูมิภาคไดเรกทอรีรูตและ;
d) เขตข้อมูล
ส่วนที่สงวนไว้ซึ่งอยู่ที่จุดเริ่มต้นนั้นคือ (ในกรณีนี้) ภาคที่ 0-31:
เซกเตอร์ที่สงวนไว้ครั้งแรก (โลจิคัลเซกเตอร์ 0) คือบูตเซกเตอร์ (aka
Volume Boot Record (VBR) ) ซึ่งจะรวมถึงพื้นที่ที่เรียกว่าBIOS Parameter Block (โดยมีข้อมูลระบบไฟล์พื้นฐานโดยเฉพาะอย่างยิ่งประเภทและพอยน์เตอร์ไปยังตำแหน่งของส่วนอื่น ๆ ) และมักจะมีรหัสบูตโหลดเดอร์ของระบบปฏิบัติการ
ข้อมูลสำคัญจาก Boot Sector สามารถเข้าถึงได้ผ่านโครงสร้างระบบปฏิบัติการที่เรียกว่าDrive Parameter Block (DPB)ใน DOS และ OS / 2
จำนวนรวมของภาคสงวนถูกระบุโดยข้อมูลภายในบูต, และมักจะ 32 บนระบบไฟล์
สำหรับระบบไฟล์ FAT32 เซกเตอร์ที่สงวนไว้จะรวมเซกเตอร์ข้อมูลระบบไฟล์ที่เซกเตอร์ตรรกะ 1 และเซกเตอร์ Boot Boot ที่เซกเตอร์ตรรกะ 6
ในขณะที่ผู้ค้ารายอื่นหลายรายยังคงใช้การตั้งค่าเซกเตอร์เดียว (โลจิคัลเซกเตอร์ 0 เท่านั้น) สำหรับ bootstrap loader รหัสบูตของไมโครซอฟท์ได้เติบโตขึ้นเพื่อวางไข่เหนือเซกเตอร์ตรรกะ 0 และ 2 ตั้งแต่เปิดตัว FAT32 รูทีนย่อยในเซกเตอร์แบบลอจิคัล 2. พื้นที่เซกเตอร์บูทบูตประกอบด้วยสามเซกเตอร์ตรรกะ 6, 7 และ 8 เช่นกัน ในบางกรณี Microsoft ยังใช้เซกเตอร์ 12 ของพื้นที่เซกเตอร์ที่สงวนไว้สำหรับตัวโหลดการขยายเพิ่มเติม
เพียงข้อมูลเพิ่มเติมไม่เกี่ยวข้องกับคำถาม OP
ภูมิภาค FATจะอยู่ที่ภาค 32:
โดยทั่วไปจะมีสำเนาสองชุด (อาจแตกต่างกัน) ของตารางการจัดสรรไฟล์เพื่อประโยชน์ในการตรวจสอบความซ้ำซ้อนแม้จะไม่ค่อยได้ใช้แม้แต่การซ่อมแซมดิสก์
นี่คือแผนที่ของภูมิภาคข้อมูลซึ่งระบุว่าจะใช้กลุ่มใดในไฟล์และไดเรกทอรี ใน FAT12 และ FAT16 พวกเขาติดตามภาคที่สงวนไว้ทันที
โดยทั่วไปแล้วสำเนาพิเศษจะถูกเก็บไว้ในการซิงโครไนซ์อย่างเข้มงวดในการเขียนและในการอ่านจะใช้เฉพาะเมื่อเกิดข้อผิดพลาดใน FAT แรก ใน FAT32 เป็นไปได้ที่จะสลับจากพฤติกรรมเริ่มต้นและเลือก FAT เดียวจากที่มีอยู่เพื่อใช้ในการวินิจฉัย
สองคลัสเตอร์แรก (คลัสเตอร์ 0 และ 1) ในแผนที่มีค่าพิเศษ
ภูมิภาคไดเรกทอรีรูท :
นี่คือตารางไดเรกทอรีที่เก็บข้อมูลเกี่ยวกับไฟล์และไดเรกทอรีที่อยู่ในไดเรกทอรีราก มันจะใช้กับ FAT12 และ FAT16 เท่านั้นและจะกำหนดขนาดสูงสุดคงที่ซึ่งจะถูกจัดสรรล่วงหน้าไว้ที่การสร้างไดรฟ์นี้ FAT32 จะจัดเก็บไดเรกทอรีรากในพื้นที่ข้อมูลพร้อมกับไฟล์และไดเรกทอรีอื่น ๆ เพื่อให้สามารถเติบโตได้โดยไม่มีข้อ จำกัด ดังกล่าว ดังนั้นสำหรับ FAT32 เขตข้อมูลจึงเริ่มต้นที่นี่
ภูมิภาคข้อมูล :
นี่คือที่จัดเก็บข้อมูลไฟล์และไดเรกทอรีจริงและใช้พาร์ติชั่นเกือบทั้งหมด โดยปกติแล้วส่วนที่ไม่ได้ใช้ของพื้นที่ข้อมูลจะถูกกำหนดค่าเริ่มต้นด้วยค่าฟิลเลอร์ที่ 0xF6 ตามตาราง Disk Parameter Table (DPT) ของ INT 1Eh ในระหว่างการจัดรูปแบบบนเครื่องที่เข้ากันได้กับ IBM แต่ยังใช้กับ Atari Portfolio แผ่นฟลอปปี้ CP / M ขนาด 8 นิ้วมักจัดรูปแบบไว้ล่วงหน้าด้วยค่า 0xE5; โดยวิธีการวิจัยดิจิตอลค่านี้ยังใช้กับฟอร์แมทที่จัดรูปแบบของ Atari ST Amstrad ใช้ 0xF4 แทน ตัวจัดรูปแบบที่ทันสมัยบางตัวจะเช็ดฮาร์ดดิสก์ด้วยค่า 0x00 ในขณะที่ค่า 0xFF ซึ่งเป็นค่าเริ่มต้นของบล็อกแฟลชที่ไม่ได้ตั้งโปรแกรมไว้จะใช้กับดิสก์แฟลชเพื่อลดการสึกหรอ โดยทั่วไปค่าหลังจะใช้กับดิสก์ ROM ด้วย (เครื่องมือการจัดรูปแบบขั้นสูงบางอย่างอนุญาตให้กำหนดค่ารูปแบบฟิลเลอร์ไบต์)
ขนาดของไฟล์และไดเรคทอรีย่อยสามารถเพิ่มได้ตามอำเภอใจ (ตราบใดที่ยังมีคลัสเตอร์ว่าง) โดยเพิ่มลิงค์ไปยังเชนของไฟล์ใน FAT อย่างไรก็ตามโปรดทราบว่ามีการจัดสรรไฟล์ในหน่วยของคลัสเตอร์ดังนั้นหากไฟล์ 1 KiB อยู่ในคลัสเตอร์ 32 KiB จะต้องเสีย 31 KiB
โดยทั่วไปแล้ว FAT32 จะเริ่มรูทไดเรกทอรีตารางในคลัสเตอร์หมายเลข 2: คลัสเตอร์แรกของภูมิภาคข้อมูล
ที่มา: Wikipedia - ตารางการจัดสรรไฟล์