dd
私はTools for Filesを使用して、ハードドライブ(すべてのパーティションを含む)を定期的にフルバックアップしますbackup.img
。これらのファイルはいくつかあります。
これで既存のハードドライブが故障しました。backup.img
図に示すように、すべてのパーティションとファイルがそのまま残るように、ファイルを使用して新しいハードドライブにどのように書き込むことができますか?
これらのファイルから部分データ(複数のファイル/フォルダ)を抽出することも可能ですかbackup.img
?
答え1
また覆う
以下を使用して、交換用ハードドライブにイメージを復元できます。
# 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名を確認してください。あなたの名前と私の名前が異なる場合があります)。
# 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