`sudo cp -a`は所有権をrootに変更します(元のユーザーを維持する代わりに)。

`sudo cp -a`は所有権をrootに変更します(元のユーザーを維持する代わりに)。

sudo cp -av他のディレクトリは、その属性を維持しながら、いくつかのディレクトリとルートによって作成されたいくつかのコピーをバックアップしようとします。これは既知の問題ですか、それとも何か抜けましたか?

ソース(ext4)は、以前に外部で使用されていたUbuntuシステムディスクです。ディレクトリ構造はそのまま残りますが、起動用ではなく保存用にのみ使用されます。ユーザー名/グループ名とuid/gidは、以前のシステムと同じです。

4.1.2 btrfs-progsを使用してNTFSでターゲット(btrfs)をフォーマットします。

$ sudo cp -av /mnt/src/home/user/thecakeisalie/ /mnt/dest/subvol/

drwx------ 6 user user 4096 Jul 18 09:11 /mnt/src/home/user/thecakeisalie/
drwx------ 3 root root 4096 Jul 18 20:36 /mnt/dest/subvol/thecakeisalie/

  File: ‘/mnt/src/home/user/thecakeisalie/’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 812h/2066d  Inode: 9044504     Links: 6
Access: (0700/drwx------)  Uid: ( 1000/user)   Gid: ( 1000/user)
Access: 2015-07-18 20:21:08.725414953 -0700
Modify: 2015-07-18 09:11:06.873427304 -0700
Change: 2015-07-18 20:08:34.161737231 -0700
 Birth: -

  File: ‘/mnt/dest/subvol/thecakeisalie/’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 805h/2053d  Inode: 660098      Links: 3
Access: (0700/drwx------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-07-18 20:36:23.909377491 -0700
Modify: 2015-07-18 20:36:09.729089386 -0700
Change: 2015-07-18 20:36:09.729089386 -0700
 Birth: -

別のディレクトリをテストすると、/mnt/src/home/user/thecakeisalie/出力に正確に一致する期待される動作が生成されます。ls -lstat

今日の午後に「うまく動作する」いくつかのディレクトリが作成されましたが、ドライブを外部で使用する前に触れていないディレクトリをテストしましたが、その一部も問題ありませんでした。

バックアップ後にchown問題ないほどすべて編集しましたが、原因が何なのか本当に気になります。 Googleをたくさん検索しましたが、正しい検索フレーズを使用していないか、これはよく知られています。

以下のmjturnerに一理があって内部システムディスク(ext4)にあるcp -aディレクトリでコマンドを試みました~/Downloadが、結果が同じだったのでbtrfs問題ではないようです。

先週、古いノートパソコンを復元しましたが、状況は似ていました。 Ubuntu 13.10にアップグレードするには、別の新しいパーティションにUbuntu 15.04をインストールする必要があり、起動後に以前のsudo cp -aシステムで家全体を完了しました。 13.10は2人のユーザー(alpha、bravo)に設定され、15.04は1人のユーザー(alpha)に設定されました。 Bravoのエントリには最終的にGID / UID(もちろん)が表示されますが、アルファは以前と同じように見え、機能します。 (古いアルファと新しいアルファのGID / UIDが同じであることを確認する必要があります。)

現在のシステムに関する追加情報uname:
Linux 3.19.0-22-generic #22-Ubuntu SMP Tue Jun 16 17:14:22 UTC 2015 i686

ソースドライブを大規模にクリーンアップしてから(システムディレクトリを削除し、デフォルトのストレージディレクトリをルートに移動)、もう一度テストします。

その間、ソースとターゲットの違いをテストするために使用できる他のコマンドはありますか?どれだけ低いレベルに掘り下げるべきかは重要ではありません(どうせCを再び勉強したいのですが)。

答え1

cp -a300 GB以上のデータをコピーしていて、他の端末でターゲットを確認してから中断したことに言及するのを忘れていました。

Gilesのコメントのおかげで、ディレクトリでのみ発生するかどうかテストを開始しました。以下のテストに示すように、デフォルトではすべてのファイルがルートディレクトリに書き込まれ、コピーが完了すると以前のプロパティがファイル/ディレクトリに適用されます。

TEST_1:3GBフォルダとCTRL-Cの間sudo cp -a:現在のファイルは切り捨てられ、ディレクトリと同様にルートとして残ります。

home/Download# ls -l
total 20
drwx------ 3 root      root       4096 Jul 19 15:11 ./
drwxr-xr-x 3 user user 12288 Jul 19 15:11 ../
drwx------ 2 root      root       4096 Jul 19 15:11 thecakeisalie/

home/Download# cd thecakeisalie/; ls -l
total 16164
drwx------ 2 root      root         4096 Jul 19 15:11 ./
drwx------ 3 root      root         4096 Jul 19 15:11 ../
-rw------- 1 user user 2109623 May 19  2013 file1
-rw------- 1 user user 2520465 May 19  2013 file2
-rw------- 1 root root 393216  Jul 19 15:11 file3

TEST_2:sudo cp -a完了を許可:

home/Download# ls -l
total 20
drwx------ 3 user user  4096 Jul 19 15:11 ./
drwxr-xr-x 3 user user 12288 Jul 19 15:11 ../
drwx------ 2 user user  4096 Jul 19 15:11 thecakeisalie/

home/Download# cd thecakeisalie/; ls -l
total 16164
drwx------ 3 user user  4096 Jul 19 15:11 ./
drwxr-xr-x 3 user user 12288 Jul 19 15:11 ../
-rw------- 1 user user 2109623 May 19  2013 file1
(...)
-rw------- 1 user user 2520465 May 19  2013 last_file

答え2

私が見るには奇妙に見えます。あなたが説明する内容は確かにいいえ既知の問題です。私はcp -aこのプログラムを広く使用していました(完全なLinuxシステムの複製を含む)、問題が発生した唯一のケースはXFSのバグ(以降は修正済み)が原因でした。

私の考えでは、btrfsこれがまだ広範囲に開発中のバグのようです。再現できますか?同じソースディレクトリをターゲットファイルシステムの新しい場所にコピーし、権限が保持されていることを確認できます。再現できれば、バグレポートの提出

関連情報