ケース想像する:
$ sudo fdisk -l
Disk /dev/sda: 223,6 GiB, 240057409536 bytes, 468862128 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x13a30a5a
Device Boot Start Final Sectors Size Id Type
/dev/sda1 * 2048 1333247 1331200 650M 27 WinRE NTFS hidden
/dev/sda2 1333248 264058879 262725632 125,3G 7 HPFS/NTFS/exFAT
/dev/sda3 264060926 468860927 204800002 97,7G 5 Extended
/dev/sda5 264060928 434049023 169988096 81,1G 7 HPFS/NTFS/exFAT
/dev/sda6 434051072 464771775 30720704 14,7G 83 Linux
/dev/sda7 464773120 468860927 4087808 2G 82 Linux swap / Solaris
Windows 10にインストールされ、同じWindowsシステムの隠しパーティションであるとします /dev/sda2
。/dev/sda1
どうやってできるか私のWindows 10バックアップインストールするLinuxで後で復元しますか?
リクエストに応じて追加データを提供する:
- 「インストール」とは、Windowsをレプリケーション時に戻すために必要な「フルパーティション」(またはパーティション)を意味します。
- 同じシステム(コンピュータ、ハードウェア)またはハードドライブに復元できれば十分です。つまり、Windows 10をインストールしてバックアップを作成し、数ヶ月前にWindows 10のフルインストール(ドライバ、プリンタ、プログラムなど)を再実行する必要がないようにしたバックアップを復元したいと思います。 .).
テスト済みこれまで(すべてのテストは、同じパーティションレイアウトを使用する同じマシンで行われました):
答え1
pv
方法
使用できるpv
(マンページ)次のユーティリティ:
sudo sh -c 'pv < /dev/sda > /destination'
もちろん、まずルートになることができます。
sudo -i
それではサポート:
pv < /dev/sda > /BackupDestination
その後、必要に応じて実行します。また覆う:
pv < /BackupDestination > /dev/sda
ノート
dd
これは基本的に他の答えと同じことですが、より速く改善されました。この方法は遅くなりますが、
rsync
ファイルをコピーするだけなので、意図したものではありません。すべてを1:1の方法で複製するので、完璧な再現と言えます。
後で起動するには、起動セクタも必要です。最も簡単な方法は、ドライブ全体をバックアップすることです。
進捗状況の表示
dd
(マンページ)、コマンドに以下を追加できます。status=progress
ヒント
後で画像を効率的に圧縮するには、空き領域をゼロにすることを忘れないでください。
答え2
LinuxでWindows 10をファイルにバックアップし、新しいドライブに復元する説明されたシナリオが正常に完了しました。
使用削除未使用スペースをゼロで埋める
sdelete -z c:
これはそれ自体は必要ありませんが、生成されたファイルの圧縮を向上させることができます。削除されたファイルは実際にはディスクからゼロに変わりません。そのファイルが占有するスペースは再利用可能としてマークされますが、データはまだ残ります。 ddはまたこのデータを回復するので、空き領域としてマークされたすべてのスペースをゼロで埋めると圧縮がより効率的になります。
MBRとパーティションテーブルを起動してスペアドライブにバックアップするには、ライブLinux USBを入手してください。
dd if=/dev/sda of=/somewhere/file.mbr bs=512 count=63
ブートパーティションをファイルにコピー
dd if=/dev/sda1 bs=1M status=progress | lz4 > /somewhere/sda1.lz4
システムパーティションをファイルにコピー
dd if=/dev/sda2 bs=1M status=progress | lz4 > /somewhere/sda2.lz4
新しいディスクをコンピュータに挿入し、ライブ Linux を再起動し、ディスクの先頭を復元します。
dd of=/dev/sda if=/somewhere/file.mbr
これにより、同じデフォルトのパーティションレイアウトが得られます(拡張パーティション内のパーティションは別の場所に保存され、それでも復元されません)。
次に、両方のWindowsパーティションを復元します。
dd of=/dev/sda1 bs=1M status=progress < lz4cat /somewhere/sda1.lz4
dd of=/dev/sda2 bs=1M status=progress < lz4cat /somewhere/sda2.lz4
この段階では、ドライブは起動しません(grubが文句を言います)。そのため、Windowsリカバリディスクまたはインストールメディアを実行し、「回復」を選択します。トラブルシューティング時にcmdプロンプトを起動して実行します。
bootrec /fixmbr
このステップでは、より大きな新しいドライブから元のWindowsシステムを起動するようにしました。 gzipとlz4を使用して50%圧縮(70%フルドライブ)を得ましたが、gzipはCPU速度(私の場合は27MB / s)に制限されますが、lz4はそうではありません(480MB / s CPU制限、180MB / s My Backup)ドライバの制限)。
最初の試みはを使用することntfsclone
でしたが、起動可能なWindowsを作成できませんでした(\ Windows \ System32にいくつかのファイルがないと文句を言います)。なぜ動作しないのかわかりません。最後に、dd
+lz4
ソリューションは自分より小さい画像を生成しますntfsclone
。マイレージはディスク容量とエラー係数によって異なりますntfsclone
。dd
正しい計算が簡単に見えます。 :-)
答え3
はい、最も簡単な解決策は次のとおりです。
dd if=/dev/sda of="/media/usb/$(date).img"
ゆっくりとゆっくりと空間を占めるので
- 必要なパーティション+ブートセクタをコピーします。
- 空き容量をゼロ化して圧縮します。
- ブロックベースのバックアップではないファイル
- リバースdiffのためのrdiff-backup(最初の後のサイズが大幅に減少しました)
- rsync(遅いネットワークでかなりの速度向上)
- WindowsをVMにインストールする場合、rsync / diffバックアップよりも高速または小さいox FS(btrfs / zfs)は単なるオプションであり、そのシナリオに適しているかどうかわかりません。
ブートセクタ、UUIDを見逃した可能性があるため、grubと https://en.m.wikipedia.org/wiki/Windows_Vista_startup_process
答え4
以下のように新しくインストールされたWindowsシステムをバックアップしました。Zbinek Winklerの答え以上。lzma
SSDとSSDの両方を試しましたが、ボトルネックがgzip --fast
発生しました(両方のSSDは圧縮なしで2GB / sの転送速度を管理しました)。実際のコマンドライン:
$ sudo dd if=/dev/nvme0n1 bs=1M status=progress | pzstd -o /tmp/windows-disk.zst
このプロセスには約8分かかり、1TB SSDは8GBファイルに圧縮されます。これは新しくインストールするものなので、Windowsだけであり、ユーザーデータやアプリケーションはありません。
再び覆う:
$ pzstd -d /tmp/windows-disk.zst -c | sudo dd of=/dev/nvme0n1 bs=1M status=progress