Raspberry Pi에서 실행되는 Ubuntu 22.04 운영 체제의 rsync 백업을 만들었습니다. SD 카드와 동일한 파티션 및 형식의 이미지 파일로 백업합니다. 나중에 백업 이미지 파일을 마운트하고 SD 카드도 제거하고 마운트했습니다.
백업 이미지에 루트 파티션 마운트됨 /media/writable
SD 카드에 루트 파티션 마운트됨/media/writable1
파일 디렉터리를 나열하면 일부 파일이 있지만 소스 SD 카드에는 없는 것을 볼 수 있습니다.
[flex@flex-inspiron7520 ~]$ ls -l /media/writable/snap/core20/1437/etc/default
total 28
-rw-r--r-- 1 root root 460 Feb 4 2020 cryptdisks
-rw-r--r-- 1 root root 297 Sep 30 2019 dbus
-rw-r--r-- 1 root root 15 Mar 29 20:47 locale
-rw-r--r-- 1 root root 1756 Apr 14 2020 nss
-rw-r--r-- 1 root root 133 Dec 2 22:38 ssh
-rw-r--r-- 1 root root 35 Mar 29 20:47 swapfile
-rw-r--r-- 1 root root 1118 Feb 7 2020 useradd
[flex@flex-inspiron7520 ~]$ ls -l /media/writable1/snap/core20/1437/etc/default
ls: cannot access '/media/writable1/snap/core20/1437/etc/default': No such file or directory
rsync 명령을 테스트 실행했는데 누락된 파일을 소스(백업 이미지)에서 대상(SD 카드)으로 복사한다는 메시지가 표시되었습니다.
[flex@flex-inspiron7520 ~]$ sudo rsync -nrlpgoDv /media/writable/snap/core20/1437/etc/default /media/writable1/
sending incremental file list
default/
default/cryptdisks
default/dbus
default/locale
default/nss
default/ssh
default/swapfile
default/useradd
sent 205 bytes received 41 bytes 492.00 bytes/sec
total size is 3,814 speedup is 15.50 (DRY RUN)
그런데, 해당 카드의 백업과 비교하여 대상 SD 카드에서 파일이 누락된 이유는 SD 카드가 Pi에 연결되고 OS가 실행 중일 때 파일이 거기에 있기 때문입니다... 이들은 스냅샷 응용 프로그램입니다. /에 설치됨 운영 체제가 실행 중일 때만 스냅합니다.
하지만 그건 내 문제가 아니야!
내 질문
이 rsync 명령을 실행하면 소스(백업 이미지)에서 대상(SD 카드)으로 복사되도록 예약된 파일에 대한 출력이 제공됩니다.
sudo rsync -nrlpgoDv /media/writable /media/writable1/
전송할 파일이 너무 많습니다. 이것은 처음 몇 줄에 불과합니다...
writable/var/lib/dpkg/info/python3.10-minimal.list
writable/var/lib/dpkg/info/python3.10-minimal.md5sums
writable/var/lib/dpkg/info/python3.10-minimal.postinst
writable/var/lib/dpkg/info/python3.10-minimal.postrm
writable/var/lib/dpkg/info/python3.10-minimal.preinst
writable/var/lib/dpkg/info/python3.10-minimal.prerm
writable/var/lib/dpkg/info/python3.10.list
writable/var/lib/dpkg/info/python3.10.md5sums
.
..
....
.....
writable/snap/
그런데... 출력에... 줄이 없나요? 이 rsync 명령이 위와 동일한 파일을 나열하지 않는 이유는 무엇 /media/writable/snap/core20/1437/etc/default
입니까 /media/writable1/snap/core20/1437/etc/default
?
분명히 "/snap" 디렉토리는 "/var/lib/snapd/"에 있는 스냅 애플리케이션을 참조하는 루프 장치용 마운트 지점 세트입니다. 이것이 관련이 있는지 잘 모르겠습니다.
고쳐 쓰다
어쩌면 두 파일 시스템의 마운트 방식 때문일까요? 백업 이미지는 읽기 전용으로 마운트되지만 SD 카드는 읽기-쓰기로 마운트됩니까? 하지만 내 rsync 명령은 백업 이미지에서 복사를 시도하므로 관련이 없을 수도 있습니다.
[flex@flex 1437]$ mount | grep writable
/dev/loop0p2 on /media/writable type ext4 (ro,nosuid,nodev,relatime,errors=remount-ro,uhelper=udisks2)
/dev/sdb2 on /media/writable1 type ext4 (rw,nosuid,nodev,relatime,errors=remount-ro,uhelper=udisks2)
어떤 도움이라도 대단히 감사하겠습니다.
유연한
답변1
전혀 특이한 일이 일어나지 않은 것으로 밝혀졌습니다.
rsync 출력을 보기 위해 KDE Konsole 창(파일 > 다른 이름으로 출력 저장)에서 Rsync 명령의 출력을 텍스트 파일에 저장했지만 터미널은 버퍼에 특정 수의 출력 라인만 유지하는 것 같습니다. rsync 명령을 다음으로 변경했습니다.
sudo rsync -nrlpgoDivv --log-file=/home/flex/scripts/rsynclog.log /mnt/src_root /media/writable1/
rootfs/snap/...
이제 rsync가 누락된 파일/폴더의 내용을 원본 에서 대상으로 복사하려고 한다는 것을 알 수 있습니다 . 이 명령은 소스 파일 시스템이 읽기 전용으로 마운트되었는지, 읽기-쓰기로 마운트되었는지에 관계없이 동일한 결과를 제공합니다.
상관없어 이제 난 이렇게 될 테니까/snap 디렉터리는 포함되지 않습니다.필요하지 않아 백업에서 제거되었습니다.
유연한