btrfs 루트 파일 시스템을 백업하기 위한 최선의 전략은 무엇입니까?

btrfs 루트 파일 시스템을 백업하기 위한 최선의 전략은 무엇입니까?

@루트 하위 볼륨과 하위 볼륨이 있는 btrfs 루트 파티션이 있고 @home, 업데이트 중에 자동 스냅샷을 수행하고 시간 이동 예약 스냅샷을 수행합니다. 둘 다 동일한 드라이브에 저장됩니다. 이것은 훌륭하지만 드라이브 오류가 발생할 경우를 대비해 추가 중복성을 갖고 싶습니다.

Debian의 마지막 설정에서는 ext4 파일 시스템을 사용하고 외부 드라이브에 시간 이동 rsync 백업을 배치했습니다.

루팅된 장치에서 스냅샷을 찍으면서 외부 드라이브에 백업하는 것과 같은 유사한 작업을 어떻게 수행할 수 있습니까?

시스템 장치(btrfs로 포맷된 1TB SSD) 외에도 Windows를 듀얼 부팅하기 때문에 현재 2개의 NTFS 파티션으로 포맷된 2TB HDD도 있습니다. 이제 해당 드라이브의 Linux 파일 시스템으로 완전히 마이그레이션하려고 하는데 루트 드라이브 백업을 어떻게 해야 할지 모르겠습니다. HDD에 디스크 이미지를 만드는 것을 고려했지만 dd 그렇게 하면 (a) 그것이 올바르게 작동하는 방식을 이해하면 추가 테라바이트의 저장 공간을 잃게 되고 dd(b) 이제 이미지에서 복구하는 방법을 모릅니다. . 이상적으로는 루트 장치 백업을 위해 두 번째 드라이브에 btrfs 파티션을 두고 오버플로 데이터 저장을 위해 두 번째(ext4 또는 ntfs 등) 파티션을 갖고 싶습니다.

본질적으로 내 질문은 다음과 같습니다. 이미 "스냅샷된" 루트 파티션을 어떻게 쉽게 백업할 수 있습니까? (또한 여기에서 복원하는 방법도 알 수 있습니까?)

편집: 내 솔루션

내가 생각해 낸 해결책은 다음과 같습니다.btrbk, 스냅샷을 관리하고 자동으로 다른 드라이브로 보내는 단일 Perl 스크립트입니다. 내 github 계정에 설정을 문서화했습니다.여기.

btrbk단일 프로필 실행을 사용하여 스냅샷 및 백업 위치와 보존 정책을 지정합니다. 저는 crontab을 사용하여 백업 프로세스를 예약합니다. 초보자에게는 설정이 많은 작업이지만 단순히 스내퍼나 타임시프트를 사용하는 것보다 학습 과정에서 더 가치가 있습니다.

답변1

이러한 요구에 대해 제가 생각해낸 해결책은 다음과 같습니다.https://github.com/ceremcem/smith-sync

대상에 백업할 자체 스크립트를 준비했습니다.https://github.com/ceremcem/smith-sync-new-target

제가 사용하고 있는 전체 백업 시스템은 다음과 같습니다.https://github.com/ceremcem/erik-sync

이 과정은 매우 복잡하며 깊은 지식이 필요합니다. 요컨대,이 스크립트다음을 수행하십시오.

  • 백업 프로세스가 중단되지 않도록 자동 일시 중단 작업을 연기합니다.
  • 모든 스냅샷을 대상으로 보냅니다.
  • 최신 스냅샷을 사용하여 대상 내에 새 rootfs를 만듭니다.
  • $target/rootfs/etc/fstab, .../etc/crypttab 등 필요한 파일을 적절히 수정하세요.
  • 부팅 파티션을 마운트하고 최신 부팅 파일을 복사합니다.
  • chroot사용자 환경에서 GRUB 부트 로더를 업데이트하십시오 .

이제 대상 디스크(백업 디스크)는 명령을 사용하지 않고 현재 시스템의 정확한 복사본입니다 dd. 필요에 따라 대상 디스크에 다른 파티션을 생성할 수 있으며 이로 인해 이 백업 프로세스가 중단되지 않습니다.

관련 정보