ฉันจะตรวจสอบว่าไฟล์ใดครอบครองภาคที่กำหนด?


34

ฉันมีฮาร์ดไดรฟ์ที่มี 3 ส่วนที่ไม่ดี ฉันรู้ว่าหมายเลขเซกเตอร์และคอมพิวเตอร์ยังสามารถบูตเข้าสู่ Windows ได้ ฉันต้องการเรียกใช้การซ่อมแซมเซกเตอร์จากเครื่องมือวินิจฉัย HDD จากผู้ผลิต แต่ก่อนที่ฉันจะทำเช่นนั้นฉันต้องการทราบว่าไฟล์ใดบ้างที่ได้รับผลกระทบ มีวิธีที่จะคิดออกว่าไฟล์หรือไฟล์ใดบ้างที่ครอบครองภาคเหล่านั้นหรือไม่?


1
เครื่องมือแก้ไขส่วนของ roadkil อาจเป็นส่วนหนึ่งของโปรแกรม แต่ไม่แสดงรายการโปรแกรม
barlop

ดูเพิ่มเติมวิธีการค้นหาไฟล์ที่อยู่ในส่วนใดส่วนหนึ่ง - คำถามเดียวกัน แต่สำหรับระบบไฟล์ NTFS ที่เข้าถึงได้จาก Linux
sleske

คำตอบ:


22

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

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

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

  2. หากพาร์ติชันที่คุณระบุเป็นพาร์ติชัน NTFS หรือ FAT เราสามารถเปิดพาร์ติชันได้โดยตรง ( "เปิดดิสก์"อีกครั้ง) จะเป็นการเปิดพาร์ติชันในแท็บใหม่ดังนั้นคุณสามารถสลับไปมาได้ตามต้องการ ในแท็บพาร์ติชันใช้ฟังก์ชัน"ไปที่เซกเตอร์"อีกครั้ง แต่คราวนี้ป้อนเซกเตอร์ที่แปลแล้ว ( "เซกเตอร์สัมพันธ์" ที่ระบุในมุมมองไดรฟ์)

    ขณะนี้ในบานหน้าต่างด้านซ้ายมือคุณจะเห็นส่วนบน"Alloc. ของพื้นที่ไดรฟ์ที่มองเห็น" ภายใต้สิ่งนี้คือ # คลัสเตอร์, เซกเตอร์กายภาพ, ตรรกะ (สัมพัทธ์) เซกเตอร์ # และชื่อไฟล์ถ้าเซกเตอร์นี้เป็นของไฟล์จริง

หากขั้นตอนเหล่านี้ไม่สามารถให้คำตอบได้ทันทีเซกเตอร์เสียของคุณอาจไม่ได้ใช้งาน หากผลลัพธ์ไม่ชัดเจนคุณอาจต้องขุดอีกเพื่อค้นหาคำตอบ


1
เวอร์ชันที่ดาวน์โหลดได้อ้างว่าเป็นรุ่นประเมินผล แต่ดูเหมือนว่ามีความสามารถมาก ฉันไม่แน่ใจว่าช่วงเวลาทดลองใช้คืออะไร ดูที่นี่สำหรับตัวเลือกใบอนุญาต: x-ways.net/winhex/order.html
quack quixote

WinHex เป็นระเบิด .... พบไฟล์ที่ได้รับผลกระทบจากเซกเตอร์เสีย (ภาคสมบูรณ์จากการสแกนพื้นผิว) ในไม่กี่นาที การสอนที่ยอดเยี่ยม ขอบคุณฉันจะลงคะแนนให้คุณ up "quack quixote" แต่ฉันไม่มีชื่อเสียง 15 ข้อที่จำเป็น ......

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

เว็บไซต์ winhex ไม่สามารถใช้งานได้ ( i.imgur.com/1FAX5cN.png ) ลองใช้วิธีแก้ปัญหา nfi ด้านล่าง ตรงและเรียบง่าย ฟรี. "คำตอบทันที";)
Costin Gușă

21

ลอง nfi.exe - ยูทิลิตี้ข้อมูลเซกเตอร์ข้อมูลระบบไฟล์ Windows NT (NTFS) ดาวน์โหลดได้จากเครื่องมือของ Microsoft OEM สนับสนุนเฟส 3 SR2

> nfi.exe
Dumps information about an NTFS volume, and optionally determines
which volume and file contains a particular sector.

Usage: nfi drive-letter [logical-sector-number]

        Drive-letter can be a single character or a character followed
        by a colon (i.e., C or C: are acceptable).

        Logical-sector-number is a decimal or 0x-prefixed hex
        number, specifying a sector number relative to the volume
        whose drive letter is given by drive-letter. If not
        specified, then information about every file on the volume
        is dumped.

   nfi NT-device-path physical-sector-number

        Determines which volume a given physical sector on a drive is
        within, and then which file on the volume it is in.

        NT-device-path is the NT-style path to a physical device.
        It must not include a partition specification.

        Physical-sector-number is a decimal or 0x-prefixed hex
        number, specifying a sector number relative to the physical
        drive whose device path is given by NT-device-path.

    nfi full-win32-path

        Dumps information about a particular file. full-win32-path
        must start with a drive letter and a colon.

หมายเหตุคุณต้องละเว้น "\\?" คำนำหน้าของเส้นทางอุปกรณ์บล็อก ตัวอย่าง:

C:\Users\admin\Downloads>nfi \Device\Harddisk0\DR0 28521816
NTFS File Sector Information Utility.
Copyright (C) Microsoft Corporation 1999. All rights reserved.


***Physical sector 28521816 (0x1b33558) is in file number 5766 on drive C.
\IMAGES\win7HDD.vhd
    $DATA (nonresident)
        physical sectors 32863720-34098663 (0x1f575e8-0x2084de7)
        physical sectors 28519912-32863719 (0x1b32de8-0x1f575e7)
        physical sectors 25727944-26291143 (0x18893c8-0x1912bc7)
        physical sectors 95163976-115106143 (0x5ac1648-0x6dc615f)

ฉันเข้าสู่ระบบเพื่อลงทะเบียน ควรทำเครื่องหมายเป็นคำตอบ!
Costin Gu Sepă

หากคุณไม่รู้NT-device-pathคุณสามารถลองใช้มันdd --listดู (ความสนใจกับผู้ใช้ที่มีเครื่องมือ Unix ในPATH: ddนี่คือC:\WINDOWS\system32\dd.exeคุณอาจต้องใช้เส้นทางแบบเต็ม)
ผู้ใช้

Windows 10 ไม่มียูทิลิตี้นี้ใน system32 c:\Windows\System32>dd.exe 'dd.exe' is not recognized as an internal or external command, operable program or batch file.
Aen Sidhe

1
ลิงค์ดาวน์โหลดในเว็บไซต์ของไมโครซอฟท์จะตาย
ลุ่มน้ำ

1
นอกจากนี้ยังสามารถพบได้ในเครื่อง wayback web.archive.org/web/20150329185738/http://…
mkey

8

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

ขณะที่วอลเตอร์กล่าวว่าดิสก์และระบบปฏิบัติการใด ๆ คำสั่งผสมจากทศวรรษที่ผ่านมาหรือดังนั้นจะให้แน่ใจว่าจะขนย้ายไฟล์จากภาคที่ไม่ดีโดยอัตโนมัติ (ไดรฟ์เฟิร์มมักจะจัดการกับเรื่องนี้ แต่เครื่องมือดิสก์เหมือนchkdskหรือ defragmenters มักจะทำเช่นนี้ได้เช่นกัน)


Defraggler:

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

Defrag-a-ไฟล์:

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

Vopt:

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


ดูมีแนวโน้มฉันจะปล่อยมันไป
ChrisWue

6

DiskViewจาก Sysinternals ทำหน้าที่นี้อย่างสมบูรณ์: เพื่อแสดง diskmap ของไดรฟ์และให้คุณดูว่าไฟล์ใดที่ครอบครองคลัสเตอร์อะไร

น่าเสียดายที่ดูเหมือนจะไม่มีวิธีการแสดงชื่อไฟล์ระบบ

หน้าต่างหลักของ DiskView ไฟล์ระบบ DiskView



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

5

คุณสามารถใช้fsutilจากพรอมต์คำสั่งของผู้ดูแลระบบ คำสั่งย่อยvolumeมีคำqueryclusterสั่งย่อย ดูของ Windows บรรทัดคำสั่ง Fsutil

Fsutil ใช้หมายเลขคลัสเตอร์ในโลจิคัลไดรฟ์เป็นอาร์กิวเมนต์อินพุตแทนหมายเลขเซกเตอร์ แต่มันควรง่ายต่อการคำนวณจำนวนนี้:
cluster # = (absolute_sector - start_of_partition_sector) / sector_per_cluster

ตัวอย่างผลลัพธ์:

c:\tmp> fsutil volume querycluster C: 5235
Cluster 0x0000000000001473, verwendet von
 ----D \Program Filesx86)\LibreOffice 4\program\fwilo.dll::$DATA

3

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

ฉันพยายามที่จะขุดแหล่งที่มาเพียงแค่อ่านเมื่อวานนี้ แต่จำไม่ได้ว่าอยู่ที่ไหน

จากผู้ชาย hdparm (8)

โปรดทราบว่าแฟล็ก --repair-sector สามารถใช้เพื่อเรียกคืนเซกเตอร์เสีย (ใด ๆ ) เมื่อไม่ต้องการอีกต่อไปรวมถึงเซกเตอร์ที่ไม่ดีอย่างแท้จริง (ไดรฟ์จะทำการแมปไปยังพื้นที่สดบนสื่อ

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


ฉันค่อนข้างมั่นใจว่าการจัดสรรใหม่เกิดขึ้นเมื่อเขียนไม่ใช่อ่าน ดูเหมือนว่าข้อมูล SMART ของไดรฟ์นั้นยืนยัน จำนวนเซกเตอร์ที่ค้างอยู่นั้นสูง (มากกว่า 0) ในขณะที่ Sector Reallocation Count คือ 0 สำหรับฉันนั่นหมายถึง: มีเซกเตอร์ที่ไม่ดีสำหรับการจัดสรรใหม่ แต่พวกเขายังไม่ได้ถูกจัดสรรใหม่
ChrisWue

คุณลอง CHKDSK หรือยัง en.wikipedia.org/wiki/CHKDSK
Baarn

ดูตัวเลือก / r
Baarn

การรับข้อมูลเกี่ยวกับไฟล์ที่จัดเก็บในเซกเตอร์นั้นดูเหมือนจะเป็นไปไม่ได้
Baarn

2

DiskExplorer ของRunTimeช่วยให้คุณสามารถตรวจสอบไดรฟ์ตามเซกเตอร์ เป็นเครื่องมือชำระเงิน ($ 70 สำหรับรุ่น NTFS) แต่ให้ลองฟรี มีรุ่นสำหรับ NTFS, FAT และ Linux (ext2 / 3)

ข้อความแสดงแทน


สิ่งนี้ดูมีแนวโน้ม แต่น่าเศร้าที่มันไม่ทำงาน DiskExplorer แสดง "รายการ MFT ไม่ถูกต้อง" สำหรับทุกส่วนของไดรฟ์

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

ไม่ใช่ปัญหาการตั้งค่า แต่ Disk Explorer นั้นซับซ้อนและใช้งานยากมาก มันไม่อัตโนมัติพอ (โปรแกรม DOS Norton Disk Doctor รุ่นเก่านั้นคล้ายกัน แต่ใช้งานได้ง่ายกว่ามากเพราะมันอ่านและปรับให้เป็นโครงสร้างของระบบไฟล์โดยอัตโนมัติน่าเสียดายที่มันไม่รองรับ NTFS และถูกยกเลิกไปแล้ว)
Synetech

0

ฉันรู้ว่าเธรดเก่า แต่สำหรับบันทึกสำหรับทุกคนที่มีปัญหาดังกล่าวมีวิธีการตรวจสอบจาก linux เราสามารถใช้ลินุกซ์สดบน cd / usb stick ได้เช่น slax ซึ่งง่ายต่อการรัน อย่างไรก็ตามกลับไปทำธุรกิจ

ฉันได้พบในวันนี้บางบันทึก smartd deamon ด้วยคำเตือนภาคอ่านไม่ได้และตัดสินใจที่จะตรวจสอบว่า ในที่สุดหลังจากการวิจัยฉันทำงานในที่สุด (# คือการแจ้งให้ระบุสิทธิ์ root, sudo สามารถใช้แทนหากมีการเรียกใช้ในฐานะผู้ใช้ธรรมดา):

# smartctl -H /dev/sda2

SMART overall-health self-assessment test result: PASSED

ซึ่งบ่งบอกว่าไดรฟ์นั้นค่อนข้างมีสุขภาพที่ดี badblocksแต่ผมทำตามและการตรวจสอบต่อไปและวิ่ง

# badblocks -v /dev/sda2 > ~/log/sda2.badsectors
# cat ~/log/sda2.badsectors

271521948

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

# ntfscluster -s 271521948 /dev/sda2 > 271521948.secinfo 2>&1
# cat 271521948.secinfo | grep -v "extent"

Searching for sector 271521948
Inode 142427 /tmp/dl/setup_torch_2.exe/$DATA
* one inode found

/ grep -v "extent"คือกำจัดข้อมูลที่ไร้ประโยชน์มากมายที่แสดงโดยntfscluster/

ดังนั้นในกรณีของ NTFS ntfscluster -s $SECTORหนึ่งทุกความต้องการคือ

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