Pembaruan terakhir:
Saya sudah tahu apa yang harus saya lakukan untuk memperbaiki masalah ini; Saya hanya tidak tahu bagaimana melakukannya. Saya berharap akan ada alat yang siap pakai untuk melakukan itu secara otomatis - tetapi tidak dapat menemukannya. Saya menerima jawaban Rod karena walaupun tidak secara langsung menyelesaikan masalah saya, ini memberikan latar belakang yang sangat baik pada masalah ukuran sektor, dan memberi saya kepercayaan diri bahwa masalah tersebut benar-benar adalah penyelarasan dan pengalamatan partisi. Bagi mereka yang datang ke pertanyaan ini memiliki masalah yang sama, baca dengan seksama dan hati-hati, termasuk komentar, sebelum melakukan apa pun.
Pada awalnya
Saya memiliki komputer dan membutuhkan lebih banyak ruang. Saya telah membeli drive 500GB baru dan penutup USB. Segera saya perhatikan bahwa jika saya mempartisi drive pada enklosur dan memindahkannya ke komputer, ia tidak akan mengenali partisi (dan sebaliknya). Saya berasumsi itu adalah masalah dengan kandang dan tidak khawatir tentang hal itu.
Lalu, tragedi
Hari yang indah, komputer saya memutuskan untuk tidak hidup lagi. Ternyata motherboard (tidak bermerek, hanya MADE IN CHINA yang dicetak di atasnya) sudah mati. Saya telah menggunakannya sebagai file-server dan drive 500GB itu sekarang penuh dengan data yang saya tidak mampu kehilangannya. Saya bangkrut sekarang dan tidak mampu membeli komputer baru, jadi satu-satunya harapan saya adalah kandang USB "rusak".
Investigasi
Berbekal beberapa distribusi Linux, laptop, VirtualBox dan enklosur saya melakukan analisis forensik tentang masalah ini. dmesg melaporkan ukuran partisi berada di luar end-of-drive. Jadi saya membaca lembar data hard drive, menghitung jumlah sektor dari awal, menguji batas drive secara manual dengan dd, dan semuanya tampak OK, sampai saya menjalankan fdisk dan mengatakan:
Note: Sector size is 4096 (not 512).
Betapa sederhana fdisk. "Catatan" ini adalah akar dari semua masalah. Setelah lebih mengutak-atik kesimpulan ini ditarik:
Enklosur USB tidak rusak.
Pengontrol SATA pada motherboard yang sekarang sudah mati adalah yang "aneh", setidaknya. Itu tidak melaporkan sektor 4096-byte ke sistem operasi, jadi OS dengan senang hati menciptakan MBR menggunakan alamat sektor 512-byte.
Sekarang ketika saya mencoba mengakses partisi, OS mencoba menggunakan alamat berbasis 512-byte pada drive sektor 4096-byte, dan tentu saja, itu tidak akan berhasil.
Pertanyaan
Jadi, bagaimana saya bisa memperbaiki alamat di MBR sehingga mereka valid pada ukuran sektor 4096-byte, selain dari mengedit MBR secara manual pada hex-editor, dan
Partisi tidak disejajarkan untuk sektor 4096-byte. Ada beberapa alat yang tersedia untuk menyelaraskannya selain menyalin masuk dan keluar dari drive lain? (Saya tidak punya drive cadangan), atau apakah saya perlu membuat beberapa alat yang "menggeser" data ke samping sedikit demi sedikit? Partisi adalah ext3.
Terima kasih!
Memperbarui:
Saya menemukan ada cara pintar untuk menggunakan dd untuk menggeser partisi di tempat dalam pertanyaan ini: Bagaimana cara memindahkan partisi di GNU / Linux? Tapi saya tidak tahu apakah itu akan bekerja pada sepotong sektor. Saya tidak bisa mengujinya sekarang tetapi akan dilakukan ketika saya punya waktu.
Pembaruan 2:
Jadi saya telah berhasil menyelaraskan partisi menggunakan metode di atas dan mengedit MBR pada hex editor. Segera setelah saya memasang kembali HDD, partisi boom dipasang secara otomatis! Saya tidak merekomendasikan ini, ada kesalahan I / O selama proses dan saya bisa kehilangan segalanya, lihat komentar pada jawaban Rod. Untuk partisi lain saya tidak akan mengambil risiko dan akan menggunakan HDD lama dan menyelaraskan potongan sekaligus dengan menyalin data dan kemudian menempelkannya kembali pada posisi yang berbeda.
fdisk
untuk mengedit MBR (Saya mempelajari ini nanti, tidak perlu editor hex :)) Anda dapat mengubah setiap titik dan ukuran awal entri, dan meninjau perubahan sebelum menerapkan. Jadi: mulai fdisk
, catat konfigurasi saat ini (atau lebih baik, buat cadangan MBR dengan dd
), gandakan nilai mulai alamat dan ukuran dengan 8 dan mengubahnya. Pastikan untuk memeriksa semuanya dengan kalkulator dan memahami apa artinya nilainya. Anda akan melihat bahwa Ukuran = Akhir - Mulai + 1, dan yang fdisk
menunjukkan ukuran dalam unit 1000-sektor, jadi Anda mungkin perlu mengaktifkan mode ahli untuk melihat nilai sebenarnya, dll.