ext4 到 btrfs 轉換:如果我在轉換過程中意外斷電,我會遺失資料嗎?

ext4 到 btrfs 轉換:如果我在轉換過程中意外斷電,我會遺失資料嗎?

我想將 3TB 80% 完整的 ext4 區塊裝置轉換為 btrfs,並且我想估計該過程中涉及的風險。

如果我在轉換過程中意外斷電,資料會遺失嗎?

根據我兩年的 btrfs 經驗,事實證明,該檔案系統在斷電事故期間僅具有中等安全性 - 如果連續斷電兩次或兩次以上,它會破壞我的一些資料。

答案1

資料遺失很可能是由於控制器對磁碟的寫入操作失敗,同時也有可能整個磁碟分割表被損壞。

如所說,事先進行備份,但轉換操作本身是這樣設計的,不會觸及原始資料。 Btrfs 製作原始 FS 版本的快照,並使用空閒區塊進行進一步操作。

如果您將在 100GB 分割區上建立新的 ext4 FS 並執行

#df -h
Filesystem                        Size  Used Avail Use% Mounted on
/dev/sda3                          99G   60M   94G   1% /ext4convert2btrfs

然後卸載並運行轉換:

#unmount /ext4convert2btrfs
#btrfs-convert /dev/sda3
creating btrfs metadata.
creating ext2fs image file.
cleaning up system chunk.
conversion complete.

然後再次mount run df,你會看到類似這樣的內容:

Filesystem                        Size  Used Avail Use% Mounted on
/dev/sda3                         100G  1.8G   66G   3% /ext4convert2btrfs

其餘空間由主 FS 快照使用。只有系統管理員才能決定何時可以安全地刪除快照並允許覆蓋原始資料。

若要恢復可用空間並使轉換永久化,請執行下列操作:

#cd /ext4convert2btrfs
#btrfs subvol delete ext2_saved
#btrfs balance start /ext4convert2btrfs
#df -h
Filesystem                        Size  Used Avail Use% Mounted on
/dev/sda3                         100G  544K   99G   1% /ext4convert2btrfs

就是這樣 :)

答案2

如果分區轉換期間斷電,您的資料可能會損壞。為此,始終建議在執行此類操作之前進行備份。

但是,Btrfs-convert 有一個-r用於恢復轉換的開關,因此您可以使用該開關,以防您deconvert必須取消它。我還發現一位用戶報告說,在此處的答案之一中恢復通常要快得多:https://askubuntu.com/questions/256652/ext4-to-btrfs-conversion-how-long-can-it-take-space-requirements

轉換速度相對較快,因此您不應期望運行它需要幾天的時間。我最近在 SSD 驅動器上轉換了約 20Gb 分區,只花了幾秒鐘。假設這 3TB 資料位於 HDD 中,則需要更長的時間。

相關內容