Tabel partisi penulisan ulang agar kompatibel dengan BIOS / DOS

0

tl; dr: lewati ke bagian Pertanyaan

Latar Belakang

Saya memiliki drive tempat Windows 7 diinstal. Itu memiliki boot-partisi Windows 7 100MB, diikuti oleh partisi yang mengambil sisa drive. Beberapa waktu yang lalu, saya menyusutkan partisi utama sehingga saya dapat memiliki volume terpisah untuk file alih-alih menyimpannya pada volume yang sama di mana Windows, game, dan program diinstal.

Baru-baru ini saya membersihkan partisi sekunder dan menggunakan EASEUS Parition Master (Home) untuk menghapusnya, dan yang utama menggunakan seluruh disk seperti sebelumnya.

Masalah

Sayangnya, setelah EASEUS berhasil menyelesaikan tugasnya (dalam mode Windows Native-API), saya tidak lagi dapat mem-boot sistem dengan drive itu. Setiap kali saya mencoba untuk boot, BIOS akan mendeteksi drive, membaca dan mencetak data SMART ( STAUS OK), dan kemudian hang.

Pada awalnya saya khawatir drive itu mati secara ajaib antara operasi ukuran ulang dan reboot, tetapi setelah meletakkannya di kandang eksternal, saya menemukan bahwa drive itu sebenarnya baik-baik saja dan bahkan lebih baik lagi, partisi masih utuh dan semua file dapat diakses. Partisi lain hilang dan yang utama telah diperpanjang ke panjang drive yang diinginkan. Ini berfungsi penuh dari Windows, hanya saja tidak dari BIOS.

Tes dan Pengamatan

Saya menjalankan snap-in MMC Manajemen Disk, chkdsk, TestDisk, (versi yang lebih baru) EASEUS Partition Master (gratis), EASEUS Partition Recovery, PC Inspector Drive Recovery, dan beberapa alat lain dalam mode read-only dan menemukan bahwa sebagian besar dari mereka tidak punya masalah dengan drive. Satu-satunya yang memberikan indikasi masalah adalah TestDisk yang mengindikasikan ketidakcocokan geometri drive.

Diagnosa

Kesimpulan yang saya buat adalah bahwa Windows dapat membaca drive dan mendeteksi partisi dengan baik (mungkin mengabaikan kompatibilitas mundur yang tidak relevan) nilai-nilai di tabel partisi, tetapi ketika BIOS mencoba membaca file boot dari drive, itu tersandung pada nilai-nilai yang salah dan hang.

Pertanyaan

Apa yang saya butuhkan sekarang adalah cara untuk memperbaiki tabel partisi (dan MBR?) Agar kompatibel dengan BIOS (dan seolah-olah DOS) tanpa kehilangan data.

Batasan

Saya tahu bahwa Anda dapat menulis ulang MBR tanpa kehilangan data, tetapi saya tidak yakin cara untuk membangun kembali tabel partisi tanpa mengacaukan partisi yang ada.

Sayangnya, saya tidak memiliki drive cadangan yang cukup besar yang dapat saya salin semuanya (saya juga tidak ingin memformat dan menyalin kembali semua barang itu), jadi saya perlu cara yang aman untuk melakukan perbaikan di tempat. Saya telah membuang salinan megabyte pertama atau lebih dari drive serta beberapa awal partisi Windows. Oleh karena itu, saya memiliki salinan MBR, tabel partisi, dan sektor boot dari partisi-boot 100MB dan partisi Windows.

Alat dan Keterampilan

Saya merasa nyaman dengan alat disk level rendah, termasuk hex dan editor disk (saya telah melakukan pemulihan data pada volume FAT pada beberapa kesempatan termasuk membangun kembali rantai FAT dan direktori), tetapi tidak banyak pengalaman dengan NTFS.


TestDisk memberikan kesalahan analisis berikut:

Disk /dev/sdf - 500 GB / 465 GiB - CHS 60801 255 63
Current partition structure:
         Partition                  Start        End    Size in sectors

Warning: number of heads/cylinder mismatches 224 (NTFS) != 255 (HD)
Warning: number of sectors per track mismatches 19 (NTFS) != 63 (HD)
 1 * HPFS - NTFS              0  32 33    12 223 19     204800

Bad relative sector.
 2 P HPFS - NTFS             12 223 20 60801  76 27  976566032

Bad relative sector.

Dan log cadangan adalah sebagai berikut:

#1420342168 Disk /dev/sdf - 500 GB / 465 GiB - CHS 60801 255 63
 1 : start=     2048, size=   204800, Id=07, *
 2 : start=   206848, size=976566032, Id=07, P
#1420342211 Disk /dev/sdf - 500 GB / 465 GiB - CHS 60801 255 63
 1 : start=     2048, size=   204800, Id=07, *
 2 : start=   206848, size=976566032, Id=07, P
Synetech
sumber
Apa adalah geometri tabel partisi tampaknya menggunakan? Menjalankan fdisk -ldari live cd linux dan menambahkan informasi itu ke pertanyaan Anda akan membantu.
psusi
Partisi mana yang saat ini ditandai sebagai "partisi boot"? "Baru-baru ini saya membersihkan partisi sekunder ..." - Anda mungkin maksud partisi ketiga .
serbuk gergaji
@psusi, saya tidak memiliki sistem saat saya memposting pertanyaan, tetapi saya mendapatkan informasinya. TestDisk mengatakan number of heads/cylinder mismatches 224 (NTFS) != 255 (HD) … number of sectors per track mismatches 19 (NTFS) != 63 (HD)dan ia mengatakan di bad relative sectorsbawah masing-masing dua partisi (partisi boot-drive dan partisi full-drive utama-yang lain memang hilang dan digabung menjadi yang utama).
Synetech
@sawdust, well ya, secara teknis ketiga, tetapi dalam konteks itu, saya mengacu pada partisi yang digunakan (partisi-boot 100MB sebenarnya tersembunyi dan tidak dapat diakses di Windows, jadi saya tidak menghitungnya ketika saya menggambarkan pengguna- partisi). Partisi itu adalah yang utama, yang lain berada di partisi extended, jadi yang ketiga memang partisi sekunder.
Synetech
Yah saya membiarkan TestDisk menulis ulang tabel partisi, dan sekarang tidak memberikan kesalahan itu. Saya akan mencoba mencolokkan drive ke komputer besok pagi dan mudah-mudahan itu akan melewati BIOS seperti dulu. Saya akan memperbarui kemudian ...
Synetech

Jawaban:

1

BIOS umumnya tidak boleh membaca file boot apa pun , hanya kode bootstrap 440 byte dalam MBR, sisanya adalah bisnis bootloader Anda ... (Meskipun ada pengecualian yang tidak menguntungkan.)

Jadi mungkin saja Anda hanya perlu menginstal ulang bootloader Windows menggunakan bootrec /fixmbr.

Untuk membuat ulang tabel partisi, CD Linux akan berfungsi. Jalankan fdisk /dev/sd…, tulis tata letak partisi (jenis, sektor mulai, ukuran), gunakan ountuk membuat tabel partisi kosong, tambahkan kembali semua partisi menggunakan tata letak yang sama persis, dan wkeluarkan tabel baru.

grawity
sumber
Itu kemungkinan akan memperbaikinya. Jika geometri salah, itu akan naik ke boot windows loader karena iirc, itu tidak beralih ke mode LBA dan terus menggunakan pengalamatan CHS jika memungkinkan.
psusi
Kecuali saya tidak bisa boot ke Windows pada drive yang dimaksud. Saya bisa boot ke instance Windows lain dengan drive masalah terpasang sebagai drive USB. Saya tidak berpikir bootrecdapat mempengaruhi MBR dari drive lain. Dan saya lebih suka menghindari CD live dan semacamnya jika memungkinkan; Saya yakin itu tidak harus sampai pada itu, harus ada cara untuk melakukannya di Windows.
Synetech
@Synetech, sektor relatif yang salah (hal bodoh lain yang diputuskan Microsoft untuk disandikan di sektor booting mereka) juga akan mencegah booting. Anda seharusnya dapat menggunakan fixbootkonsol pemulihan sistem lain pada disk masalah dengan baik.
psusi
Dengan apa yang dikatakan psusi - Anda harus dapat menggunakan disk pemulihan atau Hiren atau sesuatu untuk boot ke dan kemudian dari alat baris perintah melakukan perbaikan pada disk yang tidak boot.
Abraxas
Saya lelah fixboot, tetapi tidak melakukan apa-apa (testdisk masih memberikan kesalahan yang sama).
Synetech
0

Di masa lalu, saya terkesan dengan PhotoRec Christophe Grenier. Jelas dia benar-benar tahu apa yang dia lakukan dan telah melakukan banyak penelitian dalam sistem file dan tipe file. Karena itu, saya memutuskan untuk mempercayai keahliannya dan membiarkan TestDisk melakukan hal tersebut (terutama karena itu adalah satu-satunya alat yang benar-benar mendeteksi masalah sama sekali).

Setelah pesan kesalahan, saya melanjutkan dan mencapai titik di mana itu memberi saya pilihan untuk menulis tabel partisi yang saya cari atau mencari lebih banyak. Karena partisi yang terdaftar sudah benar, saya mengizinkannya untuk menulis tabel partisi dan reboot. Drive itu masih dikenali dan semua file dapat diakses (masih di kandang eksternal), jadi saya melakukan chkdskuntuk ketenangan pikiran yang memeriksa.

Langkah terakhir adalah menancapkannya ke sistem dan melihat apakah bisa melewati BIOS. Cukup yakin, itu benar. Saya melakukan satu lagi chkdskhanya untuk lebih yakin, dan memeriksa lagi. Bahkan, saya sedang menulis posting ini sementara drive berputar dengan gembira di komputer.

Jadi, jika ada yang mengubah ukuran partisi dan menemukan bahwa BIOS mereka hang setelah mendeteksi drive, letakkan di enklosur eksternal atau letakkan di sistem lain dengan BIOS yang berbeda, lalu minta TestDisk menulis ulang tabel partisi. Seharusnya menyesuaikan parameter untuk sekali lagi kompatibel dengan BIOS yang lebih lama (dan mungkin juga DOS). Ini akan menulis tabel partisi yang benar dengan parameter yang benar dan harus membiarkan semua data lainnya pada drive tetap utuh.


Tangkapan layar stok dari layar tabel partisi-tulis TestDisk



(Saya akan mencatat bahwa sekali TestDisk menulis ulang tabel partisi, itu tidak lagi menunjukkan kesalahan itu menulis ulang tabel partisi saat masih di dalam enclosure, tetapi setelah meletakkan drive kembali ke sistem, TestDisk adalah sekali lagi menunjukkan kesalahan, beberapa yang lama, beberapa yang baru, beberapa yang berbeda, tetapi drive bekerja dengan baik tetap saja. Saya sudah memasukkan kesalahan baru di bawah ini jika ada yang ingin mencoba men-debug penyebab pasti dari hang-BIOS karena tampaknya hanya sebagian terkait dengan parameter geometri.)

Disk /dev/sdb - 500 GB / 465 GiB - CHS 229504 224 19
Current partition structure:
         Partition                  Start        End    Size in sectors

 1 * HPFS - NTFS              0 107 16    48 134 14     204800

Warning: Bad starting sector (CHS and LBA don't match)
Warning: number of heads/cylinder mismatches 255 (NTFS) != 224 (HD)
Warning: number of sectors per track mismatches 63 (NTFS) != 19 (HD)
 2 P HPFS - NTFS             48 134 15 229504 215 11  976566272

Warning: Bad starting sector (CHS and LBA don't match)
Synetech
sumber