![파티션(ext4)의 이미지를 생성한 다음 이를 마운트하여 파일 탐색/복구를 수행하는 방법은 무엇입니까? [복사]](https://linux55.com/image/160502/%ED%8C%8C%ED%8B%B0%EC%85%98(ext4)%EC%9D%98%20%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A5%BC%20%EC%83%9D%EC%84%B1%ED%95%9C%20%EB%8B%A4%EC%9D%8C%20%EC%9D%B4%EB%A5%BC%20%EB%A7%88%EC%9A%B4%ED%8A%B8%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%20%ED%83%90%EC%83%89%2F%EB%B3%B5%EA%B5%AC%EB%A5%BC%20%EC%88%98%ED%96%89%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
Debian 10의 클린 버전을 설치할 수 있도록 현재 Debian 9 서버 OS 파티션을 백업하고 싶습니다.
하지만 Debian 10을 설치한 후 필요에 따라 파일을 찾아보고 복원할 수 있도록 이전 OS 이미지를 마운트하고 싶습니다.
CloneZilla를 사용할 줄 알았는데, 생성된 이미지를 직접 설치할 수는 없는 것 같죠?
답변1
e2image
사용 중인 섹터만 복사하면서 ext4 파일 시스템의 이미지를 생성하는 데 사용할 수 있습니다.
e2image -ra /dev/sda1 /path/to/file.img
file.img
스파스 파일로 생성되므로 겉보기 크기는 파일 시스템의 용량을 반영하지만 파일 시스템에서 실제로 사용되는 공간만 차지합니다. 파일 시스템 이미지처럼 직접 마운트할 수 있습니다.
mount /path/to/file.img /path/to/mountpoint
e2image
다음을 사용하여 QCOW2 이미지를 생성 할 수도 있습니다 .
e2image -Qa /dev/sda1 /path/to/file.qcow2
그러면 다음을 사용하여 계속 설치할 수 있는 압축 파일이 생성됩니다 qemu-nbd
.
qemu-nbd --connect=/dev/nbd0 /path/to/file.qcow2
mount /dev/nbd0 /path/to/mountpoint
두 이미지 모두 압축할 수 있지만 이렇게 하면 파일을 직접 제거할 수 없게 됩니다.
답변2
루트로서 cat
파티션을 다른 파티션으로 전송하면 됩니다.cat /dev/sdXn > /dev/sdYi
또는 파일로: cat /dev/sdXn > backup.img
또는 다른 시스템의 파일이나 파티션으로:cat /dev/sdXn | ssh user@host 'cat > backup.img'
dd
대신 사용할 수 있지만 cat
그렇게 할 이유가 없습니다.
dd if=/dev/sdXn of=backup.img
또는 복사하는 동안 진행률 표시줄을 원하거나 복사하는 동안 사용되는 버퍼링 양을 제어하려면 다음을 사용할 수 있습니다 pv
.
pv /dev/sdXn > backup.img
ddrescue
파티션에 읽기 오류가 있는 경우 대신 다음 명령을 사용해야 할 수도 있습니다 cat
.
ddrescue /dev/sdXn /dev/sdYi
또는
ddrescue /dev/sdXn backup.img
ddrescue
backup.img
Stdout은 stdin에 기록되거나 stdin에서 읽히지 않으므로 다른 시스템에서 사용 하려면 scp
이를 복사(예: NFS 마운트 사용)하거나 NFS 마운트에 써야 합니다.
또는 의견에서 언급한 user1133275처럼 다음을 사용할 수 있습니다.프로세스 교체:
ddrescue /dev/sdXn >(ssh user@host 'cat > backup.img')
마지막으로, 압축되고 마운트 가능한 파일 시스템을 원한다면 다음을 사용할 수 있습니다 qemu-img
.
qemu-img convert -c -O qcow2 /dev/sdXn backup.qcow2
설치하세요:
qemu-nbd --connect=/dev/nbd0 /path/to/backup.qcow2
mount /dev/nbd0 /mnt
그리고 모두 패키지 qemu-img
에 들어있습니다 . 그런데 하나의 파티션 대신 전체 디스크의 이미지를 가져오면 이전 시스템을 새 시스템에서 가상 머신으로 실행할 수 있습니다.qemu-nbd
qemu-utils
또 다른 옵션은 두 번째 디스크를 마운트하고 여기에 Debian 10을 설치하는 것입니다. 그런 다음 새 시스템의 어딘가에 이전 드라이브를 설치할 수 있습니다. 또는 Debian 9와 Debian 10 간의 이중 부팅도 가능합니다.
개인적으로 는 이미지 백업보다는 파일 복사(예: tar
또는 rsync
또는 사용)를 사용하는 것이 좋습니다. cp -a
더 유용하고, 원하는 곳 어디든 쉽게 추출할 수 있으며, 비어 있거나 사용하지 않는 섹터를 복사하는 데 공간이나 시간을 낭비하지 않습니다.
이미지 백업은 (거의 항상) 파일 시스템을 백업하는 최악의 방법입니다.
답변3
ext4 파티션을 다음과 같이 마운트하십시오./whatever
mkisofs -o /somehwere_else/whatever.iso /whatever
이제 당신은 아무리 커도어쨌든.iso. 당연히 이동하는 위치의 디스크 공간에 주의해야 합니다.
해당 iso에 액세스하려면 다음을 수행하면 됩니다.
mount -o loop /somewhere/whatever.iso /anywhereyoulike/mywhateveriso/
/whatever
이제 폴더 아래의 모든 항목 에 액세스할 수 있습니다.읽기 전용아래에/anywhwereyoulike/mywhateveriso/
파티션이 있다는 사실 ext4
은 이 데이터를컨테이너이것은다양한 파일 시스템 형식. 따라서 데이터가 ext4, xfs 또는 btrfs 파티션에 있는지는 중요하지 않습니다. 왜냐하면 이 시점에서는 이미 해당 데이터에 액세스할 수 있는 Linux 커널 파일 시스템 지원이 있기 때문입니다.
다음을 통해 해당 iso 컨테이너에 데이터를 넣으면MKISOF이것은 매우 다재다능합니다. isofs는 보편적이기 때문에 이제 거의 모든 곳에서 데이터에 액세스할 수 있습니다.컴퓨터가 cd/dvd [iso9660/udf]를 읽을 수 있으면 everything.iso에 액세스할 수 있습니다. .iso를 만들면 이식성이 매우 높아집니다.
문제가 될 수 있는 파일 시스템을 사용하거나 cat
보존 할 것 tar
입니다.dd