[Linux] tar 出現 File shrank, padding with zeros 的訊息?

[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 也是沒路用的呀…

 

(本頁面已被瀏覽過 983 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料