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/」にあるスナップアプリケーションを参照するループデバイス用のマウントポイントのセットです。これが関連しているかどうかはわかりません。
修正する
おそらく、2つのファイルシステムのマウント方法のためですか?バックアップイメージは読み取り専用でマウントされますが、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ディレクトリは含まれていません。不要でバックアップから削除されました。
柔軟