Memulihkan sistem file di partisi rusak

2

Secara tidak sengaja mem-boot partisi Acer Recovery dari laptop multi-boot saya dan meskipun memilih EXIT ketika diberikan pilihan apakah saya ingin memulihkan sesuatu atau tidak, salah satu partisi saya menjadi rusak. Sekarang saya benar-benar dapat menggunakan beberapa saran untuk menulis ulang tabel partisi dan memulihkan sistem file.

  1. Saya telah mengkloning seluruh drive (dd if = ... | ssh me @ desktop -of = ...) dan saya bekerja secara eksklusif pada drive yang dikloning.

  2. Saya sudah mencoba gpart, parted, testdisk (dan juga gparted). Tidak beruntung sejauh ini.

Layout drive saya adalah:

/dev/sda1 ntfs 12GB
/dev/sda2 ntfs 100MB
/dev/sda3 ntfs 72.17GB
/dev/sda4 extended 213.82GB
  unallocated 27.93GB
  /dev/sda5 ext4 148.98GB
  /dev/sda6 ext4 29.33GB
  /dev/sda7 swap 7.58GB
unallocated 2.49MB

Partisi yang rusak adalah ~ 30GB partisi yang tidak terisi (partisi logical pertama di partisi extended).

Sayang sekali Pemulihan Acer menekan partisi yang tepat itu. Saya tidak akan repot mencoba memulihkan yang lain (Windows yang tidak saya gunakan, Linux untuk pengujian, distro Linux alt. Juga untuk pengujian) Namun, yang ini berisi data saya sangat ingin pulih.

Saya tahu batasan pasti dari partisi, saya tahu detail dari sistem berkas (ext4) yang mendasarinya.

Namun, alat yang biasanya direkomendasikan untuk memulihkan tidak berfungsi. Pemindaian mendalam oleh testdisk menunjukkan bahwa alat Acer Recovery tampaknya memutuskan untuk menyalin tabel partisi untuk partisi Windows utama yang menghasilkan keluhan tentang ukuran yang tidak cocok. gpart, parted dan testdisk tidak dapat menemukan sistem file. testdisk menemukan sistem file ntfs yang "tidak dapat dipulihkan".

Saya menduga superblok itu juga nuked, tetapi sebuah pencarian mengungkapkan adanya beberapa superblok cadangan.

Apa taruhan terbaik untuk maju? Saya ingin mencoba dan menulis ulang tabel partisi dan memulihkan sistem file, mungkin dengan e2fsck menggunakan superblock cadangan.

Alat apa yang memungkinkan saya untuk menulis ulang tabel partisi tanpa melakukan apa pun pada data saya? Bagaimana dengan pengaturan sistem file? Apakah saya perlu melakukan itu sebelum mencoba mengembalikan superblok dari cadangan? Bagaimana?

TIA,

fyo

fyo
sumber
Ada alat, seperti milik Convar Inspektur PC , yang menganalisis disk mentah dan menemukan file dengan format yang dapat dikenali di dalamnya, bahkan tanpa bantuan indeks yang biasanya disediakan oleh sistem pengarsipan, meskipun semakin tidak terfragmentasi, semakin baik. Anda akan memerlukan sistem Windows yang dapat di-boot, seperti CD Boot Hiren , untuk menjalankannya. Saya sarankan mencadangkan disk mentah sebelum Anda mulai: Saya telah berhasil menggunakan dd dari Linux LiveCD untuk menyimpan cakram mentah ke file dan mengembalikannya untuk mendapatkan yang lain setelah pemulihan gagal.
AFH
Seperti yang saya perhatikan, saya sudah membuat cadangan seluruh disk. Saya yakin bahwa semua yang ada di partisi ada, kecuali bagian awal. Ada banyak cara untuk memulihkan file individual, tetapi itu adalah upaya terakhir. Pada saat ini yang saya inginkan adalah memulihkan partisi saya secara keseluruhan, pada dasarnya mengembalikannya ke keadaan sebelumnya. Saya tidak yakin bahwa ini tidak mungkin, meskipun testdisk dkk mengklaim bahwa apa pun yang ditemukan "tidak dapat dipulihkan". saya yakin semua data saya ada di sana. Pada titik ini, saya akan mencoba pendekatan yang lebih forensik. Akan melaporkan kembali.
fyo

Jawaban:

0

Jika Anda bertanya apakah Anda dapat memulihkan partisi yang tidak terisi 30GB, saya rasa Anda tidak bisa. Partisi yang tidak terisi tidak dapat dipulihkan dari pemahaman saya. Seseorang mengoreksi saya jika saya salah.

Thom
sumber
Anda dapat, sebenarnya, jika Anda membuat ulang tabel partisi dan selama tidak ada yang menyebabkan partisi ditimpa.
oldmud0
@ oldmud0 Ohh, begitu. Terima kasih atas koreksinya.
Thom
Saya telah mencoba membuat ulang tabel partisi, tetapi tidak berhasil. Tidak ada filesystem (valid) yang ditemukan dan superblock plus superblok kunci cadangan semuanya dilaporkan hilang atau tidak valid ("bad magic number"). Saya berpikir mungkin ada beberapa masalah offset yang membuat semuanya salah dan menyisihkan waktu untuk melihat data mentah dengan hexeditor dan mencoba untuk melihat apakah saya dapat menemukan hal-hal secara manual dan mungkin bahkan mencari tahu apa masalahnya.
fyo
0

Karena Anda menyatakan Anda tahu batas-batas partisi saya akan menggunakan losetup dengan opsi -o offset dan --sizelimit size

Ini akan memungkinkan Anda membuat perangkat loopback dari partisi 30GB yang dapat Anda operasikan. Jika partisi tidak ditimpa, pencarian Testdisk pada perangkat loopback akan menemukan sesuatu.

Anda juga dapat menggunakan Photorec untuk mencari file berdasarkan ekstensi file, jika hanya untuk memverifikasi bahwa data Anda masih ada.

S.Haran
sumber
0

Akhirnya beres dan semuanya kembali normal. Ada beberapa keanehan yang mungkin dipelajari orang lain, jadi inilah detailnya:

Semuanya dilakukan pada CLONE drive saya. Silakan mengkloning drive Anda (atau setidaknya partisi) sebelum Anda mulai bermain-main dengan apa pun, lebih disukai dari live CD.

Langkah pertama saya setelah alat biasa gagal menghasilkan hasil (sesuai OP) adalah cukup menggunakan hex editor ( hexedit ) untuk mengedit seluruh partisi, melompati byte pertama dari ruang yang tidak terisi di mana barang-barang saya seharusnya.

Bandingkan hasil di hex editor dengan Layout Disk Ext4: https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout

Semuanya ada di sana dengan jelas. Superblock, yang dilaporkan semua alat buruk, ada di sana dan tampak sangat baik. Data ada di sana. Mungkin satu-satunya yang hancur adalah tabel partisi.

Namun , superblock itu mengimbangi 2048 byte dibandingkan dengan 1024 byte per spec. Ini rupanya disebabkan banyak alat gagal.

Berbekal pengetahuan ini, saya menyalakan testdisk lagi dan mulai menerjemahkan triplet CHS mereka ke sektor untuk melihat apa yang sedang terjadi. Seperti yang disebutkan pada awalnya, testdisk benar-benar menemukan apa yang mungkin merupakan partisi saya, tetapi tidak mengembalikannya. Setelah memeriksa batas-batas sektor semua partisi, alasannya jelas:

Testdisk menunjukkan partisi saya lebih besar dari pada kenyataannya (sda3 dan sda5 di OP). Saya tidak yakin mengapa. Tabel partisi saat ini menunjukkan ukuran yang benar dan sistem file ext4 di sda5 menunjukkan jumlah blok yang benar. Dalam kasus sda5, testdisk menemukan partisi untuk tumpang tindih sda6, sehingga tidak memungkinkan saya untuk memilih keduanya di daftar partisi yang direvisi. Dalam kasus sda3, partisi tidak tumpang tindih, tetapi testdisk masih tidak memungkinkan saya untuk mengembalikan partisi saya yang hilang bersama dengan sda3. Kesenjangan di antara mereka mungkin lebih kecil daripada yang disukai testdisk, untuk alasan apa pun.

Membuat partisi dengan GParted di ruang yang tidak dialokasikan tidak berfungsi karena GParted bersikeras pada kesenjangan 1MB antara sda3 dan partisi baru. Bahkan dengan ukuran sda3 yang benar, ini akan menghasilkan superblock (dan banyak lagi) yang terhapus, jadi itu adalah no-go. Agak aneh, karena semua partisi saya (kecuali dua yang Windows Restore) dibuat dengan berbagai versi GParted.

Solusinya adalah menggunakan parted sebagai gantinya dan secara manual memasukkan batas yang benar, yang sebenarnya terdeteksi dengan benar oleh testdisk (dan diverifikasi dengan hexedit, karena testdisk tidak secara akurat mendeteksi batas-batas lain).

Wah.

fyo
sumber