復元する

復元する

dd私は、tool as fileを使用して、ハードディスク (すべてのパーティションを含む) の完全バックアップを定期的に作成しましたbackup.img。そのようなファイルがいくつかあります。

古いハードディスクが故障したので、backup.imgイメージにあるようにすべてのパーティションとファイルをそのまま残すために、ファイルを使用して新しいハードディスクに書き込むにはどうすればよいですか。

また、そのようなファイルからデータの一部(いくつかのファイル/フォルダー)を抽出することは可能ですかbackup.img?

答え1

復元する

次のような方法で、交換した HDD にイメージを復元できます。

# dd if=backup.img of=/dev/sd?

すべてのパーティションとデータを含む元のディスクのクローンが作成されます。

この方法の欠点は、パーティションのサイズが変更されないddため、交換するディスクの容量は元のディスクと同じか、それより大きい必要があることです。

gpartedこれに満足している場合は、または類似のもの (Parted Magic など) を含む起動可能なイメージを使用して、新しいディスクに合うようにパーティションのサイズを変更できます。

取り付け

イメージをマウントするには、 を使用する必要がありますlosetup

古い方法

これを実行する古い方法は、次のようにパーティションの開始までのオフセットを計算することです。

実行しfdiskてセクター サイズを確認します。

# fdisk -l backup.img
Disk backup.img: 8 GiB, 8589934592 bytes, 16777216 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: 0x91999386

Device      Boot   Start      End  Sectors  Size Id Type
backup.img1 *       2048  1026047  1024000  500M 83 Linux
backup.img2      1026048 16777215 15751168  7.5G 8e Linux LVM

オフセットを計算するには、始める関心のあるパーティションの列の値にセクター サイズを掛けます。たとえば、backup.img1上記を読み取るには、2048 x 512 = 1048576 を掛けます。

この値を次のようにオフセットとして使用しますlosetup

# losetup -o 1048576 /dev/loop0 backup.img

次にループバックデバイスをマウントします。

# mount -t ext4 /dev/loop0 /mnt

後の方法

新しいバージョンでは、次のようにイメージ内のすべてのパーティションをlosetupスキャンしてエントリを自動的に作成します。/dev/loop

# losetup -Pf backup.img
# ls /dev/loop0*
/dev/loop0  /dev/loop0p1  /dev/loop0p2
# mount -t ext4 /dev/loop0p1 /mnt

LVM パーティション

上記の例では、2 番目のパーティションが LVM として表示されています。これらのパーティションからファイルを抽出するには、ループバック デバイスで LVM の魔法を実行するだけです。最初のスキャン:

# pvs
  PV           VG            Fmt  Attr PSize PFree 
  /dev/loop0p2 fedora-server lvm2 a--  7.51g 40.00m

次に、VG をアクティブ化します (上記のコマンドの VG 名に注意してください。おそらく、VG 名は私のものとは異なります)。

# vgchange -a y fedora-server
  2 logical volume(s) in volume group "fedora-server" now active

どのようなパーティションがあるか確認します:

# ls /dev/fedora-server/
root  swap

そしてそのうちの1つをマウントします。

# mount -t ext4 /dev/fedora-server/root /mnt

出口

ファイルを抽出したら:

# umount /mnt
# losetup -d /dev/loop0

または LVM マウントの場合:

# umount /mnt
# vgchange -a n fedora-server
  0 logical volume(s) in volume group "fedora-server" now active
# losetup -d /dev/loop0

関連情報