Pertama-tama, jangan melakukan apa-apa lagi pada disk (setidaknya tidak pernah menulisnya ). Disk tidak dikenali (sebagai lawan dari "dikenali dan ditemukan kosong atau dengan data yang tidak dapat dibaca") tampaknya mengindikasikan disk yang benar-benar meledak, yang chkdsk
tidak ingin dilakukan, atau ada yang salah dengan tabel partisi atau geometri disk. , atau cara kandang USB mengatasinya. Kegagalan perangkat keras juga dimungkinkan.
Ini dapat dan akan terjadi ketika penutup USB mencoba untuk bernegosiasi antara disk dan komputer yang terhubung dengannya. Jadi hal pertama yang harus dilakukan adalah mengambil gambar disk pada disk (jelas lebih besar) pada level terdekat dengan fisik, menggunakan dd
Linux. Kemudian Anda bisa mengutak-atik salinan gambar ke isi hati Anda, tanpa risiko kerusakan lebih lanjut ke disk nyata.
Pembaruan: pengenalan perangkat di Linux
Kami memiliki tidak kurang dari tiga entitas di "disk eksternal" kami. Perangkat keras enklosur USB, memperlihatkan sebagai perangkat blok. Disk fisik di dalam enklosur. Perangkat fisik, yaitu, urutan sektor LBA dari pertama hingga terakhir. Dan akhirnya nol atau lebih partisi data, hosting sistem file. Agar "dikenali" dan ditampilkan di desktop, semua tautan rantai perlu bekerja. Tetapi untuk mengambil gambar perangkat fisik Anda hanya perlu dua yang pertama. Jika Anda mencolokkan perangkat dan menjalankan baris perintah dmesg
(sebagai root), Anda harus melihat sesuatu seperti ini:
[4984939.028491] usb 8-6: new high speed USB device using ehci_hcd and address 3
[4984939.166658] usb 8-6: configuration #1 chosen from 1 choice
[4984939.170660] scsi7 : SCSI emulation for USB Mass Storage devices
[4984939.172003] usb-storage: device found at 3
[4984939.172005] usb-storage: waiting for device to settle before scanning
... yang mana enklosurnya dikenali, dan kemudian mengidentifikasi dirinya dan isinya:
[4984939.170660] usb 8-6: New USB device found, idVendor=1058, idProduct=1021
[4984939.170660] usb 8-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[4984939.170660] usb 8-6: Product: Ext HDD 1021
[4984939.170660] usb 8-6: Manufacturer: Western Digital
[4984939.170660] usb 8-6: SerialNumber: 574D43305431303831303734
[4984944.400970] usb-storage: device scan complete
Selanjutnya Anda akan melihat driver yang memberitahukan geometri, sifatnya, dan secara implisit node perangkatnya, di sini sdd
(untuk SCSI Disk Four, sejak sda
, sdb
dan sdc
sudah diambil):
[4984944.404739] scsi 7:0:0:0: Direct-Access WD Ext HDD 1021 2021 PQ: 0 ANSI: 4
[4984944.404739] sd 7:0:0:0: [sdd] 1953519616 512-byte hardware sectors (1000202 MB)
[4984944.407367] sd 7:0:0:0: [sdd] Write Protect is off
[4984944.407369] sd 7:0:0:0: [sdd] Mode Sense: 17 00 10 08
[4984944.407371] sd 7:0:0:0: [sdd] Assuming drive cache: write through
[4984944.408741] sd 7:0:0:0: [sdd] 1953519616 512-byte hardware sectors (1000202 MB)
Kemudian kernel mengakui bahwa ada partisi (jika Anda tidak melihat ini, partisi tidak ada atau tidak valid):
[4984944.411497] sdd: sdd1
Sekarang Linux memiliki semua yang dibutuhkan dan melaporkan lampiran yang berhasil:
[4984944.416739] sd 7:0:0:0: [sdd] Attached SCSI disk
[4984944.416739] sd 7:0:0:0: Attached scsi generic sg4 type 0
Maka pencarian partisi data dimulai, yaitu, OK, sudah sdd1
, tapi apa yang ada di sana? , dan jawabannya adalah:
[4984997.498613] NTFS driver 2.1.29 [Flags: R/W MODULE].
[4984997.554613] NTFS volume version 3.1.
[4984997.568859] NTFS-fs error (device sdd1): load_system_files(): $LogFile is not clean. Mounting read-only. Mount in Windows.
[4985390.027808] NTFS-fs error (device sdd1): ntfs_remount(): Volume has errors and is read-only. Cannot remount read-write.
[4985442.423299] NTFS volume version 3.1.
[4985442.425032] NTFS-fs error (device sdd1): load_system_files(): $LogFile is not clean. Mounting read-only. Mount in Windows.
Ini di atas adalah gunung "baik". Tetapi hanya dengan mengetahui bahwa perangkat ini sdd
, atau sdc
atau sdb
, memungkinkan saya untuk membuat salinan biner (dengan asumsi saya memiliki cukup ruang kosong /mnt/backupdisk
): file input /dev/sdd
, file output DiskImage.raw
, ukuran blok 1 MB :
# dd if=/dev/sdd of=/mnt/backupdisk/DiskImage.raw bs=1M
Perhatikan bahwa file input adalah /dev/sdd
dan bukan /dev/sdd1
(atau nomor lainnya). Sekarang jika saya mau, saya bisa mengetahui offset dari partisi data di dalamnya DiskImage.raw
, dan memasangnya dengan bantuan perangkat loop. Di sini Anda akan menemukan detail kotor.
Upaya pemulihan pertama
Hal kedua yang harus dilakukan adalah menempatkan disk fisik ke dalam enclosure lain, sehingga memastikan enclosure tersebut baik, dan mendapatkan peluang enclosure baru dengan benar menafsirkan disk. Jika disk muncul kembali, itu mungkin kandang sebelumnya yang rusak. Untuk berjaga-jaga, cadangkan semua konten drive yang baru ditemukan, verifikasi cadangan, disk nol dengan utilitas disk-ditimpa sehingga menjadi benar - benar bodoh (Anda tidak dapat memiliki dua perangkat dengan pendapat berbeda dalam rantai perangkat), memformat ulang asli dari Windows dan pulihkan data. Ini tembakan yang beruntung, tetapi saya melihat itu terjadi; dan upayanya tidak terlalu mahal, kandang yang bagus harganya sekitar US $ 19,99 baru.
Jika enklosur asli rusak, Anda tidak akan dapat memformat ulang disk, atau disk tidak dapat diakses. Anda dapat mencoba kembali kandang baru, dan jika bekerja, baik mengganti kandang tua, atau tetap menggunakan baru (tapi ini adalah bermanfaat jika kandang baru cukup lebih baik daripada US $ 19,99 El murahan).
Pemulihan profesional
Layanan pemulihan profesional, yang dapat Anda temukan dengan Google. Cara yang tidak terlalu jujur untuk melakukannya adalah dengan mengirim disk fisik, dan - jika Anda mendapat "Ya, tidak ada kerusakan perangkat keras dan kami dapat memulihkan semua data Anda hanya dengan US $ $$$, $ $$! " jawab - Anda akan tahu bahwa data itu masih dapat diselamatkan. Jadi Anda dapat mencoba melakukannya sendiri secara gratis pada cadangan gambar yang Anda ambil, dan hanya membayar untuk diagnosis dan disk S&H. Jika Anda gagal, opsi untuk batuk adonan yang diminta masih ada. Jika ada yang kerusakan hardware, layanan profesional pada dasarnya Anda hanya pilihan. Ada beberapa trik voodoo yang akan (untuk sementara) menghidupkan kembali disk "mati", seringkali cukup lama untuk memulihkan data paling penting, setidaknya,tidak ada yang dijamin bekerja setiap kali (memanaskan disk, mendinginkannya, "memutar-mutarnya" - saya bahkan melihat disarankan untuk dengan rap rap terhadap permukaan yang keras). Semua dari mereka akan melakukan lebih banyak kerusakan, yaitu, Anda harus yakin untuk menggunakan satu trik yang akan bekerja pertama kali, atau Anda akan membunuh disk selamanya. Aku hanya menambahkan ini untuk menjelaskan mengapa Anda akan melihat kisah sukses tentang disk dihidupkan kembali: ada yang cerita seperti itu. Tetapi jika Anda ingin (sebagian besar) yakin itu akan terjadi pada Anda , baik - menyewa seorang profesional.
Jika Anda yakin perangkat kerasnya OK - disk berputar, tidak ada mainan kerincingan, tidak ada suara atau buzz aneh, tidak ada kalibrasi ulang clickety-clackety - maka "semua" yang terjadi adalah yang chkdsk
mengacaukan beberapa data.
Pemulihan DIY
Pemulihan "Rumah" biasanya akan seperti ini (pada dasarnya hal yang sama yang dilakukan orang-orang pro begitu kerusakan perangkat keras didiskon), bekerja pada salinan disk image:
periksa apakah sektor pertama dari disk image adalah tabel partisi yang valid. Jika tidak, pindai gambar disk untuk mencari tabel partisi yang valid atau sektor boot NTFS atau FAT32 yang dapat dikenali, tergantung pada FS apa yang ada di unit (untuk unit 1 TB, NTFS tampaknya satu-satunya kemungkinan logis). Bagaimanapun Anda harus menemukan sesuatu dalam beberapa megabyte pertama.
Jika tabel partisi ditemukan, verifikasi bahwa partisi data adalah di mana tabel partisi mengatakan seharusnya. Jika tidak, ini adalah kabar baik: mungkin tabel partisi adalah yang salah. Memperbaiki itu mudah (beberapa editor partisi Linux akan melakukannya), dan disk mungkin diharapkan memiliki pemulihan 100%. Agar aman, coba pasang partisi data di Linux dengan perangkat loop dalam mode baca-saja untuk melihat apakah itu dapat dibaca. Jika ya, partisi borking dikonfirmasi, dan disk mungkin diucapkan dalam perjalanan menuju pemulihan penuh. Jika tidak, mungkin partisi tersebut benar dan (sebagian) partisi data telah ditulis ulang. Ini buruk; lihat di bawah ini di bawah 'segalanya menjadi asam'
jika ditemukan dan valid, periksa geometri drive dan, jika tidak cocok, itu juga sebenarnya hal yang baik , karena Anda mungkin telah menemukan akar penyebab masalah. Anda dapat memaksa geometri fisik ke kernel (dan mendapatkannya di Linux boot ). Lihat apakah geometri baru mengarah ke disk yang dikenali di Linux. Jika ya, buat cadangan data, verifikasi cadangan sudah benar, dan beri nol diska dd
(beberapa megabyte nol ke sd
perangkat yang sesuai sudah cukup). Matikan komputer (jangan hanya me-reboot; OK, ini paranoid, tetapi biayanya kecil dan dapat mencapai sesuatu), lalu boot Windows dan minta format sekarang disk yang tidak mengerti menjadi apa yang dianggapnya format terbaik. Ini memastikan tidak ada konflik dengan Windows. Kembalikan data pada disk. Nikmati.
jika trik geometri tidak berfungsi, atau partisi tidak dapat ditemukan, atau sekali ternyata kosong, semuanya menjadi masam. Anda memerlukan beberapa alat pemulihan yang mampu memindai gambar disk untuk mencari area data (MFT, dll.) Dari data yang hilang. Dan begitu ditemukan, interpretasikan untuk mendapatkan data. Ini adalah pekerjaan yang sulit dan tidak selalu dapat sepenuhnya otomatis. Pada tingkat yang lebih rendah dan lebih putus asa, ini melibatkan pemindaian untuk tanda tangan masing - masing file, berharap bahwa mereka akan terletak di blok yang berdekatan di disk. Operasi semacam ini dengan senang hati saya serahkan kepada para profesional. Saya melakukannya beberapa kali, selalu berhasil, dengan disk FAT lama. Saya melakukannya lagi, sekitar 50% berhasil, dengan disk FAT32 yang lebih baru dan lebih besar. Saya berusaha beberapa kali, dengan hasil yang buruk (tapi saya punya cadangan penuh dan tidak benar-benar memberikan segalanya), pada sistem file NTFS dan ext4 yang jauh lebih rumit.
Pemulihan manual dari Linux
OK, jadi Anda mencoba untuk me-mount partisi di Linux dan mendapatkan kesalahan ( perhatikan itu /dev/sdc
dan hal-hal yang berbeda - gambar mengacu )./dev/sdcN
/dev/sdc
# mount -t ntfs /dev/sdc1 /mnt/recovery
ntfs_mst_post_read_fixup_warn: magic: 0x00000000 size: 1024 usa_ofs: 0 usa_count: 65535: Invalid argument
Record 1 has no FILE magic (0x0)
Failed to open inode $MFTMirr: Input/output error
... ini tampaknya menunjukkan bahwa partisi, seperti yang diyakini sistem , salah atau rusak parah. Mari kita periksa opsi pertama terlebih dahulu:
# fdisk /dev/sdc
Anda mendapatkan sesuatu seperti ini:
Disk /dev/sdc: 1000.2 GB, 1000204885504 bytes
1 heads, 63 sectors/track, 31008335 cylinders, total 1953525167 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: 0x9d2b7596
Device Boot Start End Blocks Id System
/dev/sdc1 63 1953520127 976760032+ 7 HPFS/NTFS/exFAT
Langkah selanjutnya adalah memeriksa awal partisi yang sebenarnya. Dengan mencari ke dalam file gambar (atau /dev/sdc
) kami akan mencari tanda tangan NTFS:
00000000:EB 52 90 4E 54 46 53 20 -20 20 20 00 02 08 00 00 .R.NTFS ........
00000010:00 00 00 00 00 F8 00 00 -3F 00 FF 00 3F 00 00 00 ........?...?...
00000020:00 00 00 00 80 00 80 00 -4A F5 7F 00 00 00 00 00 ........J.......
# dd if=/dev/sdc bs=512 count=1 skip=63 2>/dev/null | hexdump -C | head -n 1
... dengan data di atas kami harapkan boot NTFS berada di sektor 63, itulah mengapa kami atur skip
. Selain itu, kami akan mencoba setiap sektor di megabyte (katakanlah) pertama ...
# dd if=/dev/sdc bs=512 count=2000000 2>/dev/null | hexdump -C | grep "00:EB 52 90 4E 54 46 53"
... hanya untuk memastikan hanya ada satu sektor boot (saya punya ini terjadi pada saya. Pada disk FAT32, tapi masih ) dan bahwa tidak ada kesalahan baca di mana saja.
Hasil Anda
00007e00 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00 |.R.NTFS .....|
persis seperti yang kita harapkan: sektor 63 memberikan offset 63 × 512 = 32256 = 7e00 heksadesimal. Sektor boot NTFS ada di sana dan tabel partisi tampaknya benar .
Jadi sekarang kita dapat menyalin sebagian besar /dev/sdc1
ke, katakanlah, /tmp/mydisk.img
dan mencoba memperbaikinya dari Linux. Ini tidak akan merusak disk fisik, yang masih akan tersedia tidak berubah untuk upaya lain. Dan karena sekarang kita tahu PT itu benar, kita bisa menggunakan /dev/sdc1
salinannya dan menghibur harapan yang sebelumnya tidak bisa kita lakukan:
# dd if=/dev/sdc1 of=/tmp/mydisk.img bs=1G count=10
...after copying 10 gigabytes...
# ntfsfix /tmp/mydisk.img
Jika NTFSfix tidak berfungsi, well, kami dalam masalah. Ada beberapa utilitas yang lebih akurat yang bisa dicoba. Dan jika Anda perlu memulihkan file gambar JPEG dan sistem file tidak terfragmentasi, ini dapat dilakukan secara otomatis dengan mencari header JPEG. Hampir sama dengan dokumen PDF, TIFF, dan Office, kecuali saya tidak tahu cara mengenalinya (untuk JPEG, saya akan :-)). Sebagai pilihan terakhir saya telah menemukan orang-orang ini - saya tidak mengenal mereka, tidak memiliki hubungan dengan mereka dan tidak akan menerima kesalahan apa pun. Namun, seiring berjalannya waktu, harganya sangat masuk akal.