pv方法

pv方法

ケース想像する:

$ 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のフルインストール(ドライバ、プリンタ、プログラムなど)を再実行する必要がないようにしたバックアップを復元したいと思います。 .).

テスト済みこれまで(すべてのテストは、同じパーティションレイアウトを使用する同じマシンで行われました):

  • 部品イメージ(複製sda1sda2):機能しません。復元されたオペレーティングシステムは起動しません。
  • FSアーカイバー(複製sda1sda2):機能しません。復元されたオペレーティングシステムは起動しません。

答え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。マイレージはディスク容量とエラー係数によって異なりますntfsclonedd正しい計算が簡単に見えます。 :-)

答え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の答え以上。lzmaSSDと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

関連情報