Bash
檢查假快閃記憶體驅動器並將它們設置為真實大小
我有幾百個“假”快閃記憶體驅動器;你會在網上商店看到的那種,帶有錯誤/有問題的大小,比如“1TB”或“1ZB”……
我怎麼知道他們是“假的”?他們基本上會在某個時間點後停止文件傳輸,在那裡他們基本上會失敗,並且發生傳輸的作業系統通常會顯示錯誤。
現在我確實設法檢查了這種快閃記憶體驅動器的實際大小,並將它們設置為它們的實際大小,不久前(幾年前,所以我不記得確切的過程),但我這樣做了:
- 填充快閃記憶體驅動器直到出現錯誤,並在出現錯誤時記下/列印所述數據的實際/確切大小(因為它會指示所述快閃記憶體驅動器的實際大小)。
- 通過使用將快閃記憶體驅動器“格式化”為實際大小
dd
。我已經部分了解如何做第一部分。問題出現在第二部分,我不完全確定它是如何完成的,儘管我確實記得那時,當我這樣做時,我曾經
dd
寫過一個我創建的空圖像文件,它具有確切的真實大小的快閃記憶體驅動器,並dd
與它一起使用。有些人可能會認為/爭辯說,“它沒用”或“努力大於結果”,如果我只有其中的一兩個,這可能是正確的,但考慮到我總能找到這些快閃記憶體驅動器的用途,即使如果不實用(由於數量),並不意味著它沒用。
這也是可能的,因為我設法做到了一次,雖然我忘記了它……(其他人可能設法做類似的事情,雖然我沒有在 linux 上找到任何這樣的例子)
我沒有關於這些的任何數據,我也不關心它們是否會損壞(考慮到我擁有的數量),但我仍然希望將它們設置為它們的實際大小,如前所述。
我基本上想用 、 和其他一些 Posix 實用程序來完成所有這些
bash
工作dd
。
為此,您可以使用工具f3。它是H2testw (德語)的 linux 埠。
F3 包含在大多數主要發行版中,例如 debian、ubuntu 和 fedora
編輯:您無法在不更改韌體的情況下修復棒/卡/任何東西的大小,這不是一項簡單的任務。但是 f3 提供了 f3fix 命令,它創建了一個具有實際大小的分區,因此您不會意外“過度使用”數據。
- 使用
dd
(badblocks
在具有測試模式的讀寫模式下可能是更好的選擇)擦除它們並寫下實際大小。- 使用 fdisk/gdisk/sfdisk/cfdisk/whatever 創建一個正確使用的分區。它們中的大多數都可以輕鬆實現自動化——可能是最簡單的一種
sfdisk /dev/device < partition_table_file
。