回復可能なディスクイメージの作成[閉じる]

回復可能なディスクイメージの作成[閉じる]

Windows 10がプレインストールされたノートパソコンを購入したいと思います。このラップトップにLinuxをインストールしたいのですが、Windowsを復元(工場設定にリセット)するオプションが必要です。したがって、ディスク全体(すべてのパーティション、MBRなど)のビット単位のイメージを作成したいと思います。もちろん、Windowsがプリインストールされている間にノートブックを「工場設定」に復元できるように、このイメージをディスクに「フラッシュ」するオプションが必要です。このタイプの画像を作成するための最良のオプションは何ですか?後でこれらの画像をどのように回復できますか?

USBからLinuxを起動し、USB経由でより大きなハードドライブを接続します。対応するUSB​​ハードドライブにバックアップを保存します。 ddコマンドを考えていましたが、空きスペースを考慮せずに巨大なイメージが生成されます。

答え1

組み込みのWindowsバックアップツールを使用して、Windowsオペレーティングシステムのシステムイメージを作成してみることができます。これはWindows Centralのチュートリアルがあります。

パーティションを縮小して新しいパーティションを作成した後、ここにLinuxをインストールしてデュアルブートすることもできますが、初心者のユーザーにとっては危険です。

答え2

ほとんどのOEM Windowsコンピュータには、次のものを生成するためのツールが付属しています。「回復ディスク」、USBまたはCD/DVD。もしそうなら、それが最善の選択です。その後、そのリカバリメディアをディスク上のファイルにコピーするか、他の一般的な方法でバックアップすることを選択できます。

そうでなければ、暴力を行使する必要があります。ハードドライブの完全なコピーを作成するのに十分なディスク容量があるので、これはおそらく最良の選択肢でしょう。これを行うには、次のものが必要です。

  • ライブLinuxメディアから起動し、内蔵ハードドライブのファイルシステムがマウントされていないが、ターゲットドライブがマウントされていることを確認してください。この短いガイドでは、内部ドライブからファイルシステムをマウント解除し、ターゲットドライブにファイルシステムをマウントしたとします/mnt
  • ddrescue内部ハードドライブ(パーティションテーブルなどを含む)をターゲットメディアにコピーするファイルを実行します。発生する可能性がある読み取り問題をより適切に処理できるため、ddrescueより良いです。dd(これは主にエッジメディアの問題ですが、後でコンピュータを工場出荷時の状態に復元するための画像を作成する予定であれば、注意することも悪くありません。)sudo ddrescue -b 4096 -c 1024 -p /dev/sda /mnt/laptop-copy.sda端末でこれを実行するのは良いスタートです。 (-bおよび値は-c重要ではありませんが、パフォーマンスを向上させるために使用できます。)man 1 ddrescueこれらのオプションの説明については、参考資料を参照してください。
  • 必要に応じてsplitsplit -a 2 -d -n 100 /mnt/laptop-copy.sdaこれらは後で再結合することができますcat
  • 必要に応じて出力ファイルを圧縮します。実際のディスクの内容によっては、圧縮がそれほど効率的ではない可能性があります。このようなものでgzip -1 /mnt/laptop-copy.sda*十分です。データは完全に圧縮可能またはまったく圧縮できません。

ノートブックを工場出荷時のソフトウェア状態に復元するには、次の手順を逆にします。

  • チャンクまたはイメージファイルが(明らかに)利用可能であることを確認してください。
  • 該当する場合は、解凍されたブロックを使用してくださいgunzip
  • 該当する場合は、再グループ化ブロックを使用してくださいcat
  • 同様の方法でドライブにデータを書き込みますsudo ddrescue -b 4096 -c 1024 /mnt/laptop-copy.sda /dev/sda

答え3

圧縮画像を作成できます。

gzip < /dev/hdd > hdd.img.gz

再び覆う:

gunzip < hdd.img.gz > /dev/hdd

一度も使用されていない状態で工場から出た場合は、空き領域をランダムに指定してはいけません。その結果、圧縮画像は非常に小さくなければなりません。

空き領域がない場合は、スパースイメージを実行することもできます(スパースファイルをサポートするファイルシステムで)。

dd bs=4K conv=sparse if=/dev/hdd of=hdd.sparse.img

回復:(回復時にスパースを使用しないでください。)

dd bs=1M if=hdd.sparse.img of=/dev/hdd

ファイルが実際に使用しているストレージ容量を確認するには、次の手順を実行します。

du -h hdd.sparse.img

まれなイメージの利点は、圧縮されずに元のサイズで表示されるため(実際にはスペースが使用されていない)、読み取り専用でマウントしたり、仮想マシンから起動を試みることができることです。 VMが目標であればqemu-img


そこですぐすれば面白いと思います。 RAMにできるだけ多くのデータをキャッシュし、キャッシュされたデータよりも大きくないファイルシステム(1MiBオフセット)を作成し、それを上記のように入力し、それに応じてファイルシステムを増やすことが含まれます。その後、最終サイズに関係なく、回復パーティションとして使用できる1MiBから始まるパーティションを作成できます。これは関連する解決策であり、プロセスが中断されると危険です。

次のように盲目的に行うことができます。

gzip --verbose < /dev/hdd > /dev/hdd

ただし、これは圧縮データが常に圧縮されていないデータよりも小さく、データが読み込まれるまでgzipヘッダーが書き込まれないことを前提としています。動作する可能性がありますが(以下の例)、保証されません。

# md5sum /dev/loop0
dd409e37f092ce049c396b99b32366fb  /dev/loop0
# xz --verbose < /dev/loop0 > /dev/loop0
  100 %   1,027.4 KiB / 8,192.0 KiB = 0.125                                    
# unxz --verbose < /dev/loop0 | md5sum
  --- %   1,027.4 KiB / 8,192.0 KiB = 0.125                                    
unxz: (stdin): Compressed data is corrupt
  --- %   1,027.4 KiB / 8,192.0 KiB = 0.125                                    
dd409e37f092ce049c396b99b32366fb  -

それからあなたはまだそれで何をすべきかを知る必要があります。この例では、1028KiBを別の場所に移動する必要があります(1MiBを移動してこのサイズのパーティションを作成すると、回復パーティションが作成されます)。

また、リバース実行を検討してください(したがって、イメージはディスクの端で終わります)。

関連情報