ผลลัพธ์ของ fdisk หมายถึงอะไร


10

ฉันมีแฟลชไดรฟ์และฉันต้องการที่จะเข้าใจคุณสมบัติของมันตามที่เอาท์พุfdiskท ฉันใส่มันและตรวจสอบdmesgและฉันสามารถเห็นว่ามันถูกติดตั้งเป็น/dev/sdb1ดังนั้นฉันวิ่งfdiskไปดูสิ่งที่มีรายงาน/dev/sdb

mike@mike-Qosmio-X770:~$ sudo fdisk -l
[sudo] password for mike: 

Disk /dev/sdb: 127 MB, 127926272 bytes
16 heads, 32 sectors/track, 488 cylinders, total 249856 sectors
 Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6b3ee723

   Device Boot      Start         End      Blocks   Id  System
 /dev/sdb1   *          32      249854      124911+   b  W95 FAT32

เท่าที่ฉันสามารถบอกได้ไดรฟ์นั้นเป็นแฟลชไดรฟ์ที่ฟอร์แมต 128MB FAT32 มันมีพาร์ติชั่นเพียง 1 ตัวเท่านั้น เริ่มต้นที่ "32" (สันนิษฐานว่าใช้ 0-31 สำหรับ FTL บางตัว)

มีการรายงานว่า "เซกเตอร์" มีขนาด 512 ไบต์และมี 249,856 เซกเตอร์ (ทั้งหมด 122MB)

ตอนนี้ฉันสับสนเกี่ยวกับรูปทรงกระบอกหัวและส่วนต่างๆ / จำนวนเพลง ฉันรู้ว่าถัง / หัวต้องทำอย่างไรกับชนิดของที่เก็บดิสก์แม่เหล็ก มีความหมายอะไรบ้างไหมเมื่อพูดถึงอุปกรณ์แฟลช? หรือนี่เป็นเพียงข้อมูล "ที่เหลือ" fdiskซึ่งไม่มีความหมายกับสื่อเก็บข้อมูลที่ไม่ใช่แม่เหล็กใช่หรือไม่? หากภายหลังทำไมต้องให้คุณค่าเลย

คำถามที่สอง "ขนาด" ของบล็อกคืออะไร :

Blocks
 124911+

และความหมายของการ+นับหลังจากบล็อกคืออะไร?


1
เป็นคำถามที่ดี +1 ไม่เคยคิดมาก่อน คุณหมายถึงอะไรโดย "FTL" สำหรับฉันนั่นหมายถึงเร็วกว่าแสงฉันจินตนาการว่าคุณกำลังอ้างถึงสิ่งอื่นใด?
terdon

1
@terdon - FTL (เลเยอร์การแปล Flash) เนื้อหาที่ทำให้การปรับระดับของวาฬและ whatnot
Mike

คำตอบ:


3

ขนาดของบล็อก

แทร็ก 3 มิติ (แทร็กเดียวกันบนดิสก์ทั้งหมด) เรียกว่าทรงกระบอก แต่ละเพลงแบ่งออกเป็น 63 ภาค แต่ละเซกเตอร์ประกอบด้วยข้อมูล 512 ไบต์ ดังนั้นขนาดบล็อกในตารางพาร์ติชั่นคือ 64 หัว * 63 ภาค * 512 ไบต์เอ้อ ... หารด้วย 1024 ... :-)

ที่มา: การแบ่งพาร์ติชันด้วย fdisk

เมื่อใดก็ตามที่ Linux อ้างถึงขนาดบล็อกมันมักจะ 1024 ไบต์เสมอ - Linux ใช้บล็อก 1024- ไบต์เป็นหน่วยดั้งเดิมสำหรับแคชบัฟเฟอร์และทุกอย่างเวลาที่ไม่ได้อยู่ในไดรเวอร์เฉพาะระบบไฟล์เนื่องจากระบบไฟล์บางระบบใช้ระบบอื่น granularities (ตัวอย่างเช่นบนระบบไฟล์ ext3 ขนาดปกติขนาดบล็อกของระบบไฟล์คือ 4096 ไบต์) อย่างไรก็ตามคุณแทบไม่เคยเห็นขนาดบล็อกของระบบไฟล์เลย เกือบจะเป็นวิธีเดียวที่จะเห็นว่ามันเป็นแฮกเกอร์เคอร์เนลหรือเรียกใช้โปรแกรมเช่น dumpe2fs

ปัญหานี้คือว่ามีสี่หน่วยแตกต่างกันที่คุณต้องจำไว้ ในการทำให้สิ่งต่าง ๆ แย่ลงสองหน่วยนี้มีชื่อเดียวกัน เหล่านี้เป็นหน่วยต่าง ๆ :

  1. ขนาดบล็อกฮาร์ดแวร์ "ขนาดเซกเตอร์"
  2. ขนาดบล็อกระบบไฟล์ "ขนาดบล็อก"
  3. ขนาดบล็อกบัฟเฟอร์แคชเคอร์เนล "ขนาดบล็อก"
  4. ขนาดบล็อกตารางพาร์ติชัน "ขนาดถัง"

เพื่อแยกความแตกต่างระหว่างขนาดบล็อกระบบไฟล์และขนาดบล็อกแคชบัฟเฟอร์ฉันจะทำตามคำศัพท์ 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 - ตารางการจัดสรรไฟล์


1

ฉันเดาว่าเซกเตอร์ 1-31 ถูกสงวนไว้สำหรับข้อมูลการบู๊ตและข้อมูลตารางพาร์ติชัน พาร์ติชัน / dev / sdb1 เริ่มต้นที่บล็อก / เซกเตอร์ 32 และไปที่ 249854 มันเป็นโลจิคัลพาร์ติชันบนฟิสิคัลดิสก์

124911+ ให้จำนวนบล็อกของคุณระหว่าง 32 ถึง 249854

เกี่ยวกับ Disk Geometry นี่คือสิ่งที่man fdsikบอกเกี่ยวกับมัน

หากเป็นไปได้ fdisk จะได้รับเรขาคณิตของดิสก์โดยอัตโนมัติ นี่ไม่จำเป็นต้องเป็นรูปทรงเรขาคณิตของดิสก์ทางกายภาพ (จริง ๆ แล้วดิสก์ที่ทันสมัยไม่มีอะไรเหมือนเรขาคณิตทางกายภาพแน่นอนว่าไม่ใช่สิ่งที่สามารถอธิบายได้ในรูปแบบ Cylinders / Heads / Sectors แบบง่าย ๆ ) แต่มันเป็นรูปทรงเรขาคณิตของดิสก์ที่ MS-DOS ใช้สำหรับตารางพาร์ติชัน

โดยปกติแล้วทุกอย่างจะไปได้ด้วยดีและไม่มีปัญหาหาก Linux เป็นระบบเดียวในดิสก์ อย่างไรก็ตามหากต้องใช้ดิสก์ร่วมกับระบบปฏิบัติการอื่น ๆ มักเป็นความคิดที่ดีที่จะให้ fdisk จากระบบปฏิบัติการอื่นสร้างพาร์ติชันอย่างน้อยหนึ่งพาร์ติชั่น เมื่อบูทลีนุกซ์มันจะดูที่ตารางพาร์ติชั่น, และพยายามที่จะอนุมานว่าต้องใช้รูปทรงอะไร (ของปลอม) สำหรับความร่วมมือที่ดีกับระบบอื่น ๆ .

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