FreeBSD 10.1 を実行している x86_64 マシンで、ファイルを untar すると、tar 内のすべてのファイルに対して以下のエラーが発生します。
x var/lib/nfs/statd/sm.bak/: Can't set user=1002/group=1002 for var/lib/nfs/statd/sm.bak
x var/lib/nfs/rmtab: Can't set user=1002/group=1002 for var/lib/nfs/rmtab
x var/lib/nfs/v4recovery/: Can't set user=1002/group=1002 for var/lib/nfs/v4recovery
x var/lib/logrotate.status: Can't set user=1002/group=1002 for var/lib/logrotate.status
x var/lib/arpd/: Can't set user=1002/group=1002 for var/lib/arpd
x var/lib/postfix/: Can't set user=1002/group=1002 for var/lib/postfix
x var/lib/systemd/: Can't set user=1002/group=1002 for var/lib/systemd
tar: Error exit delayed from previous errors.
上記のエラーは、mfdosfs パーティションでファイルを解凍した場合にのみ発生します。以下のコマンドを使用してパーティションをフォーマットし、msdosfs をマウントしています。
newfs_msdos -F 32 -S 4096 -c 1 -m 0xf8 /dev/da0p7
mount -t msdosfs -o large /dev/da0p7 /data/raw
次のようにマウントすることも試しました:
mount -t msdosfs -o large,uid=1002,gid=2002 /dev/da0p7 /data/raw
しかし、結果は同じでした。Tar ボールは、このマシンをデュアル ブートしたい Linux ディストリビューションなので、クリーンな unr-tar を探しています。上記の問題の修正方法を提案してくれる人はいますか?
編集 13/04/17: ファイル システムの違いにより、上記の動作が発生しているようです。上記のエラーが発生するだけでなく、シンボリック リンクを維持できないため、FAT32 パーティションから Linux を起動できません。この問題全体に有効な解決策があるかどうか疑問に思っています。
答え1
msdosfs/NTFS/FAT
ファイルシステムは Linux/UNIX の所有権と権限属性をサポートしていません。
サポートされているファイル システムでパーティションをフォーマットするか、サポートされているファイル システムでイメージ ファイルを作成してファイルを保持する必要があります。
答え2
次のようにして、ファイルをホーム ディレクトリに解凍します。
tar -C /home/satpul -xzvf filename.txz
ユーザー名が satpul で、圧縮オプションが zip だったと仮定します。次の操作を実行します。
mv -vRf /home/satpul/extracted_files_dir/* /some/new/directory/on/samba/share