web-dev-qa-db-ja.com

「ファイル名が長すぎます」エラーを与えるrsync

rsyncを使用して、ファイルシステムのアーカイブコピーを作成しようとしています。ほとんどのファイルは正常にコピーされています。ただし、一部のファイルは、次のようなエラーでコピーに失敗します。

rsync: recv_generator: failed to stat "/offsite/secure/backup/equality/image/home/.ecryptfs/richw/.Private/ECRYPTFS_FNEK_ENCRYPTED.FWZCrxWC57ny9UTn1cFNZL5w.27.bkB806NyASyVhlkjDSj8409CPYuh4U--/ECRYPTFS_FNEK_ENCRYPTED.FWZCrxWC57ny9UTn1cFNZL5w.27.bkB806NyN3crxC.r7IEshHGdDkRwJU--/ECRYPTFS_FNEK_ENCRYPTED.FZZCrxWC57ny9UTn1cFNZL5w.27.bkB806NyAT1fljq1oLjEFLY7WuGBIKEQb0Lw-70GL..7i70mP89OnSy2Lg88XZ-s5bs2ugEt16Xwqzd.SS1Gn-sditaJ6k--": File name too long (36)

この問題を回避するためにできることはありますか?

ソースコンピューターは、Ubuntu 16.04.4 LTS(GNU/Linux 4.4.0-122-generic x86_64)とZFSソースファイルシステムを実行しています。

移行先コンピューターは、ext4の上にecryptfsファイルシステムを備えたUbuntu 18.04 LTS(GNU/Linux 4.15.0-23-generic x86_64)を実行しています。

6
Rich Wales

nix StackExchange で説明したように、ext4システムの最大ファイル名は255文字です。宛先のeCryptfsファイルシステムで暗号化されたファイル名を有効にしているため、eCryptfsはext4ファイルシステムの最上位にあるレイヤー化されたファイルシステムであるため、すべてのファイル名パス要素は、暗号化された後、255文字未満でなければなりません。同様に、暗号化されたファイル名のフルパスは4096文字未満でなければなりません。

ソースファイルの少なくとも1つに、この制限に違反するパスや名前が含まれているようです。

Rsyncが作業を完了できるようにするために、いくつかのオプションが思い浮かびます。

  1. ソースファイルシステムで、143文字より長いパス要素(または、おそらく2、3千文字よりも大きい合計パス)を持つすべてのファイルを検索し、それらよりも短い名前に変更します。 (暗号化されたファイル名のパディングのため、以前に参照されたUnix StackExchange投稿から143を抜いた)。これは、問題のファイルの名前を変更できるかどうかによって、システムで必要な機能を維持できるかどうかによって異なります。
  2. ECryptfsシステムでファイル名の暗号化をオフにします。もちろん、ファイル名の匿名性は失われますが、これは受け入れられる場合があります。
3
Taylor R