btrfs ルートファイルシステムのスナップショット (/ のスナップショット) を作成するにはどうすればよいでしょうか?

btrfs ルートファイルシステムのスナップショット (/ のスナップショット) を作成するにはどうすればよいでしょうか?

私は Fedora 20 を使用していますが、インストール時にファイル システムとして btrfs を選択しました。理由はいろいろありますが、主にスナップショットを利用できるようにするためです。

しかし、 のスナップショットを作成できないようです/。ホーム フォルダー (これも btrfs) のスナップショットをこのように作成できますが、書き込みによってbtrfs subvolume snapshot /home/ /snap/homeスナップショットを作成しようとすると、と出力されるだけです。/btrfs subvolume snapshot / /snapERROR: incorrect snapshot name ('/')

/ は btrfs であると確信しています。 gparted

サブボリュームの出力を一覧表示する:

# btrfs subvolume list /
ID 256 gen 9562 top level 5 path home
ID 258 gen 9562 top level 5 path root
ID 306 gen 9517 top level 258 path snap/home/2014-08-15_00:44:00

btrfs を使用している場合でも、ルート フォルダーのスナップショットを作成することはできませんか?

答え1

/snap の下にスナップショットの名前を指定する必要があります。例:

$ btrfs subvolume snapshot / /snap/root

名前を指定しない場合、btrfs はソース サブボリュームの名前を使用します。この場合、ソース サブボリュームが呼び出されますが、/これはスナップショットの有効な名前ではありません。

usage: btrfs subvolume snapshot [-r] <source> <dest>|[<dest>/]<name>

    btrfs subvolume snapshot [-r] [-i <qgroupid>] <source> <dest>|[<dest>/]<name>

    Create a snapshot of the subvolume
    Create a writable/readonly snapshot of the subvolume <source> with
    the name <name> in the <dest> directory.  If only <dest> is given,
    the subvolume will be named the basename of <source>.

    -r             create a readonly snapshot
    -i <qgroupid>  add the newly created snapshot to a qgroup. This
                   option can be given multiple times.

答え2

ルートシステムを保存したい場合は、これを実行することをお勧めします

mkdir /. snapshots
btrfs subvolume snapshot / /.snapshots/24072018
nano /.snapshots/24072018/etc/fstab

UUID=XXXXXXXX     /    btrfs    defaults, subvol=root/.snapshots/24072018  0      1

最近の Fedora では、システムを btrfs でフォーマットして root というサブボリュームを作成するのが一般的です。そのため、fstab で subvol オプションが見つからない場合は、subvol から root を省略します。

次のステップはシステムを再起動します。システムが起動すると、GRUB ブート メニューが表示されます。

  • デフォルトのエントリでeを押します
  • Fedora がサブボリュームにインストールされている場合は、subvol オプションが見つかるまで下にスクロールします。見つからない場合は、rootflags オプションを見つけて、次のように記述する必要があります。

    • rootflags=subvol=.snapshots/24072018

      または、システムがサブボリュームにインストールされている場合:

    • rootflags=subvol=root/.snapshots/24072018

システムがサブボリュームにインストールされていない場合は、GRUB エントリに rootflags オプションが表示される可能性は低いため、これを機能させるには、rootflags パラメータを "ro" パラメータの横に記述する必要があります。

システムが正常に起動したら、ターミナルを開き、root アカウントにログインし、変更を永続的にしたい場合は grub 構成を更新します。

関連情報