복원하다

복원하다

dd도구를 파일로 사용하여 하드 디스크(모든 파티션 포함)를 정기적으로 전체 백업했습니다 backup.img. 그러한 파일이 여러 개 있습니다.

backup.img이제 이전 하드 디스크가 작동하지 않습니다 . 이미지와 같이 모든 파티션과 파일을 그대로 유지하기 위해 어떻게 파일을 사용하여 새 하드 디스크에 쓸 수 있습니까 ?

또한 그러한 파일에서 데이터의 일부(몇몇 파일/폴더)를 추출할 수 있습니까 backup.img?

답변1

복원하다

다음과 같은 방법으로 이미지를 교체용 HDD로 다시 복원할 수 있습니다.

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

모든 파티션과 데이터를 포함하여 원본 디스크의 복제본이 생성됩니다.

단점은 파티션 크기가 조정되지 않으므로 dd교체 디스크의 용량이 원본과 동일하거나 더 커야 한다는 것입니다.

만족스러우면 gpartedParted 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 파티션

위의 예에서는 두 번째 파티션을 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

그 중 하나를 마운트하십시오.

# 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

관련 정보