4096バイトセクターディスク上の512バイトセクターMBRを修正する方法
最終更新: この問題を解決するために何をする必要があるかはすでにわかっていました。私はそれを行う方法を知りませんでした。私はそれを自動的に行う既成のツールがあればいいのにと思っていましたが、見つかりませんでした。私の問題を直接解決していないにもかかわらず、セクターサイズの問題に関する非常に良い背景を提供し、問題が本当にパーティションの調整と対処であるという自信を与えたため、Rodの答えを受け入れます。同じ問題を抱えているこの質問に出くわした人のために、何かをする前に、コメントを含めて、それを徹底的かつ注意深く読んでください。 はじめに コンピューターがあり、新しい500GBドライブとUSBエンクロージャーを購入したため、さらに多くのスペースが必要でした。すぐに、エンクロージャーでドライブをパーティション分割してコンピューターに移動した場合、パーティションが認識されないことに気付きました(逆も同様です)。私はそれがエンクロージャの問題だと思い、それについて心配しませんでした。 その後、悲劇 素晴らしい一日、私のコンピューターはもう電源を入れないことに決めました。マザーボード(ブランド化されていない、大きなMADE IN CHINAが印刷されている)が死んでいることが判明しました。私はそれをファイルサーバーとして使用してきましたが、500GBのドライブは今では失うことのできないデータでいっぱいです。私は今壊れており、新しいコンピューターを買う余裕がないので、私の唯一の希望は「欠陥のある」USBエンクロージャーでした。 調査 いくつかのLinuxディストリビューション、ラップトップ、VirtualBox、およびエンクロージャーを装備して、この問題についてフォレンジック分析を行いました。dmesgは、パーティションサイズがドライブの終わりを超えていると報告しました。そのため、ハードディスクのデータシートを調べ、セクターカウントをゼロから計算し、ddを使用してドライブの境界を手動でテストしました。 Note: Sector size is 4096 (not 512). fdiskの控えめさ。この「メモ」は、すべての問題の根本でした。さらにいじくり回した後、これらの結論が引き出されました。 USBエンクロージャーに欠陥はありません。 いまや死んだマザーボードのSATAコントローラーは、少なくとも「奇妙な」ものです。オペレーティングシステムに4096バイトのセクターを報告しなかったため、OSは512バイトのセクターアドレスを使用してMBRを作成しました。 パーティションにアクセスしようとすると、OSは4096バイトのセクタードライブで512バイトベースのアドレスを使用しようとしますが、もちろん動作しません。 質問 したがって、16進エディタでMBRを手動で編集する以外に、MBRのアドレスを4096バイトのセクタサイズで有効になるように修正するにはどうすればよいですか? パーティションは4096バイトセクターに合わせて整列されていません。別のドライブにコピーインおよびコピーアウトする以外に、それらを調整するために使用できるツールがありますか?(予備のドライブはありません)、または一度に少しずつデータをサイドに「シフト」するツールを作成する必要がありますか?パーティションはext3です。 ありがとう! 更新: この質問には、ddを使用してパーティションをその場でシフトする賢い方法があることがわかりました。GNU/ Linuxでパーティションを移動する方法は? しかし、それがセクターのスライスで機能するかどうかはわかりません。私は今それをテストすることはできませんが、時間があればそれを行います。 アップデート2: そのため、上記の方法を使用してパーティションを正常に位置合わせし、16進エディターでMBRを手動で編集しました。HDDを再接続すると、ブームパーティションが自動的にマウントされます!しかし、これはお勧めしません。プロセス中にI / Oエラーが発生し、すべてを失う可能性がありました。Rodの回答に関するコメントを参照してください。もう一方のパーティションについては、リスクをとらず、古いHDDを使用し、データをコピーしてから別の位置に貼り付けることで、チャンクを一度に調整します。