エントリディスク用にdd
を使用してWindows 10のイメージを作成し、Ubuntuリカバリモードから復元します
Windowsを復元する場合、hddを消去し、すべてのパーティションを削除します
wget -O- 'http://your_webhosting.com/Windows10template.img.gz' | gunzip | dd of=/dev/sda
画像サイズは5GB圧縮(gz形式)、20GB非圧縮です
3つのパーティションがありました
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1026047 1024000 500M 7 HPFS/NTFS/exFAT
/dev/sda2 1026048 208089944 207063897 98.8G 7 HPFS/NTFS/exFAT
/dev/sda3 208089949 1953520064 1745430116 832.3G f W95 Ext'd (LBA)
/dev/sda5 208090012 1953520064 1745430053 832.3G 7 HPFS/NTFS/exFAT
必要なのは、エントリディスクから作成されたイメージをsda1およびsda2のみに復元し、sda5(自分のファイル)を保持することだけでした。
Sda1とsda2を削除し、新しいパーティションsda1 100GBを作成して、イメージを復元しました
wget -O- 'http://your_webhosting.com/Windows10template.img.gz' | gunzip | dd of=/dev/sda1
しかし、何も変わっていません。パーティションは次のようになりました
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 195311615 195309568 93,1G 83 Linux
/dev/sda3 208089949 1953520064 1745430116 832,3G f W95 Ext'd (LBA)
/dev/sda5 208090012 1953520064 1745430053 832,3G 7 HPFS/NTFS/exFAT
通常の作業方法でhddを完全に消去しました。 1つのパーティションのみまたは未割り当て領域に復元するための作業方法が必要です
/dev/sda1
dd
でこれを行う方法
UPDATE
$ fdisk -l Windows10template.img
Disk Windows10template.img: 20 GiB, 21474836480 bytes, 41943040 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: 0x266de740
Device Boot Start End Sectors Size Id Type
Windows10template.img1 * 2048 1026047 1024000 500M 7 HPFS/NTFS/exFAT
Windows10template.img2 1026048 41940991 40914944 19,5G 7 HPFS/NTFS/exFAT
ドライブバックアップイメージのパーティション境界は現在のディスクレイアウトのサブセットと整列するため、gunzip
出力から関連部分を切り取り、/dev/sda
の適切な部分に書き込むのは比較的簡単です。 dd
を使用しますが、他の人のデータを上書きするだけであなただけを助ける答えを書くつもりはありません。あなた自身にとっても、間違ったオフセット計算を行ったり、同じ結果に間違った数値を入力したりする大きなリスクがあります。
代わりに、十分な大きさの記憶媒体にドライブイメージを解凍し、その上で操作することをお勧めします。回復モードでも可能です。ただし、グラフィカルユーザーインターフェイス(ライブDVD/USBなど)でこれを行うと、端末でこれのほとんどを行う場合でも、はるかに簡単です。
/dev/sda5
上のファイルシステムには、少なくとも25 GB(圧縮および解凍されたバックアップイメージを保持するのに十分)の空きがあると想定しています。
ファイルシステムを/dev/sda5
にマウントします。
動作する端末で:
udisksctl mount --block-device /dev/sda5 --options rw
udisksctl
は、ドライブがマウントされた場所を示します。
または、ファイルマネージャまたはGnomeディスクを使用してファイルシステムをマウントできます。
マウントポイントは/media/ubuntu/my-data
にあると仮定します。実際のマウントポイントに従って次のコマンドを調整します。
Webブラウザーまたはお気に入りのHTTPクライアントを使用して、以前にマウントしたファイルシステムに圧縮ドライブイメージをダウンロードします。 g .:
wget -P /media/ubuntu/my-data 'http://your_webhosting.com/Windows10template.img.gz'
イメージを解凍し、出力を同じファイルシステムに保存します。 File-Rollerなどのアーカイブマネージャーまたはコマンドラインツールを使用できます。 g .:
gunzip /media/ubuntu/my-data/Windows10template.img.gz
解凍されたドライブイメージのループデバイスをセットアップします。
Sudo losetup -f --show /media/ubuntu/my-data/Windows10template.img
losetup
は、ループデバイスへのパスを表示します。 /dev/loop7
であると仮定します。実際のデバイスパスに応じて、次のコマンドを調整します。
カーネルに、ループデバイス上の(ドライブイメージによって裏付けられた)パーティションテーブルを検出するように指示します。
Sudo partprobe /dev/loop7
カーネルは、検出されたパーティションに追加のブロックデバイスノードを追加します。 e。 /dev/loop7p1
および/dev/loop7p2
。
以前に公開されたパーティションを個別にターゲットデバイスにコピーします。 Gnome DisksやGParted、またはdd
などのパーティションマネージャーを使用できます。後者の場合、次のようになります。
Sudo dd if=/dev/loop7p1 of=/dev/sda1 bs=8M
Sudo dd if=/dev/loop7p2 of=/dev/sda2 bs=8M
正しいターゲットデバイスパスを入力したことと、/dev/sda
が実際にあなたが思っているとおりであることを再確認してください!システムのリブート後もブロックデバイスに同じ名前を再割り当てするのにカーネルに頼らないでください! =
/dev/sda
のIDを確認するには、そのパーティションレイアウト(fdisk /dev/sda
またはGnome Disksなど)を確認するか、/dev/disk/by-*
で一意で(ほとんど)安定したデバイス識別子を使用します。
/dev/sda1
および/dev/sda2
に目的のデータが含まれていることを確認します。
できました。 Windowsを再起動するか、何でもします。
いつでも好きなときに、残ったドライブイメージをクリーンアップします。ループデバイスを削除します(その間に再起動しなかった場合)。そうしないと、実際に削除されません。
Sudo losetup -d /dev/loop7
ddは非常に強力ですが、非常に危険なツールでもあります。 backup ddの改ざんを開始する前に、ターゲットドライブ(パーティション/ dev/sda5など)で新しくなったものは何でもください。
一番危険な方法は
バックアップイメージから「すべて」を追加のドライブにクローンします
追加ドライブの最初のパーティションをターゲットドライブの最初のパーティションに複製します。
ただし、ドライブのヘッド(最初のmibibyte)が破損しているため、バックアップイメージからその部分をターゲットドライブにも複製する必要があります。 count=N
を使用してNブロックのみをコピーできます。デフォルトのブロックサイズは512バイトです。
別のより速く、しかしよりリスクの高い方法は、バックアップの最初の部分を、ヘッドエンドから最初のパーティションの終わりまで複製することです。