dd
도구를 파일로 사용하여 하드 디스크(모든 파티션 포함)를 정기적으로 전체 백업했습니다 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 파티션
위의 예에서는 두 번째 파티션을 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