在运行 FreeBSD 10.1 的 x86_64 机器上,当我解压文件时,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 ball 是 Linux 发行版,我希望这台机器能够进行双重启动,因此需要寻找干净的解皮工具。有人可以建议解决上述问题吗?
编辑 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