web-dev-qa-db-ja.com

スナップショットを削除するには、btrfsのデフォルトのサブボリュームを変更します

私はFedora26で snapper を使用してbtrfsシステムのスナップショットを作成しましたが、最初からやり直そうとしています(つまり、snapperとそれが行ったすべてのものを削除します)が、表示されたとおりに削除できないスナップショットが1つあります私のデフォルトのサブボリュームになります(なぜこれが行われたのか覚えていません。おそらくロールバックを試みました)。

# snapper delete 535
Deleting snapshot failed.
# btrfs subvolume get-default /
ID 1630 gen 112224 top level 275 path .snapshots/535/snapshot
# btrfs subvolume show /
/
    Name:                   root
    UUID:                   544f9215-4537-fe4b-b1b5-4da21d9abb9c
    Parent UUID:            -
    Received UUID:          -
    Creation time:          2017-07-19 21:28:42 +0100
    Subvolume ID:           257
    Generation:             112591
    Gen at creation:        8
    Parent ID:              5
    Top level ID:           5
    Flags:                  -
    Snapshot(s):

ここで質問していることが理にかなっているかどうかはわかりませんが、デフォルトのサブボリュームを、最初にシステムを上部にセットアップしたときに持っていた親(; master; root、正しいWordがわからない)ボリュームに戻したいと思います。 -デフォルトの変更前のファイルシステムのレベル、つまり/。

# btrfs subvolume list / -a -p -t
ID      gen     parent  top level       path
--      ---     ------  ---------       ----
257     112604  5       5               <FS_TREE>/root
258     112604  5       5               <FS_TREE>/home
263     112214  257     257             root/var/lib/machines
275     112593  257     257             root/.snapshots
276     112577  258     258             <FS_TREE>/home/.snapshots
1630    112224  275     275             <FS_TREE>/root/.snapshots/535/snapshot
1639    112604  257     257             root/var/log
1641    111548  257     257             root/mnt/virtualbox

これを実現するために、これらの1つに対してbtrfs subvolume set-defaultを実行できますか。/...の意味がよくわからないので、デフォルトをID 257のルートに変更する必要があると思っていたのですが、これで気が遠くなりました。

このスナップショット内のファイルは/内のファイルと比較して古くなっているため、スナップショットの内容で/を上書きすることは考えていません。

1
Jdog

BTRFSファイルシステムをマウントすると、マウントするサブボリュームを指定するかどうかを指定できます。

Btrfsファイルシステムにはデフォルトのサブボリュームがあります。これは最初はトップレベルのサブボリューム[IDは常に5]に設定されており、subvolまたはsubvolidオプションが指定されていない場合にマウントされます。 - https://btrfs.wiki.kernel.org/index.php/SysadminGuide#Snapshots

ファイルシステムをマウントするときにsubvolオプションを使用すると、デフォルトのサブボリュームをオーバーライドできます。

mount /dev/sda / -o subvol=root/.snapshots/535/snapshot

あなたの場合、ロールバックを実行したときにサブボリューム275がデフォルトになるように変更されました。

ロールバック[オプション] [番号]

2つの新しいスナップショットを作成し、デフォルトのサブボリュームを設定します。 デフォルトでは、システムはルートファイルシステムのデフォルトのサブボリュームから起動します。http://snapper.io/manpages/snapper.html

Snapperマップページがここで暗黙的に言っていることは、ルートファイルシステムのマウントポイントがサブボリュームをnot指定しないことを期待しているということです。そうしないと、ロールバックコマンドはsubvolオプションによって上書きされるため、効果がありません。

元のデフォルトのサブボリュームはトップレベル(ID 5)でした。確かにbtrfs subvolume set-defaultを使用して再びデフォルトにすることはできますが、おそらくそうすべきではありません。

535サブボリュームから起動している場合は、そのサブボリュームで時間の経過とともに膨大な数の変更が蓄積されている可能性があります。トップレベルのサブボリュームに戻すと、これらの変更の損失を意味します。変更がまだ存在し、別のサブボリュームにあることを考えると、ここではWordlossを大まかに使用しています。

3
Emmanuel Rosa