シンボリックリンクを壊さずにchrootを再同期する方法は?

シンボリックリンクを壊さずにchrootを再同期する方法は?

chrootの外部でchroot環境をrsync(バックアップ)したいと思います。これを行うには、まずchrootボリュームのlvmスナップショットを作成してからrsyncを実行します。

このアプローチの唯一の問題は、chroot内の絶対シンボリックリンクが外部のchrootシステムを指し、これはもちろん一致しないことです。安全でないコピーリンクを使用しようとしているため、リンクの確認が正しくありません。デフォルトのルートではなくディレクトリのシンボリックリンクを解決するためにrsyncを取得する方法はありますか、それともこの問題を解決する他の方法はありますか?

答え1

rsync を実行する前に、絶対シンボリックリンクを相対シンボリックリンクに置き換えることができます。

答え2

すべての絶対シンボリックリンクを相対絶対シンボルに変更するのは良い解決策です。複雑で非効率的な解決策がない場合は、そうするオプションがsshfsあります。--transform_symlinks

ssh現在の実行では、別々の構成で別々のサーバーまたはユーザーを設定し、sshd次の組み合わせを使用する必要があります。

Subsystem sftp internal-sftp

そして

ChrootDirectory /path/to/jail

これで--copy-unsafe-linkシンボリックリンクの保存や省スペースに興味がない場合は、刑務所内でrsync chrootを実行できます(静的リンクをrsyncそこにコピーしてnscdバンドルのインストール /var/run/nscd/var/run/nscd/dev同期から両方とrsyncバイナリを除外します(バインドインストールおよび/またはprocそれを使用する必要があるかもしれません--one-file-system)。

関連情報