Fedora
BTRFS 中的回滾根快照
我只有1 個 BTRFS 分區,其中包含
/
和/home
.我已經通過以下命令對根文件系統進行了快照:
btrfs subvolume snapshot / /root/snapshots/test
現在我想恢復這個快照。我怎麼做 ?
當我啟動到救援介質並安裝時,我得到:
# mount -t btrfs /dev/sda3 /mnt # ls /mnt # bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
如您所見,從這裡看不到我的子卷。
但是當我這樣做時:
$ btrfs subvolume list / ID 256 gen 3794 top level 5 path fedora ID 264 gen 2296 top level 256 path root/snapshots/test
如何恢復此快照?
教程說我必須將子卷重命名為根。我怎麼做 ?
我已經嘗試編輯,
/etc/fstab
但它沒有效果。
你所擁有的是一個帶有兩個子卷的 BTRFS 文件系統:
fedora
- 這被設置為您的預設子卷,並且是您在未指定子卷的情況下掛載文件系統時看到的內容。前任。mount -t btrfs /dev/sda3 /mnt
root/snapshots/test
- 這是您創建的快照fedora
在 BTRFS 中確實沒有恢復快照這樣的事情。相反,您只需使用不同的子卷作為根文件系統進行引導。有幾種方法可以做到這一點。
重命名子卷
為此,您首先需要掛載頂級卷,該卷始終為 ID 5,在您的情況下,預設情況下不會掛載。之後,您可以進行正常的目錄重命名。
**注意:**這在您的情況下不起作用,因為您的作業系統配置為將預設子卷掛載為根文件系統,並且此過程不會更改預設子卷。
mount -t btrfs -o subvolid=5 /dev/sda3 /mnt cd /mnt mv fedora fedora-old mv fedora-old/root/snapshots/test fedora
更改預設子卷
通過更改預設子卷,在重新啟動時,您的系統將從新的預設子卷啟動。下面顯示的子卷 ID 264 來自您的範例
btrfs subvolume list /
btrfs subvolume set-default 264 /
更改引導載入程序中的根子卷
這如何完成取決於您的引導載入程序,但引導載入程序(例如 GRUB)通常包含一行配置,指定要掛載為根文件系統的文件系統。可以更改該配置以引導不同的子卷。不幸的是,我沒有一個例子可以展示。但要知道這不能完成,
/etc/fstab
因為該文件直到稍後才會被讀取。結論
對於您的具體情況,我認為您將通過更改預設子卷獲得最佳結果。