[Linux] tar 出現 File shrank, padding with zeros 的訊息?
今天同事回報一個問題,說用 tar 壓縮檔案的時候一直出現錯誤:
largefile.txt tar: largefile.txt: File shrank by 219627381 bytes; padding with zeros
嗯… 真是超級詭異的問題…
查了一下,大部分人說是檔案可能是所謂的 sparse file (稀疏檔案),
就是檔案很大,但因為裡面有很多零值,
因此檔案系統會作一些處理,讓實際上檔案只需佔磁碟很小的空間…
(參考資料:Wikipedia: sparse file)
不過試做了一下 sparse file 再用 tar 去壓它,卻不能重現那個錯誤訊息…
正不知如何處理的時候,同事們討論起出問題的那台 VM 所在的 ESXi 上,
有另外一台 VM 也出現過類似的問題,那時看 dmesg 有許多的錯誤…
於是去看了一下這台 VM 的 dmesg,果真也有一堆 Hardware Error:
Info fld=0x2e32a27d sd 2:0:0:0: [sda] Add. Sense: No defect spare location available sd 2:0:0:0: [sda] CDB: Read(10): 28 00 03 0d 40 30 00 00 08 00 sd 2:0:0:0: [sda] Unhandled sense code sd 2:0:0:0: [sda] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE sd 2:0:0:0: [sda] Sense Key : Hardware Error [current] Info fld=0x2e32a27d sd 2:0:0:0: [sda] Add. Sense: No defect spare location available sd 2:0:0:0: [sda] CDB: Read(10): 28 00 03 0d 40 30 00 00 08 00 sd 2:0:0:0: [sda] Unhandled sense code sd 2:0:0:0: [sda] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE sd 2:0:0:0: [sda] Sense Key : Hardware Error [current] Info fld=0x2e32a27d sd 2:0:0:0: [sda] Add. Sense: No defect spare location available sd 2:0:0:0: [sda] CDB: Read(10): 28 00 03 0d 40 30 00 00 08 00 sd 2:0:0:0: [sda] Unhandled sense code sd 2:0:0:0: [sda] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE sd 2:0:0:0: [sda] Sense Key : Hardware Error [current] Info fld=0x2e32a27d sd 2:0:0:0: [sda] Add. Sense: No defect spare location available sd 2:0:0:0: [sda] CDB: Read(10): 28 00 03 0d 40 30 00 00 08 00
目前看起來是 ESXi 上的硬碟可能出了問題 (壞軌?)…
不過這個問題挺有趣的,從一開始的 tar 錯誤訊息要導到去看 dmesg,
真的是要靠經驗累積才能想到,像我一直去查 tar 也是沒路用的呀…
(本頁面已被瀏覽過 5,086 次)