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