對於閃存來說,用 1 填充而不是 0 填充“更好”嗎?

對於閃存來說,用 1 填充而不是 0 填充“更好”嗎?

當我備份驅動器時,我喜歡壓縮圖像,所以我首先用所有相同的值填充它,這樣可用空間幾乎為零:

cat /dev/zero > ~/zeros
sync
rm ~/zeros

對於機械/磁性驅動器,這只是在每位操作中將 0 寫入所有可用空間,但對於 SD 卡或 SSD 等固態/閃存設備,寫入 0 實際上需要每位操作兩次:

  • 批次擦除,一次將整個區塊設定為全 1
  • 單獨寫入,將所選位元恢復為 0

因此,透過用 1 而不是 0 填充固態/快閃記憶體設備就像這個答案描述如何做,我是否可以透過避免寫入過程的第二步來加快該過程或延長設備的使用壽命?

答案1

這感覺像是 XY 問題 - 正確答案是這可能根本不重要,但稍後再做是有意義的。

大多數 SSD 都會出於磨損均衡的目的對資料進行加密或加擾,因此我懷疑您可能所做的就是使驅動器磨損得更快一些。 SD卡,我不確定。在寫入很少的情況下將它們用作引導驅動器的情況很少見。

如果它是一個相對較小的備份,我實際上懷疑“智能”方法是映像,然後安裝映像上的稀疏空間並將其歸零然後壓縮看起來很聰明。您使用相對較快的存儲,最大限度地減少閃存存儲上的重寫,並且您正在讀取整個驅動器並從未壓縮的圖像開始。首先成像然後歸零然後壓縮可減少磨損。

如果我沒記錯的話,它也值得考慮,noobs 無論如何都可以在 fat32 驅動器上使用磁碟映像,如果是這樣,您可以只安裝 SSD,然後複製裡面有磁碟映像並在那裡執行這些操作。然後根據需要替換磁碟映像。或者只是複製驅動器的內容並“根據需要”壓縮它,然後用新驅動器替換舊驅動器的內容。

答案2

@亞倫D

您是否想問擦除可用空間是否更適合使用 0 或 1 的
模式,因為使用和重新填充的區塊會更少?

將 0 視為已使用的空 1,透過該邏輯將有助於延長或縮短 SSD 驅動器的使用壽命。第二個邏輯是將區塊折疊到不被使用,而不是擁有已刪除或已刪除項目的可用空間,資料仍然使用空間和更多區塊,具有更多寫入,這使得降級更快

你沒有明白為什麼 Ramhound 不理解你的問題。

這符合你的邏輯,透過擦除可用空間並創建並透過管道將其輸出

貓 > ~/零

透過刪除已使用的區塊來建立寫入仍然是在該磁碟機上寫入,這意味著壞主意,但無論是否有助於獲得較小的備份映像,邏輯都不好,這是一個好主意。此過程將有助於建立較小的壓縮備份映像,但您會在此過程中殺死磁碟機。

透過在同一磁碟機上傳輸輸出檔案並清除可用空間,您將在同一磁碟機 b/c 上使用 > 建立一個大文件,該文件仍在向磁碟機寫入數據,即使它是可用空間。對驅動器的寫入就是一次寫入,而且是一次大量寫入。

我認為你問了一個有意義的問題,這意味著你問的邏輯是有道理的,但它是錯誤的,並且 100% 適得其反,並可能使你的驅動器磨損速度加快 10 倍。

讓驅動器有可用空間,但透過使用檔案大小較大的檔案建立寫入,寫入就是寫入,因此即使我明白了整個邏輯,仍然認為擁有最小的備份映像會有所幫助確實如此,擦除可用空間所產生的寫入量甚至比備份映像中的可用空間所產生的寫入量要多得多,即使是一遍又一遍地執行此操作,透過寫入無聲量的可用空間,然後建立一個檔案寫入磁碟機的整個可用空間仍然會產生大量寫入,其中可用空間僅使用少量空間。驅動器會因為寫入檔案而變得更糟。擦除會清除文件,即寫入文件。

相關內容