500GB のハード ドライブのクローンを作成したかったので、Kali Linux を起動して次のコマンドを実行しました。
dd if=/dev/sda of=/media/root/usb/windows.img bs=64k conv=noerror
すべて正常に動作し、イメージが作成され、起動できるようになりました。ただし、実際の PC を起動すると、次のメッセージが表示されます。
An operating system wasn't found. Try disconnecting any drives that don't contain an operating system. Press Ctrl+alt+Del to restart.
これは単なる偶然である可能性もありますが、可能性は低いようです。現在、このコンピューターに物理的にアクセスできません。私の質問は、この dd コマンドを実行すると、コンピューターが起動可能なドライブを見つけられなくなる可能性があるかどうかです。
答え1
それはありそうにないこれdd コマンドは、ドライブ /dev/sda からデータを読み取り、それを物理的に別のストレージ デバイスにあるイメージ ファイルに書き込むだけなので、それ自体ではブートに悪影響はありません。
可能性が低いということは、不可能ということではありません。次の 2 つのケースを除外できるかどうかを確認してください。
例外 1: オプション を渡したようですconv=noerror
。通常、このオプションは故障したストレージ デバイスからデータを抽出するために使用されます (実際には を使用しconv=sync,noerror
、bs には HDD の物理セクター サイズと一致する値を指定します)。このオプションは、読み取り元のドライブで不良セクターに遭遇した後に dd が続行するようにします。そのため、イメージ ファイルからデータを抽出できます。イメージ ファイルには、故障したドライブによって生じたデータ破損がまだ含まれている可能性がありますが、現在は安全なストレージ上に配置されています。逆に言えば、ドライブが正常であると思われる場合は、ないconv=noerror
dd が失敗した場合にドライブに問題があることがわかるように、これを渡します。
不良ドライブから読み取っていたと仮定すると、dd 自体による読み取りによって、ドライブ上にさらに不良セクターがいくつか発生した可能性があります。これは、他のプログラムによる他の読み取り操作 (PC の通常の起動など) でも同様です。これが事実であれば、dd はそのセクターで最後に成功した読み取りだった可能性があります。
例外 2: また、上記の dd 呼び出しは正しいのですが、dd コマンドを手動で入力すると、「if」が「of」に置き換わってしまうことが非常に多く、ハード ドライブ上のデータが使用できなくなる可能性があります。
dd がデータを壊していないと確信できない場合でも、起動に失敗した他の原因を調べることを怠らないでください。ここでは、途中で役立つヒントをいくつか紹介します。これにより、問題をより正確に説明できるようになります。
あなたが読んでいるメッセージ ( An operating system wasn't found [...]
) は、Windows ブート ローダーからのものです。BIOS はこのブート ローダーが入ったディスクを見つけましたが、それに付随する Windows インストールを見つけることができません。Windows を起動するつもりでしたか?
説明にあるソース ハード ドライブ、新しいディスク イメージがあるハード ドライブ、またはまったく別のインストールを実行しようとしましたか?
たとえば、Kali を起動するときなど、BIOS の起動オプションを変更しましたか? BIOS が正しいドライブを指していることを確認していますか? (または、以前 Windows のインストールに使用されていたドライブでしょうか?)
説明が完全であれば、ハード ドライブを実際に「クローン」したわけではなく、既存のファイル システム内にイメージ ファイルを作成しただけです (バックアップとして役立ちます)。適切にクローンされたハード ドライブを PC に挿入して元のハード ドライブと置き換えることもできますが、これまでの方法ではまだ機能しません。また、ソース ハード ドライブに障害があった場合、イメージが破損している可能性があります。dd を使用したクローン作成についてさらに詳しく読むことをお勧めします。この基本的な例ではそしてconv=sync,noerrorに関するこの議論。