Fedora 25 にアップグレードする前にbtrfs subvolume snapshot / /f24
空き容量が少なすぎて更新に失敗しました。今問題はスナップショットを復元する方法です。 grub.cfg(settings)を編集してスナップショットから起動しましたrootflags=subvol=root/f24
。
この男ただ言ってください
btrfs subvolume delete root
。しかし、grub2が次のカーネルアップデートで誤ったgrub.cfgを再生成するかどうかはわかりません。似たような操作のようdelete root
ですね。rm -rf /
この男rsyncを使用して、スナップショットのデータをルートディレクトリにコピーします。効果があると確信していますが、これは2013年の答えであり、スナップショットを復元するより良い方法があると思います。
私は何度も「ただ使用する
mv
」ことを発見しました。一般的に...はそれほどうまくいきませんapt-btrfs-snapshot
。mv /f24 /
(そうであれば訂正してください。)
最後に復元したスナップショットのroot
名前を変更する必要がありますroot/f24
。以下はFSに関するいくつかの情報です。
$ btrfs subvolume list /
ID 257 gen 419417 top level 5 path root
ID 3231 gen 419430 top level 257 path root/f24
スナップショットから起動:
$ btrfs subvolume show /
/
Name: f24
UUID: b1782609-7d9f-4725-911d-428cda2256c7
Parent UUID: 8df6fae9-770a-4d55-a4bf-6a32edf1fbd7
Received UUID: -
Creation time: 2016-11-26 19:17:22 +0200
Subvolume ID: 3231
Generation: 419438
Gen at creation: 411444
Parent ID: 257
Top level ID: 257
Flags: -
Snapshot(s):
2016年にできる方法はありますか?
ベストアンサー1
現在のサブボリュームまたは所望のサブボリュームが「実際の」Btrfsルート(つまり、サブボリュームID 0)ではないという事実により、状況はやや単純化されます。
まず、(一時的に)次のように実際のBtrfsルートをインストールします。
mkdir /mnt/btrfs-root
mount -o subvolid=0 /dev/somedevice /mnt/btrfs-root
これで、btrfs-root内でサブボリューム「root」とここで定義した他のサブボリュームを見ることができます。プレーンを使用して任意の方法で並べ替えることができますmv
。
cd /mnt/btrfs-top
mv -i root/f24 newroot
# Now at least you don't have one subvolume rooted inside another
# It's a little simpler to work with.
# Now just shuffle them as desired
mv -i root oldroot
mv -i newroot root
# ...and clean up
cd
umount /mnt/btrfs-top
rmdir /mnt/btrfs-top
次に、「root」というサブボリュームがマウントされると、新しいサブボリュームになります。
subvolidを介してルートファイルシステムをマウントしないように注意してください。 subvolid でマウントすると、上記のように名前を変更しても subvolid は変更されません。
デフォルトのサブvolidを使用してファイルシステムをマウントした場合は、デフォルトのサブvolidを新しいサブvolidに変更する必要があります。
btrfs subvolume set-default 3231 /
/etc/fstab
明示的なsubvolid仕様でインストールした場合は、変更して使用する必要が/etc/default/grub
ありますsubvolid=3231
。