
我有一個 4GB USB 驅動器,我iso
向其中寫入了一個檔案。現在我想刪除上面的資料。有什麼辦法可以拿回空間嗎?
我用Linux燒錄了以下iso
文件這些說明。
當時,我以為這就像使用 Pendrive Linux 寫入檔案一樣,iso
如果我想恢復儲存空間,我可以格式化 USB 磁碟,但我錯了。這就像將iso
檔案燒錄到 CD/DVD 上一樣,表示資料已燒錄但無法刪除,現在我已經遺失了 3GB 的儲存空間。
如何將隨身碟還原為普通儲存裝置?
答案1
「刻錄」一詞不適用於 USB 快閃記憶體。即使有些人在寫入 ISO 映像時仍然稱其為“燒錄”,那根本不重要。USB 記憶棒的記憶體儲存 ISO 映像內容的方式與儲存常規檔案的方式完全相同 - 也就是說,它們可以被擦除或用其他內容覆蓋。
這裡唯一的差別是 ISO 映像是寫入的在上面作業系統將使用分割區和檔案系統資訊來決定有多少可用空間。因此,作業系統現在看到的是 ISO 映像中的分割區,而不是覆蓋整個快閃記憶體的 4 GB 分割區,即 Linux 的約 1 GB 分割區和 3 GB 的「未使用」空間。
在 Linux 上,您可以使用任何分割工具(例如圖形化工具)格帕特)只是擦除所有現有分區並建立完整大小的分區再次,然後照常使用 FAT32 格式化該分割區。
不幸的是,Windows 喜歡區分可移動磁碟和 USB 記憶棒,但仍然可以使用以下命令擦除分割區資訊:dd
對於 Windows`,Windows 之後只會要求「格式化」USB 記憶棒。該命令將刪除第一個兆字節,這實際上應該足以使作業系統認為整個磁碟未分割。
dd.exe --filter=可移動 if=/dev/zero of=\\?\Device\Harddisk?\Partition0 bs=1M count=1
當然,dd.exe --list
首先運行,並替換Harddisk?
為您的 USB 記憶棒的確切名稱。 (小心不要擦除系統磁碟的分割表,儘管--filter=removable
應該可以防止這種情況發生。)
答案2
之所以如此,是因為它不是檢測 USB 隨身碟,而是將其偵測為具有多個分割區的 USB 硬碟。
整個 USB 將是 /dev/sdb
分割區會類似 /dev/sdb1 /dev/sdb2 /dev/sdb3 等等......
所以你需要刪除整個分割區並建立單一分割區。
執行以下操作:-
sudo fdisk /dev/sdb
現在按 d 刪除分割區
Command (m for help):d
刪除所有分割區。
現在,您可以透過 fdisk 或任何其他實用程式建立新分割區,而不會出現任何錯誤,因為分割區已被刪除。
答案3
當您使用 dd 將 ISO 映像寫入 USB 隨身碟時,您會覆寫裝置上的一些內容,包括分割區表。通常可以使用簡單的分割區程式對它們進行重新分割區,但您應該確保分割區程式檢查實際磁碟的大小,而不是像某些分割區程式那樣相信分割區表。在某些情況下,執行此操作可能有些複雜。
在我看來,避免這種複雜性的最簡單方法是完全擦除 USB 隨身碟的分割區:
dd if=/dev/zero of=/dev/sd[letter] bs=1M count=1
警告:仔細檢查[letter]
上面的部分是否是您要重新格式化的實際 USB 隨身碟的磁碟機的磁碟機代號。在電腦的主儲存裝置上執行此操作,然後您將要遺失資料。
完成此操作後,您可以在隨身碟上重新建立分割區並重新格式化它們。您的分區程式可能會抱怨閃存驅動器上沒有分區表;這是正常的(dd
您剛剛運行的命令已擦除它),您應該忽略它。