建立 BTRFS 檔案系統時發生錯誤

建立 BTRFS 檔案系統時發生錯誤

我正在嘗試使用btrfs檔案系統安裝 Arch Linux。我正處於安裝過程的開始準備我的驅動器,但遇到了問題。

首先,我開始使用以下命令清除先前安裝嘗試中的所有 GTP 和 MBR 記錄:

gdisk /dev/sda

然後我使用命令進入專家模式x,然後使用z刪除 GTP 和/或 MBR。

然後,我fdisk使用磁碟機上的整個空間(即 119GB)建立一個新分割區。

建立分割區並寫入分割區後,我嘗試使用以下命令建立檔案系統:

mkfs.btrfs /dev/sda1

但我收到一個錯誤:

/dev/sda1 appears to contain an existing filesystem (btrfs)

怎麼會這樣呢?我所做的只是創建了一個分割區,那麼 btrfs 怎麼可能已經作為檔案系統類型存在呢?

答案1

當您建立分割區時,它包含以前存在的任何內容。例如,如果您刪除包含檔案系統的分割區並在完全相同的位置重新建立分割區,而沒有寫入其間的空間,那麼您將獲得先前存在的完整檔案系統。如果新分區與舊分區的起始位置相同但更大,則可以繼續使用檔案系統或(如果檔案系統支援)擴展它以填充額外的空間。如果新分割區較小,您可以繼續使用檔案系統 - 但在刪除舊分割區之前,您需要將其縮小到新分割區大小。

因此,這裡有一個檔案系統,或者可能只是檔案系統的開始,是在同一位置啟動的分區留下的。許多版本mkfs拒絕覆蓋看似現有的檔案系統,因為這通常表示您指定了錯誤的分區,並且錯誤可能是災難性的。如果你想覆蓋現有的檔案系統,你需要先擦除它的一部分,足以使其無法識別。 Linux 附帶了wipefs這樣做的實用程式。

wipefs /dev/sda1

在分區開頭將足夠的位元組(例如幾兆位元組)清除往往會產生相同的效果。

答案2

使用 dd 我們可以擦除分區表。我記得 dd 取得了成功,而 gdisk 的零功能卻失敗了。 (確保您已備份資料)。

# dd if=/dev/zero of=/dev/sda bs=512 count=1024

相關內容