Bagaimana cara menentukan file apa yang menempati sektor tertentu?

34

Saya memiliki hard drive dengan 3 bad sector. Saya tahu nomor sektor dan komputer masih bisa boot ke Windows. Saya ingin menjalankan perbaikan sektor dari alat diagnostik HDD dari produsen, tetapi sebelum saya melakukannya, saya ingin tahu file apa yang terpengaruh. Apakah ada cara untuk mengetahui file apa yang menempati sektor-sektor tersebut?

Jens Erat
sumber
1
Editor sektor roadkil mungkin ikut serta, hanya saja tidak mencantumkan program.
barlop
Lihat juga Cara mengetahui file apa yang ada di sektor tertentu - pertanyaan yang sama, tetapi untuk sistem file NTFS diakses dari Linux.
sleske

Jawaban:

22

Inilah proses menggunakan WinHex , editor hex berguna yang dapat memeriksa dan mengedit drive secara langsung. Berhati-hatilah; alat ini dapat merusak sistem Anda jika digunakan secara tidak tepat. Buka disk hanya-baca bila memungkinkan.

  1. Karena Anda sudah memiliki lokasi bad sector, Anda dapat membuka drive di WinHex secara langsung ( tombol toolbar "Open Disk" ) dan kemudian menavigasi ke sektor untuk melihat data ( tombol toolbar "Pergi ke Sektor" ). Dengan asumsi lokasi sektor Anda adalah alamat sektor fisik, Anda perlu membuka drive fisik Anda pada langkah ini.

    Ini tidak akan mengidentifikasi file secara langsung, tetapi panel sebelah kiri harus mengidentifikasi partisi yang berisi sektor ini dan alamat sektor relatifnya .

  2. Jika partisi yang Anda identifikasi adalah partisi NTFS atau FAT, kami dapat membuka partisi tersebut secara langsung ( "Buka Disk" lagi). Ini akan membuka partisi di tab baru, sehingga Anda dapat beralih bolak-balik sesuai kebutuhan. Di tab partisi, gunakan lagi fungsi "Pergi ke Sektor" , tetapi kali ini masukkan sektor yang diterjemahkan ( "sektor relatif" yang diidentifikasi dalam tampilan drive).

    Sekarang, di panel sebelah kiri, Anda akan melihat bagian tentang "Alokasi ruang drive yang terlihat" . Di bawah ini adalah # cluster, # sektor fisik, # sektor (relatif) logis, dan nama file jika sektor ini benar-benar milik file.

Jika langkah-langkah ini tidak memberi Anda jawaban langsung, bad sector Anda mungkin tidak digunakan. Jika hasilnya tidak jelas, Anda mungkin harus melakukan penggalian lagi untuk menemukan jawaban Anda.

quack quixote
sumber
1
versi yang dapat diunduh mengklaim sebagai versi evaluasi, tetapi tampaknya sangat mampu. Saya tidak yakin apa masa percobaannya. lihat di sini untuk opsi lisensi: x-ways.net/winhex/order.html
quack quixote
WinHex adalah bom .... Menemukan file apa yang terpengaruh sektor buruk (sektor absolut dari pemindaian permukaan) dalam hitungan menit. Tutorial yang luar biasa. Terima kasih saya akan memilih Anda "quack quixote" tapi saya tidak memiliki 15 reputasi yang diperlukan ......
Bisakah antarmuka pengguna dipaksa mengungkapkan informasi ini tanpa membaca sektor ini? Saya melakukan pemulihan pada disk yang mati (lepas dan mati) ketika saya membaca sektor tertentu.
sheldonh
situs web winhex muncul turun / tidak tersedia ( i.imgur.com/1FAX5cN.png ) coba solusi nfi di bawah ini. lurus dan sederhana. bebas. "jawaban langsung";)
Costin Gușă
21

Coba nfi.exe - Windows NT File System (NTFS) Utilitas Informasi Sektor File. Unduh dari Microsoft OEM Support Tools Phase 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.

Perhatikan Anda harus menghilangkan "\\?" awalan dari jalur perangkat blok. Contoh:

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)
Robert Collier
sumber
Saya masuk hanya untuk memperbaiki ini. ini harus ditandai sebagai jawaban!
Costin Gușă
Jika Anda tidak tahu NT-device-path, Anda dapat mencoba menemukannya dd --list. (Perhatian kepada pengguna dengan alat Unix di PATH: di ddsini adalah C:\WINDOWS\system32\dd.exe, Anda mungkin perlu menggunakan path lengkap)
pengguna
Windows 10 tidak memiliki utilitas ini di 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
Link download di situs microsoft mati
cekungan
1
Dapat juga ditemukan di mesin wayback web.archive.org/web/20150329185738/http://…
mkey
8

Sebagian besar program defragmenting menunjukkan disk-peta yang menampilkan semua cluster pada disk yang kemudian dapat Anda klik (lihat yang ditandai sebagai buruk). ) untuk melihat file yang terletak di cluster itu.

Seperti kata Walter, setiap kombo disk dan OS dari dekade terakhir atau lebih akan memastikan untuk memindahkan file dari bad sector secara otomatis (firmware drive biasanya menangani ini, tetapi alat disk suka chkdskatau defragmenter biasanya akan melakukan ini juga).


Defraggler:

masukkan deskripsi gambar di sini

Defrag-a-File:

masukkan deskripsi gambar di sini

Memilih:

masukkan deskripsi gambar di sini

Synetech
sumber
Terlihat menjanjikan, saya akan mencobanya.
ChrisWue
6

DiskView dari Sysinternals melakukan persis fungsi ini: untuk menampilkan diskmap drive dan membiarkan Anda melihat file apa yang menempati cluster apa.

Sayangnya, sepertinya tidak ada cara untuk menampilkan nama-nama file sistem.

Jendela utama DiskView File sistem DiskView

Synetech
sumber
Itu sebabnya saya mempostingnya sebagai jawaban yang terpisah, karena ini adalah alat yang dibuat khusus untuk tujuan ini, jadi itu menjawab pertanyaan, tetapi terbatas (saya masih menggunakan FAT32 secara ekstensif), jadi itu bukan be-all-end- semua solusi. (Namun?)
Synetech
5

Anda dapat menggunakan fsutildari command prompt Administrator. Subcommand volumememiliki queryclustersubsubcommand. Lihat Fsutil Referensi Baris Perintah Windows .

Fsutil mengambil nomor cluster di drive logis sebagai argumen input, bukan nomor sektor. Tetapi harus mudah untuk menghitung angka ini:
cluster # = (absolute_sector - start_of_partition_sector) / sector_per_cluster.

Contoh output:

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

sejauh yang saya tahu ketika drive mencapai sejumlah kesalahan baca pada suatu sektor ditandai sebagai buruk dan isinya disalin ke tempat lain di drive. ini biasanya terjadi sebelum data pada sektor itu menjadi benar-benar tidak dapat dibaca.

Saya mencoba menggali sumber untuk itu, baca saja kemarin tetapi tidak ingat di mana.

dari man hdparm (8)

Perhatikan juga bahwa flag --repair-sector dapat digunakan untuk mengembalikan (yang) bad sector ketika mereka tidak lagi diperlukan, termasuk sektor-sektor yang benar-benar buruk (drive kemungkinan akan memetakan mereka ke area baru di media).

Intinya: Anda tidak perlu peduli dengan bad sector, firmware harddrives melakukannya untuk Anda. satu-satunya hal yang harus Anda lakukan adalah mendapatkan drive baru sebelum ada terlalu banyak dan drive Anda mati.

Baarn
sumber
Saya cukup yakin bahwa realokasi terjadi pada saat penulisan dan bukan pada saat dibaca. Data SMART dari drive tampaknya menegaskan hal itu. Jumlah sektor yang tertunda adalah tinggi (lebih besar dari 0) sedangkan Hitungan Realokasi Sektor adalah 0. Bagi saya itu berarti: Ada sektor-sektor buruk yang ditandai untuk realokasi tetapi belum dialokasikan kembali.
ChrisWue
Sudahkah Anda mencoba CHKDSK? en.wikipedia.org/wiki/CHKDSK
Baarn
lihat opsi / r
Baarn
mendapatkan info tentang file yang disimpan di sektor itu tampaknya tidak mungkin.
Baarn
2

Runtime ini DiskExplorer memungkinkan Anda untuk memeriksa drive oleh sektor. Ini payware ($ 70 untuk versi NTFS) tetapi gratis untuk dicoba. Mereka memiliki versi untuk NTFS, FAT dan Linux (ext2 / 3).

teks alternatif

quack quixote
sumber
Ini tampak menjanjikan, tetapi sayangnya itu tidak berhasil. DiskExplorer menampilkan "Entri MFT tidak valid" untuk setiap sektor drive.
saya berharap ada langkah konfigurasi yang Anda lewatkan jika itu menunjukkan bahwa untuk semua sektor, tetapi saya belum menggunakan alat ini dalam waktu yang lama jadi saya tidak bisa memberikan instruksi langsung padanya. saya akan menambahkan jawaban lain dengan alat terpisah; mungkin orang lain akan berpadu dengan penggunaan yang benar dari ini.
quack quixote
Ini bukan masalah konfigurasi, itu hanya Disk Explorer yang sangat rumit dan sulit digunakan. Itu tidak cukup otomatis. (Program DOS lama Norton Disk Doctor serupa, tetapi jauh lebih mudah digunakan karena secara otomatis membaca dan disesuaikan dengan struktur sistem file. Malu itu tidak mendukung NTFS dan dihentikan.)
Synetech
0

Saya tahu utas sudah tua tetapi untuk catatan bagi semua orang yang memiliki masalah seperti itu ada cara untuk memeriksanya dari linux. Satu selalu dapat menggunakan beberapa live linux pada cd / usb stick, seperti slax yang super mudah dijalankan. Bagaimanapun, kembali ke bisnis.

Saya telah menemukan beberapa log deamon smartd dengan peringatan sektor yang tidak dapat dibaca dan memutuskan untuk menyelidiki itu. Setelah penelitian saya akhirnya menjalankan (# adalah prompt yang menunjukkan hak akses root, sudo dapat digunakan sebagai gantinya jika seseorang berjalan sebagai pengguna biasa):

# smartctl -H /dev/sda2

SMART overall-health self-assessment test result: PASSED

Yang menunjukkan bahwa drive itu agak sehat, yang bagus. Tetapi saya mengikuti dan menyelidiki lebih jauh dan lari badblocks.

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

271521948

Jadi ada beberapa badblock yang saya ingin tahu mana file itu milik dan menemukan bahwa hal itu bisa dilakukan dengan debugfs, masalahnya adalah bahwa partisi saya ntfs jadi saya menggunakan ntfstools yang merupakan kunci:

# 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"Adalah untuk menghilangkan banyak informasi tidak berguna yang ditampilkan oleh ntfscluster/

Jadi dalam kasus ntf semua yang dibutuhkan adalah ntfscluster -s $SECTOR.

tansy
sumber