在運行 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