IT

xcopyで「相手側のファイル システムはセキュリティ情報をサポートしていません。」が出る原因と対処法

xcopyで「相手側のファイル システムはセキュリティ情報をサポートしていません。」が出る原因と対処法

xcopyで「相手側のファイル システムはセキュリティ情報をサポートしていません。」が出る原因

xcopyで「相手側のファイル システムはセキュリティ情報をサポートしていません。」が出る原因は下記2つの条件が重なったことです。

1つ目は、コピー元のファイルシステムがNTFSでコピー先のファイルシステムがFAT/FAT32であることです。

XP以降のWindowsでは、標準のファイルシステムがNTFSというものになっています。
NTFSでは、旧来使用されていたFATとは異なり、アクセス制御リスト(ACL)という機能が備わっています。
ACLの機能はざっくりいうと「誰がそのファイルにアクセスできるかを設定できる」という機能です。

このエラーが出たとき、おそらくxcopyでWindowsのデータをUSBにバックアップしようとしているのではないかと思いますが、USBメモリの多くはWindowsだけでなくMacなどでの利用も想定して、FATかFAT32でフォーマットされています。
このACLというものはFAT/FAT32ではサポートされていないため、エラーが発生してしまうんですね。

2つ目はxcopyのオプションで /Oを設定していることです。
xcopyのオプション/Oはどういうものか、ヘルプによると、

/O ファイルの所有権と ACL 情報をコピーします。

ということで、/Oを付けると、ACLの情報をコピーしようとするわけです。

この2つの条件が重なると、ACL情報をもつNTFSから、ACL情報を持てないFAT/FAT32にACL情報をコピーしようとすることによりエラーが出てしまう、というわけですね。

対応方法1./Oオプションを外す

ではこのエラーが出た時の対応方法ですが、一番単純なのは、/Oオプションを外してしまうことです。
すると、ACL情報をコピーしなくなりますので、エラーが発生しなくなります。
ただし、当たり前ですがACL情報は保持されなくなります。

対応方法2.コピー先をNTFSでフォーマットする

どうしてもアクセス制御リストのコピーをする必要がある場合は、コピー先をNTFSでフォーマットしてあげます。すると、/Oオプションを付けていてもエラーが出ずにACL情報を保持したままコピーすることができます。
ただし、USBメモリをNTFSでフォーマットするとUSBメモリに保存されているデータは消え、それ以降Windowsでしか利用できなくなりますので、この方法はNTFSでフォーマットすることの意味をよくわかっている人のみ行ってください。