ข้อมูลเมตาไม่ได้ครอบครองขนาดใด ๆ


51

ฉันใส่4096ตัวอักษรในไฟล์ข้อความและบันทึกเนื่องจากตัวละครทุกตัวมี 1 ไบต์ขนาดของไฟล์ข้อความต้องเป็น 4K ไบต์ตามที่คุณเห็นด้านล่างว่าตกลง

ป้อนคำอธิบายรูปภาพที่นี่

ฉันเชื่อมต่อหน่วยความจำแฟลชกับคอมพิวเตอร์ พื้นที่ว่างในหน่วยความจำแฟลชคือ1,717,518,336ไบต์ :

ป้อนคำอธิบายรูปภาพที่นี่

ฉันสร้างสำเนาของไฟล์ในหน่วยความจำแฟลช และดูพื้นที่ว่างอีกครั้ง มันมีพื้นที่ว่าง1,717,514,240ไบต์ :

ป้อนคำอธิบายรูปภาพที่นี่

ลองดูความแตกต่างคืออะไร:

1,717,518,336 - 1,717,514,240 =4096ไบต์


คำถามของฉัน :

Q1:

ดังที่คุณเห็นในภาพด้านบนมีเพียงพื้นที่เดียวที่ไฟล์นั้นครอบครองบนแฟลชคือพื้นที่สำหรับเนื้อหา [ตัวอักษร] ดังนั้นไฟล์เมตาดาต้าอยู่ที่ไหน?

ฉันหมายถึงเมื่อฉันย้ายไฟล์ไปยังคอมพิวเตอร์เครื่องอื่นมันเข้าใจชื่อไฟล์ได้อย่างไรเจ้าของไฟล์วันที่สร้างและแก้ไขและ ... ?

มันไม่ได้ครอบครองทุกขนาดหรือไม่ !!

Q2:

ฉันสามารถดูไฟล์ข้อมูลเมตาในหน่วยความจำแฟลชได้หรือไม่

ป้อนคำอธิบายรูปภาพที่นี่

ขอบคุณเวลาและการพิจารณาของคุณ


10
ข้อมูลเมตาจะอยู่ในระบบไฟล์ของตัวเอง ที่ไม่ได้เป็นส่วนหนึ่งของขนาดไฟล์ที่ Windows รายงาน นอกจากนี้ข้อมูลเมตา FAT32 และ NTFS ก็จะแตกต่างกัน
Ramhound

@Ramhound เมื่อฉันย้ายไฟล์ข้อความไปยังหน่วยความจำแฟลชไฟล์เมตาดาต้าของมันก็จะย้ายไปยังหน่วยความจำแฟลชด้วยใช่ไหม ฉันจะดูได้อย่างไร
TheGoodUser


1
นอกเหนือจากการทำความเข้าใจกับระบบปฏิบัติการภายใน (คุ้มค่าในตัวเอง) อาจไม่มีเหตุผลที่จะดูหรือแก้ไขข้อมูลดังกล่าวเว้นแต่ว่าคุณกำลังเขียนโปรแกรมซ่อมแซม / กู้คืนดิสก์ สำหรับการใช้งานปกติคุณจะไม่ต้องการเปลี่ยนแปลงข้อมูลในระดับนี้เพราะมันสามารถบ่อนทำลายความสมบูรณ์ของระบบไฟล์และทุกสิ่งที่ใช้งานได้อย่างง่ายดาย
Joe

3
คำตอบสั้น ๆ : ใช้พื้นที่ แต่ไม่นับเป็นส่วนหนึ่งของขนาดไฟล์
user253751

คำตอบ:


50

ใช่ข้อมูลเมตาใช้พื้นที่ว่าง บน NTFS นั้นจะใช้งาน 1024 ไบต์เพื่อให้มีความเฉพาะเจาะจง อย่างไรก็ตามข้อมูลจะไม่ถูกเก็บไว้ในไฟล์ แต่ในตารางไฟล์ต้นแบบ MFT โดยเฉพาะใน MFT บันทึก # $AttrDef4

ดูบทความ Technet นี้สำหรับรายละเอียด: ตาราง 3.5 เก็บบันทึก MFT ทั้งหมดที่กำหนดไว้

เมื่อฟอร์แมตวอลุ่มด้วย NTFS ไฟล์ Master File Table (MFT) และข้อมูลเมตาอื่น ๆ จะถูกสร้างขึ้น ข้อมูลเมตาเป็นไฟล์ที่ NTFS ใช้เพื่อนำโครงสร้างระบบไฟล์ไปใช้ NTFS ขอสงวนระเบียน 16 รายการแรกของ MFT สำหรับไฟล์ข้อมูลเมตา

NTFS สร้างเร็กคอร์ดไฟล์สำหรับแต่ละไฟล์และเรคคอร์ดไดเร็กทอรีสำหรับแต่ละไดเร็กทอรีที่สร้างบนวอลุ่ม NTFS MFT รวมถึงบันทึกไฟล์แยกต่างหากสำหรับ MFT เอง บันทึกไฟล์และไดเรกทอรีเหล่านี้จะถูกเก็บไว้ใน MFT แอ็ตทริบิวต์ของไฟล์ถูกเขียนไปยังพื้นที่ที่จัดสรรใน MFT นอกเหนือจากคุณสมบัติของไฟล์แต่ละเรคคอร์ดไฟล์จะมีข้อมูลเกี่ยวกับตำแหน่งของเรคคอร์ดไฟล์ใน MFT

โปรดทราบว่าระบบไฟล์อื่นสามารถและจัดการแตกต่างกับข้อมูลเมตา

แก้ไข:มันได้รับการชี้ให้เห็นในส่วนความเห็นว่าคำตอบนี้หายไปเพราะ OP ถามหาข้อมูลเมตาบนระบบไฟล์ FAT32 ไม่ใช่ NTFS หากฉันรู้วิธีฉันจะลบคุณลักษณะ "คำตอบที่ถูกต้อง" ดังนั้นฉันจึงให้ข้อมูลเพิ่มเติมที่ตอบคำถามเกี่ยวกับ FAT32

FAT32 บันทึกข้อมูลเมตาอย่างง่ายเช่นการมองเห็นหรือเวลาแก้ไขสำหรับแต่ละไฟล์และโฟลเดอร์ในรายการในโฟลเดอร์พาเรนต์ของไฟล์หรือโฟลเดอร์สร้างต้นไม้ลงจากโฟลเดอร์รูทของ FS ตามที่กล่าวถึง NTFS นี่ไม่ใช่ไฟล์ แต่บันทึกไว้ในโครงสร้างข้อมูลโฟลเดอร์ รายการเริ่มต้นมีขนาดใหญ่ 32 ไบต์และมีแอ็ตทริบิวต์ต่อไปนี้:

Name (8.3) xxxxxxxx.yyy. (88 bits)

Attribute byte (8 bits of information, described later in this section).

One reserved byte.

Create time (24 bits).

Create date (16 bits).

Last access date (16 bits).

Two reserved bytes.

Last modified time (16 bits).

Last modified date (16 bits).

Starting cluster number in the file allocation table (16 bits).

File size (32 bits).

รายการนี้นำมาจากบทความ Microsoft Technetและเกี่ยวข้องกับ FAT16 เนื่องจากขนาดคลัสเตอร์ของ FAT32 สามารถเป็น 32 บิตและชื่อของไฟล์สามารถยาวกว่า 8.3 ตารางจึงไม่ถูกต้องทั้งหมด เพื่อรองรับชื่อไฟล์ที่ยาวและดิสก์ขนาดใหญ่ FAT32 จะแก้ไขพฤติกรรมบางอย่างที่สามารถอ่านได้ใน Wikipedia ที่นี่แต่ความคิดพื้นฐานมีอยู่


2
คุณสามารถใช้ NTFSinfo ของ Sysinternal suite เพื่อดู Metadata และค้นหาส่วนขยายใด ๆ คุณสามารถดาวน์โหลดได้ที่นี่: technet.microsoft.com/en-us/sysinternals/defaultมีตัวแก้ไขข้อมูลเมตาหลายตัวอยู่รอบตัว แต่ฉันไม่สามารถแนะนำใครได้เพราะฉันไม่ได้ใช้
bjanssen

9
@ ข้อมูลเมตา TheGoodUser-Sp อย่างน้อยใน NTFS จะไม่ถูกจัดเก็บใน "a file" ในความหมายทั่วไปซึ่งเป็นสิ่งที่ฉันได้รับความประทับใจที่คุณต้องการ มีไม่ได้เป็นสิ่งที่ซ่อนตัวอยู่ใน \ windows โฟลเดอร์บางที่เราทุกคนเพียงแค่ไม่ได้บอกคุณเกี่ยวกับ; เมตาดาต้าไฟล์เป็นส่วนหนึ่งของระบบไฟล์เอง
Rob Moir

2
ในกรณีนี้แฟลชไดรฟ์ถูกฟอร์แมตเป็น FAT-32 ดังนั้น metada จะถูกเก็บไว้ใน File Allocation Table (FAT) en.wikipedia.org/wiki/File_Allocation_Table
jnovacho

2
สิ่งสำคัญคือให้สังเกตว่าตารางการจัดสรรสำหรับ NTFS และ FAT นั้นได้รับการจัดสรรล่วงหน้า มันแตกต่างจากรูปแบบในการจัดรูปแบบ แต่ภาคส่วนใหญ่มักจะถูกครอบครองด้วยบล็อก preallocated ที่ว่างเปล่าที่จะใช้สำหรับการจัดเก็บข้อมูลเมตาเพื่อลดการกระจายตัว
Kaslai

2
อะไรทำให้คุณคิดว่าข้อมูลเมตามีขนาดคงที่ รายการควบคุมการเข้าถึงอาจมีความซับซ้อนค่อนข้างมาก ผมไม่เห็นว่ามันก็สามารถใส่ใน 1,024 ไบต์ (พร้อมกับข้อมูลเมตาอื่น ๆ เช่นการเข้าถึงและการปรับเปลี่ยนครั้ง)
เบนยต์

26

มันไม่ได้ครอบครองทุกขนาดหรือไม่ !!

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

ขึ้นอยู่กับระบบไฟล์ในที่สุดบล็อกจะถูกเติมและขยายอย่างใดหลังจากมีการเพิ่มชื่อไฟล์จำนวนมาก

ฉันสามารถดูไฟล์ข้อมูลเมตาในหน่วยความจำแฟลชได้หรือไม่

ไม่สะดวก

ดังที่ Ruslan และ Blorgbeard แสดงความคิดเห็น คุณสามารถติดตั้งโปรแกรมดู hex เช่นHxDซึ่งจะช่วยให้คุณดู (และแก้ไข - ระวังให้ดี) ข้อมูลระบบไฟล์ดิบ แต่คุณจะต้องตีความตัวเองว่าเกี่ยวข้องกับไบต์ใดของโครงสร้างระบบไฟล์ เพื่อที่คุณจะต้องมีเอกสารที่ดีของระบบไฟล์เฉพาะที่ใช้กับดิสก์แฟลช FAT32 นั้นน่าจะง่ายต่อการเข้าใจมากกว่า NTFS หลายรุ่น ดูการทำความเข้าใจระบบแฟ้ม FAT32ตัวอย่างเช่น


3
@TheGood หากปราศจาก Google ฉันอาจจะเริ่มต้นโดยการบูท Linux และใช้ddเพื่อคัดลอกระบบไฟล์แฟลชดิบไปยังไฟล์บนดิสก์อื่นจากนั้นใช้ hex-viewer เพื่อตรวจสอบร่วมกับการอ้างอิงที่ดีในระบบไฟล์ที่ระบุ (ถ้าไม่ใช่กรรมสิทธิ์และไม่เปิดเผย) ฉันอาจเปลี่ยนแปลงข้อมูลเมตาด้วยtouchทำซ้ำddและใช้เลขฐานสอง
RedGrittyBrick

1
สิ่งที่ดีฉันไม่ได้ถูกกีดกันจาก Google
คธูลู

5
@Cululhu: คนเก่าไม่มีความต้องการของนิโคติน fhtagn
RedGrittyBrick

2
ไม่จำเป็นต้องเปลี่ยนระบบปฏิบัติการเพื่อใช้ตัวแสดงฐานสิบหกบนฮาร์ดไดรฟ์โดยตรง เพียงใช้มุมมองฐานสิบหกที่เหมาะสม (ดูเหมือนว่าhiewสามารถทำได้ แต่ฉันไม่แน่ใจตั้งแต่ฉันอยู่บน windows นานแล้ว)
Ruslan

1
HxDจะทำเช่นนี้อย่างแน่นอนใน Windows เมนูพิเศษเปิดดิสก์
Blorgbeard

7

ข้อมูลเมตาจะไม่ถูกจัดเก็บ (หรือรายงานโดยเครื่องมือจัดการไฟล์ปกติ) เป็นไฟล์ แต่จะเก็บไว้ในข้อมูลของระบบไฟล์บนดิสก์

ขึ้นอยู่กับลักษณะ / รุ่นของระบบไฟล์แต่ละรายการจะใช้พื้นที่ดิสก์จำนวนหนึ่งเพื่อแสดงข้อมูลเมตาดาต้า

นอกจากพื้นที่ข้างเคียงที่จัดสรรไว้ใน Master File Table แล้วระบบไฟล์บางระบบจะเก็บบันทึกเกี่ยวกับการเปลี่ยนแปลงไฟล์ (ใช้พื้นที่เพิ่มเติม) และระบบไฟล์บางระบบยังสามารถขยายได้ด้วยฟิลด์เพิ่มเติมที่มีข้อมูลเมตาวัตถุประสงค์พิเศษ

ดังนั้นข้อมูลเมตาในทางเทคนิคจะใช้พื้นที่ดิสก์ แต่ไม่ได้คำนึงถึงประโยชน์จากยูทิลิตี้การจัดการไฟล์ส่วนใหญ่ซึ่งใช้งาน API ของระบบการโทรที่สอบถามระบบไฟล์สำหรับพื้นที่ไฟล์ไม่ใช่สำหรับพื้นที่เมทาดาทา

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


3

ข้อมูลเมตาจะขึ้นอยู่กับระบบไฟล์ ระบบไฟล์พื้นฐานส่วนใหญ่ที่ใช้กับสื่อที่แลกเปลี่ยนได้นั้นเป็นไปตามระบบไฟล์ DOS (FAT) DOS ไม่มีผู้ใช้และการอนุญาต หรือยิ่งถูกต้องข้อมูลบางอย่างจะถูกนำไปใช้ในบิตข้อมูลลำดับที่ 8 ของชื่อไฟล์ ค่าโสหุ้ยของทรัพยากรเพียงอย่างเดียวที่ใช้ใน DOS FS พื้นฐานคือการทำบัญชีสำหรับบล็อกของไฟล์หรือไดเรกทอรีที่อยู่ในนั้นและบล็อกนั้นอาจถูกกำหนดไว้แล้วสำหรับการจัดการ "แล้ว" IOW การเพิ่มไฟล์เปล่าจะไม่เพิ่มพื้นที่เก็บข้อมูลอีกเล็กน้อย แต่จะเปลี่ยนบิตที่ใช้แล้วและบิตที่จัดสรรแล้วบางส่วน

เมื่อคุณใช้ระบบไฟล์ขั้นสูงยิ่งขึ้นด้วยการทำเจอร์นัลและผู้ใช้คุณจะได้รับเมทาดาทาและรายการบันทึกประจำวันและอาจเป็นห่วงโซ่ทางนิติวิทยาศาสตร์เพื่อกู้คืนเวอร์ชันไฟล์ก่อนหน้าเป็นต้นจากนั้นไฟล์ขนาดเล็ก

ดังนั้นตรวจสอบประเภท FS หากเป็น FAT แสดงว่าคุณอาจไม่มีผู้ใช้ที่บันทึกในข้อมูลเมตาบนสื่อ ดังนั้น ... ไม่มีพื้นที่ว่าง :)

ตัวอย่างที่ดีของ FAT FSคือการใช้งานโอเพ่นซอร์ส - และคุณจะเห็นว่ารายการของการดำเนินการที่มีอยู่ไม่รวมถึง "รับ / ตั้งผู้ใช้" และ "ตรวจสอบการเข้าถึงโดยผู้ใช้" ไม่มีตัวตน = ไม่มีที่เก็บข้อมูลของตัวตนนั้น


2

ดังที่คุณเห็นในภาพด้านบนมีเพียงพื้นที่เดียวที่ไฟล์นั้นครอบครองบนแฟลชคือพื้นที่สำหรับเนื้อหา [ตัวอักษร] ดังนั้นไฟล์เมตาดาต้าอยู่ที่ไหน?

"ไฟล์เมตาดาต้า" เป็นไดเรกทอรีที่มีไฟล์ โดยทั่วไปแล้วสิ่งที่ไดเรกทอรีคือชุดของข้อมูลเมตาอธิบายเนื้อหาของไดเรกทอรี

ฉันหมายถึงเมื่อฉันย้ายไฟล์ไปยังคอมพิวเตอร์เครื่องอื่นมันเข้าใจชื่อไฟล์ได้อย่างไรเจ้าของไฟล์วันที่สร้างและแก้ไขและ ... ?

มันไม่ได้ครอบครองทุกขนาดหรือไม่ !!

ใช่ในไดเรกทอรี ใน filesytems ส่วนใหญ่ไฟล์เดียวกันสามารถมีสองชื่อที่แตกต่างกันถ้ามันถูกลิงค์ไปยังสองไดเรกทอรีที่แตกต่างกัน

ฉันสามารถดูไฟล์ข้อมูลเมตาในหน่วยความจำแฟลชได้หรือไม่

หากระบบไฟล์ของคุณรองรับคุณสามารถดูได้โดยดูที่ขนาดของไดเรกทอรี


2

ข้อมูลเมตาถูกเก็บไว้ที่ไหน

เมื่อเราพูดถึงข้อมูลเมตามีข้อมูลเมตาสองประเภท

ประเภทแรกประกอบด้วยวันที่สร้างวันที่แก้ไขล่าสุดวันที่เข้าถึงล่าสุด ขึ้นอยู่กับระบบไฟล์ (เช่น NTFS / FAT / Ext3 ฯลฯ ... ) จะมี "metadata" ที่แตกต่างกันเช่นเจ้าของ Windows และสิทธิ์บน NTFS

ประเภทแรกจะใช้กับไฟล์ทั้งหมดเช่นไฟล์. txt ในตัวอย่างของคุณ

ระบบไฟล์ทั้งหมดจัดสรรพื้นที่ล่วงหน้าเพื่อให้มีข้อมูลเมตาเหล่านี้ที่ตารางไฟล์ต้นแบบ (MFT สำหรับ NTFS ชื่ออื่นสำหรับระบบไฟล์อื่น) ซึ่งผู้ใช้ไม่สามารถเข้าถึงได้โดยตรง เนื่องจาก MFT ไม่ถูกนับเป็นส่วนหนึ่งของความจุของไดรฟ์จึงไม่มีพื้นที่เก็บข้อมูลเพิ่มเติมที่ต้องการ

"metadata" ประเภทที่สองถูกกำหนดโดยประเภทไฟล์หรือแอปพลิเคชัน ตัวอย่างเช่นเอกสาร Office จะรักษา "ผู้แต่ง", "หัวเรื่อง" และข้อมูลเมตาอื่น ๆ ; ภาพ JPEG เก็บชุดของข้อมูล EXIF ​​รวมถึง "วันที่ถ่ายภาพ", "รุ่นกล้อง", "ความเร็วชัตเตอร์"; ในขณะที่เสียง MP3 มี "album", "track #", "bitrate" ...

ชนิดที่สอง DOES ใช้พื้นที่เพิ่มเติมเนื่องจาก "ข้อมูลเมตา" เหล่านี้เป็นส่วนหนึ่งของไฟล์


ขนาดแตกต่างกันในไดรฟ์ที่แตกต่างกัน

เมื่อไฟล์ข้อความของคุณเปิดอยู่C:\จะใช้เวลานานถึง 4K มันจะกลายเป็นขนาด 1K เมื่อคุณใส่ไว้ในแฟลชไดรฟ์ของH:\คุณ นี่เป็นเพราะ "ขนาดบล็อก" ที่แตกต่างกันสำหรับพาร์ติชันที่แตกต่างกัน

ไฟล์ถูกจัดสรรพื้นที่ในบล็อก ดังนั้นในระบบไฟล์ที่มีขนาดบล็อก 4K จะมีการจัดสรร 1 ไบต์ 4K ในขณะที่ 4,097 ไบต์ (4K + 1 ไบต์) จะถูกจัดสรร 8K

เห็นได้ชัดว่าคุณC:ได้รับการจัดรูปแบบด้วยขนาดบล็อก 4K ขณะที่H:จัดรูปแบบด้วยขนาดบล็อก 1K ทำให้เกิดความแตกต่าง


เมื่อฉันคัดลอกไฟล์ข้อความเปล่าไปยังหน่วยความจำแฟลชเมตาดาต้าของมันจะถูกย้ายไปยังหน่วยความจำแฟลช ตอนนี้มีวิธีใดบ้างใน Linux ที่จะดูไฟล์ข้อมูลเมตา ในไบนารีเช่น
TheGoodUser

การคัดลอกข้อมูลเมตานั้นขึ้นอยู่กับว่าคุณทำหรือไม่ ตัวอย่างเช่นrobocopyให้คุณเลือกว่าจะคัดลอกการประทับเวลาคุณลักษณะข้อมูลเจ้าของรายการควบคุมการเข้าถึง (ACL) ฯลฯ หรือไม่นอกจากนี้ยังขึ้นอยู่กับว่าระบบไฟล์ในหน่วยความจำแฟลชของคุณรองรับหรือไม่ (เช่น FAT32 ไม่เก็บข้อมูลเจ้าของและ ACL ยกเลิกไปแล้ว) ข้อมูลเมตาไม่ได้อยู่ในรูปแบบของไฟล์ดังนั้นคุณไม่สามารถดูข้อมูลดิบได้ ถ้าคุณต้องการเห็นสิ่งต่าง ๆ ในระดับต่ำคุณอาจต้องการddใน Linux แต่วิธีการตีความมันเป็นอีกเรื่องหนึ่ง
Kenneth L
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.