ข้อมูลเมตาของไฟล์ถูกเก็บไว้ใน Windows อย่างไร


13

(ฉันใช้ Windows XP แต่ฉันคิดว่ามันคล้ายกันใน Windows รุ่นล่าสุดทั้งหมด)

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

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


ไม่มีเวทย์มนตร์ที่นี่ อ่านคำตอบเหล่านี้ได้ที่นี่: stackoverflow.com/questions/4954991/…
HighTechGeek

เมื่อนานมาแล้วฉันจำได้ว่าเคยมีไวรัสชนิดหนึ่งที่ทำให้ไฟล์บางไฟล์ในพีซีของฉันเสียหายเพื่อให้ไฟล์เหล่านั้นมีขนาดประมาณ 100GB แต่ละคน ในฮาร์ดดิสก์ 40GB ของฉัน ดังนั้นจะต้องมีเวทมนตร์บางอย่าง ... :-D
Jeyekomon

1
ตัวอย่างเช่น: ntfs.com/ntfs_basics.htm
Koray Tugay

คำตอบ:


11

คุณได้รับการสอนว่าฮาร์ดดิสก์มีไฟล์อยู่ แต่นั่นไม่ใช่ความจริงทั้งหมด อันที่จริงแล้วฮาร์ดไดรฟ์นั้นมีจำนวนมากหนึ่งตัวซึ่งมีขนาดใหญ่มากซึ่งแสดงด้วยบิตเดียว แต่การตีความนี้ไม่สมเหตุสมผลกับคุณและคอมพิวเตอร์ของคุณเพราะการประมวลผลตัวเลขจำนวนมากนั้นไม่ธรรมดามาก (และฉันกำลังพูดถึงจำนวนมหาศาลจริงๆ) แต่คอมพิวเตอร์จะแบ่งออกเป็น 'word' ที่เล็กกว่า (8-bit, 16-bit, 32-bit หรืออะไรก็ตาม) และใช้แบบนั้น ถึงกระนั้นนั่นก็เป็นเพียงคำศัพท์ (สมมติว่าเป็น 8 บิตเช่นไบต์)

ตอนนี้ไดรฟ์นั้นได้รับการแบ่งพาร์ติชันแล้ว ฉันได้อธิบายว่าทำไมการแบ่งพาร์ทิชันจึงเป็นความคิดที่ดีในคำตอบนี้ :

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

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

ตอนนี้ทุกพาร์ติชันมีระบบไฟล์ของตัวเอง Windows รุ่นทันสมัยใช้NTFSแต่รองรับFAT , FAT32และexFATสำหรับสื่อภายนอกหรือพาร์ติชันเก่า การติดตั้งลีนุกซ์ที่ใช้งานทุกวันมักจะใช้ระบบไฟล์ext , ext4เป็นระบบล่าสุด

ระบบไฟล์กำหนดวิธีที่ไฟล์จะอยู่ในดิสก์ คุณสามารถคิดแบบนี้: ถ้าคุณมีหนังสือ 10,000 หน้าโดยไม่มีบทใด ๆ หมายเลขหน้าหรือตัวแบ่งบรรทัดมันจะยากมากที่จะใช้ แน่นอนว่าเลขหน้าและชื่อบทต้องใช้พื้นที่บนหน้ากระดาษ แต่มันทำให้การใช้หนังสือง่ายขึ้นและเร็วขึ้นมาก หากคุณต้องการข้ามไปยังบทที่สมมติว่า 42 คุณเพียงแค่ค้นหาในสารบัญ จากนั้นคุณอ่านหนังสือจนกว่าคุณจะพบบทที่คุณต้องการ ไฟล์ของคุณเป็นบทและระบบไฟล์ของคุณเป็นหนังสือ เมตาดาต้าระบบไฟล์เช่นขอบเขตไฟล์ชื่อไฟล์ ฯลฯ ใช้พื้นที่มากเกินไป แต่ก็มีพื้นที่ขนาดเล็กเมื่อเปรียบเทียบและทำให้สิ่งต่าง ๆ ทำงานเร็วขึ้นมาก

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

นี่คือเหตุผลที่ DOS รุ่นแรก ๆ ยอมรับชื่อเพียง 8.3 ชื่อ - พื้นที่ที่สงวนไว้สำหรับชื่อไฟล์นั้นมี จำกัด มาก NTFS ช่วยให้ชื่อไฟล์ที่มี 255 ตัวอักษรยาว[1]


อีกเพียงหนึ่งคำในความคิดเห็นของคุณ:

ฉันเคยมีไวรัสชนิดหนึ่งที่ทำให้ไฟล์บางไฟล์ในพีซีของฉันเสียหายดังนั้นไฟล์เหล่านี้จึงมีขนาดประมาณ 100GB แต่ละคน ในฮาร์ดดิสก์ 40GB ของฉัน ดังนั้นจะต้องมีเวทมนตร์บางอย่าง ... :-D

ว่าเป็นไปได้อย่างสมบูรณ์ที่จะมีผลบังคับใช้ไฟล์ขนาดใหญ่กว่าขอบคุณฮาร์ดไดรฟ์ของคุณเพื่อคุณลักษณะที่เรียกว่าไฟล์เบาบาง Hennes มีคำอธิบายที่ยอดเยี่ยมเกี่ยวกับสิ่งเหล่านี้ในความคิดเห็นของเขาเกี่ยวกับคำถามนี้ :

ลองนึกภาพเครื่องผูกที่สามารถถือได้ 100 หน้า หากคุณใช้เครื่องผูกนั้นเป็นไฟล์ปกติคุณสามารถแทรก 100 หน้า คุณสามารถอ่านทั้งหมด 100 คุณสามารถเขียนถึง 100 ทั้งหมดตอนนี้ลองนึกภาพเครื่องผูกกระจัดกระจาย คุณแทรกหน้าแรกที่คุณเขียน "หน้า 1: เนื้อหา A" จากนั้นคุณแทรกหน้าที่สองที่คุณเขียน "หน้า 9999: เนื้อหา b:" เมื่อใดก็ตามที่คุณพยายามอ่านหน้าเว็บคุณจะดูว่ามีอยู่จริงหรือไม่ หากไม่เป็นเช่นนั้นคำตอบของคุณจะเป็นหน้าที่ว่างเปล่า หากมีอยู่คุณจะส่งคืนเนื้อหาของหน้า เมื่อใดก็ตามที่คุณเขียนไปยังหน้าที่ไม่มีอยู่ในแฟ้มคุณเพิ่มกระดาษใหม่


ไม่งั้นคุณจะเห็นชื่อไฟล์ในไฟล์ข้อความใช่ไหม ชนิดของไฟล์ที่หลากหลายเช่นรูปภาพหรือไฟล์ PDF อาจมีข้อมูลเมตาจำนวนมาก แม้แต่ไฟล์ข้อความที่เข้ารหัส UTF-8 ที่เรียบง่ายก็มีลำดับ EFBBBF ซึ่งถูกซ่อนไว้โดยโปรแกรมแก้ไขข้อความส่วนใหญ่ดังนั้นฉันจึงคาดว่าข้อมูลเมตาของไฟล์จะเป็นเพียงส่วนหนึ่งที่ซ่อนอยู่และไม่ถูกต้องของไฟล์ อย่างไรก็ตามคุณเป็นครูที่ยอดเยี่ยม! ทุกคำตอบที่ได้รับที่นี่คือ (และจะ) เป็นประโยชน์จริง ๆ ในทางใดทางหนึ่ง แต่ฉันขอขอบคุณความพยายามของคุณมากที่สุด
Jeyekomon

นี่ไม่ได้ตอบคำถามใช่ไหม? ดังนั้นข้อมูลเมตาทั้งหมดจะถูกเก็บไว้ที่ไหน
Koray Tugay

@KorayTugay ฉันเชื่อว่าคำถามที่แท้จริงคือ "เมตาดาต้าของไฟล์ถูกเก็บไว้ใน Windows อย่างไรเพื่อไม่ให้เปลืองพื้นที่ " ในความคิดของฉันคำตอบที่ดีที่สุดที่คุณสามารถให้ในโพสต์ผู้ใช้ขั้นสูงคืออธิบายว่าพวกเขาจะถูกเก็บไว้ในระบบไฟล์ไม่ได้อยู่ในไฟล์โดยตรงและนั่นเป็นสาเหตุที่ไม่นับขนาดไฟล์ พวกเขาอยู่ในหนังสือ แต่ไม่ได้เป็นส่วนหนึ่งของข้อความ
gronostaj

7

เพิ่งเรียนรู้ในวันนี้เกี่ยวกับ Windows Alternate Data Streams (ADS) นี่คือส้อมทรัพยากรที่ซ่อนอยู่ซึ่งแนบมากับไฟล์ มันเป็นส่วนหนึ่งของ NTFS ตั้งแต่ Windows NT 3.1

ตัวอย่างเช่นหากคุณมีไฟล์ข้อความเปล่า แต่กรอกข้อมูลสรุปบางส่วนในแท็กคุณสมบัติของไฟล์ไฟล์โฆษณา ADS ที่ซ่อนอยู่จะถูกสร้างและแนบกับไฟล์ข้อความ Windows ส่วนใหญ่ไม่ได้มีขนาดของไฟล์โฆษณาเมื่อรายงานขนาดของไฟล์ต้นฉบับ

คุณสามารถสร้างและดูไฟล์โฆษณาจากพรอมต์คำสั่ง

echo "ABCDE" > test.txt:hidden.txt

จะสร้างไฟล์ test.txt ด้วยไฟล์ ADS ชื่อ hidden.txt

คุณสามารถใช้คำสั่งนี้เพื่อแก้ไขไฟล์:

notepad test.txt:hidden.txt

นี่คือบทความที่อ่านง่ายที่จะให้รายละเอียดมากขึ้น


นั่นเป็นสิ่งที่น่าสนใจจริงๆ! ฉันไม่เคยได้ยินเรื่องนี้มาก่อนเลย ... ขอบคุณ
Jeyekomon

@Jeyekomon ดูเหมือนว่า 'พิมพ์' ไม่สนับสนุนมันpastebin.com/raw/4Ae3GGkN แต่ฉันเห็นก้องและ Notepad ไม่ (ผ่านการทดสอบใน win7)
barlop

2

ฉันค้นหาและพบคำถามที่คล้ายกันที่ถามใน Stack Overflow

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

พวกเขาพูดคุยกันได้ที่นี่: /programming/4954991/are-0-bytes-files-really-0-bytes

พร้อมลิงก์เพิ่มเติมสำหรับการวิจัยเพิ่มเติม


2

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

สำหรับการอ่านเพิ่มเติม:

http://ntfs.com/ntfs-system-files.htm

http://en.wikipedia.org/wiki/NTFS


ขอบคุณ. ดังนั้นคำตอบอยู่ที่ความเข้าใจที่ลึกซึ้งยิ่งขึ้นของระบบไฟล์ HDD ของฉัน ... และจากความอยากรู้คุณรู้วิธีการ "ผิดปกติ" ของ Windows หรือไม่? อันที่จริงมีประโยชน์สำหรับการเข้าถึง metafiles เหล่านั้น คำหลักสองสามคำสำหรับ google น่าจะพอ ...
Jeyekomon

1
@Jeyekomon คุณต้องใช้โปรแกรมแก้ไขภาค มีตัวอย่างอยู่ที่นี่: blogs.technet.com/b/askcore/archive/2013/03/01/…
David Marshall
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.