我試圖識別與特定文件綁定的塊並向它們寫入零。我已經發現了幾種方法做到這一點到磁盤上的可用空間,但到目前爲止,我還沒有發現任何下滑做的建議如下:將零寫入文件塊
- 識別塊文件
- 寫入零到那些塊。
這是針對虛擬化系統的目的。該系統可以重複數據塊被識別爲相同。這用於減少驅動器上客戶操作系統使用的空間。
當前這是通過使用dd
將零寫入驅動器的可用空間來完成的。然而,這對VMWare系統有副作用,導致來賓操作系統驅動器使用它已經被分配的整個磁盤空間,這是從所有字節被寫入的系統上的那個點開始的。
我試圖識別與特定文件綁定的塊並向它們寫入零。我已經發現了幾種方法做到這一點到磁盤上的可用空間,但到目前爲止,我還沒有發現任何下滑做的建議如下:將零寫入文件塊
這是針對虛擬化系統的目的。該系統可以重複數據塊被識別爲相同。這用於減少驅動器上客戶操作系統使用的空間。
當前這是通過使用dd
將零寫入驅動器的可用空間來完成的。然而,這對VMWare系統有副作用,導致來賓操作系統驅動器使用它已經被分配的整個磁盤空間,這是從所有字節被寫入的系統上的那個點開始的。
編寫能夠安全修改卸載文件系統的代碼需要付出極大的努力。除非沒有其他選擇,否則應予以避免。
你基本上有兩種選擇,使容易修改文件系統:
這樣,您可以使用(來賓或主機)操作系統的文件系統代碼,而不必自行滾動。 :-)如果您可以使用這些選項中的一個,下面列出的代碼片段將填充用零文件:
import os
def overwrite(f):
"""Overwrite a file with zeroes.
Arguments:
f -- name of the file
"""
stat = os.stat(f)
with open(f, 'r+') as of:
of.write('\0' * stat.st_size)
of.flush()
這看起來正是我所需要的。 – Drahkar
我不知道 - 這看起來可怕的低級別的給我;不像Python這樣的高級語言看起來適合什麼。如果本機Python允許對硬件進行這種訪問,我會非常驚訝。 –
帶上你的潛水裝備並潛入深海C. –
我擔心這最終會成爲共識。是否有人可以爲此發佈最終答案,以便我可以接受並解決問題? – Drahkar