원격 서버를 백업하기 위해 로컬 컴퓨터에서 다음 명령을 실행했습니다.ssh user@remote "dd if=/dev/vda | gzip -1 -" | dd of=image.gz
그런 다음 압축을 풀고 image.gz
모든 것이 있는지 확인하기 위해 두 번 클릭하여(예: DiskImageMounter.app을 통해) 설치를 시도했습니다.
압축을 푼 이미지 파일의 크기는 거의 같지만(서버의 디스크 용량은 50GB), 이미지를 마운트하면 파일 탐색기에 보이는 것은 "UEFI" 디렉터리뿐입니다. 이 디렉터리는 서버의 디스크보다 훨씬 작고 포함되지 않습니다. 예를 들어 서버의 홈 디렉터리입니다.
MacOS의 디스크 유틸리티에서 얻은 내용은 다음과 같습니다(원하는 것은 "disk10s1"이라고 가정하지만 지금까지는 "UEFI"에만 액세스할 수 있습니다.).
답변1
그런 다음 image.gz의 압축을 풀고 모든 것이 있는지 확인하기 위해 두 번 클릭하여(예: DiskImageMounter.app을 통해) 마운트를 시도했습니다.
현재 가지고 있는 것은 전체 디스크 백업입니다. 너아니요그러나 rw에 마운트된 동안 이것을 사용하면 /dev/vda
최소한 약간 손상될 것입니다. rw에도 상주한다면 백업 중에 파일 시스템을 크게 수정하게 되므로 image.gz
심각하게 손상될 수 있습니다 ./dev/vda
즉, 데이터를 포함하는 파일 시스템을 포함할 뿐만 아니라 파티션 테이블로 시작하고 UEFI 부팅 파티션을 포함하는 것처럼 보입니다.
두 번 클릭하면 DiskImageMounter가 최소한 괜찮은 파티션을 인식하는 것 같습니다.
다른 것들은 인식될 수도 있고 인식되지 않을 수도 있습니다. 귀하의 운영 체제에는 해당 파일 시스템 드라이버가 전혀 없을 수도 있습니다.
즉, 해당 이미지의 데이터에 액세스하려면 해당 디스크를 사용하여 가상 머신을 로컬로 부팅하면 됩니다.
좀 더 유용한 백업을 원하신다면 그냥 백업해 두시는 걸 추천드려요문서,아니요원시 디스크 이미지(실제로 전체 VM을 복사하려는 경우가 아니면) 파일과 해당 속성 외에는 파일 시스템에 아무것도 없으므로 파일을 백업하는 것만으로는 손실되는 것이 없습니다.
이는 직접 사용하여 매우 간단하게 달성할 수 있습니다.
ssh user@remote tar cpf - --xattrs --acls --zstd / > backup.tar.zst
tar
대상 시스템에서 실행되어 모든 파일을 보관하고 즉시 zstd
압축하고(원격 시스템에 설치해야 함) p
모든 파일 속성을 보존하고 xattrs
결과 acls
를 ssh
로컬 시스템으로 파이프하여 로컬 시스템에 직접 기록합니다. 파일 backup.tar.zst
.
mksquashfs
나중에 다운로드하기 위해 (설치 필요)를 사용하여 원격에 있는 모든 파일의 작은 아카이브를 원격 자체의 파일(백업 자체는 포함하지 않음)에 저장할 수도 있습니다.
mksquashfs / backup-$(date --utc -Ihours).squashfs -wildcards -exclude '... backup-*.squashfs' -comp zstd
여기서의 장점은 백업 자체에 포함된 모든 백업 파일을 쉽게 제외할 수 있고, mksquashfs
좋은 압축을 통해 기본적으로 많은 공간이 절약되며, 동일한 파일의 내용이 한 번만 저장된다는 점입니다.
또 다른 멋진 측면은 이러한 squashfs 아카이브를 직접(적어도 Linux에서는) 마운트할 수 있다는 점입니다. 압축을 풀 필요가 없습니다. MacOS에서는 unzip을 설치할 수 있습니다 squashfs-tools
.생각하다(한 번도 시도한 적이 없습니다). 를 macFUSE
사용하여 설치할 수 있습니다 squashfuse
. 재미있게 보내세요!