2014-03-13 39 views
0

我一直在玩着BTRFS在我躺着的幾個驅動器上玩。起初,我使用整個驅動器創建了BTRFS,但最終我決定要在驅動器上使用GPT分區,並在分區上重新創建所需的文件系統。 (這是因爲我可以使用每個驅動器的一部分作爲Linux交換空間,FYI。)如何擺脫設備重用後BTRFS中的「缺少某些設備」?

當我完成這一切後,BTRFS工作了一段時間。但是我有惱人的消息,說我有一些我之前實驗過的舊文件系統,我實際上已經加入了這個系統。我擔心這意味着BTRFS對驅動器上可用的空間感到困惑,或者可能發生某種腐敗。

的消息是這樣的:

$ sudo btrfs file show 
Label: 'x' uuid: 06fa59c9-f7f6-4b73-81a4-943329516aee 
    Total devices 3 FS bytes used 159.20GB 
    devid 3 size 931.00GB used 134.01GB path /dev/sde 
    *** Some devices missing 

Label: 'root' uuid: 5f63d01d-3fde-455c-bc1c-1b9946e9aad0 
    Total devices 4 FS bytes used 1.13GB 
    devid 4 size 931.51GB used 1.03GB path /dev/sdd 
    devid 3 size 931.51GB used 2.00GB path /dev/sdc 
    devid 2 size 931.51GB used 1.03GB path /dev/sdb 
    *** Some devices missing 

Label: 'root' uuid: e86ff074-d4ac-4508-b287-4099400d0fcf 
    Total devices 5 FS bytes used 740.93GB 
    devid 4 size 911.00GB used 293.03GB path /dev/sdd1 
    devid 5 size 931.51GB used 314.00GB path /dev/sde1 
    devid 3 size 911.00GB used 293.00GB path /dev/sdc1 
    devid 2 size 911.00GB used 293.03GB path /dev/sdb1 
    devid 1 size 911.00GB used 293.00GB path /dev/sda1 

正如你所看到的,我有一箇舊的文件系統標記爲「X」和舊的標記「根」,以及這兩種具有「一些設備丟失」 。真正的文件系統,顯示的最後一個,是我現在使用的那個。

那麼我該如何清理舊的「某些設備丟失」文件系統?我有點擔心,但主要是強迫症,並想整理這混亂的輸出。

謝謝。

回答

0

我其實已經明白了這一點。也許它會幫助別人。

我在代碼中查看了一下發生了什麼。當使用btrfs filesystem show命令顯示所有設備上的所有文件系統時,它會掃描/proc/partitions中的每個設備和分區。檢查每個設備和每個分區,以查看是否存在位於從設備或分區開始的偏移量0x10040處發現的BTRFS「幻數」和相關聯的有效根數據結構。

然後,我在我自己的情況下顯示錯誤的磁盤上使用了hexedit,並確信在我之前的實驗中存在BTRFS幻數(這是ASCII字符串_BHRfS_M)。

我只是通過用「**」覆蓋字符串的幾個字符來釘住這個魔法數字,同樣使用hexedit,並且錯誤的條目奇蹟般地消失了!

+1

這聽起來像「一些設備丟失」可以忽略,那麼 – Geremia

+0

的確不錯,但誰找到這樣的事情煩人或不能放鬆自己的強迫症足夠多的人要讓它去能做什麼,我。 (因爲我覺得這樣的事很煩人,不能放鬆自己的強迫症)。 –