Filesystems

60.0 PB 的文件大小是錯誤的。刪除它會導致數據失去嗎?

  • July 2, 2012

在使用 備份一些數據(200 GB 主目錄)時rsync,我收到一個特定文件的 I/0 錯誤,之後rsync繼續“正常”地進行備份。問題源文件顯示為文件大小為 72 字節。

我取消了 rsync,並再次執行了相同的命令。這一次,同一個文件顯示正在傳輸數據……大量數據……還有更多數據,還有更多……我檢查了目標文件的大小,它高達 13 GB!所以我使用 Ctrl-c 取消rsync

再次檢查源文件大小時,在 Nautilus 中,它60.0 PB在 500 GB 驅動器上顯示大小為(Peta Bytes!)。

現在,這一切的要點:刪除這個文件會/可能會導致其他文件中的數據失去,看到文件系統可以感知到它比實際大得多……文件系統是ext4..

我可以用rsync異常跳過它,但我對如果它被刪除會發生什麼特別感興趣。

更新:目標和來源都是ext4

關於它是稀疏文件的建議:如果它是稀疏文件,為什麼它會從一分鐘到下一分鐘顯示不同的大小?該文件當時肯定(?)未使用。它是一個~/.macromedia/Flash_Player/#SharedObjects/someting-or-other.sol文件,其中該目錄中有更多這樣的*.sol*文件.. 加上它在第一遍時確實顯示了 I/0 錯誤。

此外,根據man rsync,建議的選項是有效-S地處理稀疏文件,而不是正確地,所以這向我表明,即使我沒有使用它,也應該在任何一種情況下準確地複制稀疏文件:它沒有,甚至如果它是一個稀疏文件,那麼 60.0 Peta Bytes 似乎肯定(?)在某個地方的文件系統中是一個錯誤……這是我主要關心的問題:如果文件系統中有一個故障,可以刪除那個文件對其他文件有影響嗎? -S

更具體地說:因為它寫入了 13 GB 的數據,而且還在攀升!當我取消它時,它是否也會在我刪除它時刪除 13 GB - 60 PB 的數據?

看起來源文件系統已損壞,通常是由於核心錯誤或 RAM 損壞(與損壞的數據相比,損壞的磁碟更可能導致文件無法讀取)。在這一點上,所有的賭注都關閉了。但是,如果損壞非常局部,則只有一個文件的 inode 損壞,而其他文件未損壞,因此您可以安全地刪除該文件。請注意,沒有辦法測試這個假設。

我的建議是:

  1. 進行 RAM 測試,或將磁碟插入另一台機器。
  2. 確保您已備份所有數據。
  3. 如果可能,請使用 SMART 檢查磁碟的執行狀況。
  4. 執行fsck
  5. 如果磁碟仍然很好,請繼續使用它。

引用自:https://unix.stackexchange.com/questions/42157