btrfsスナップショットを作成する方法は?


22

/ homeパーティションは物理ディスク全体で構成されています。btrfsとしてフォーマットされています。スナップショットを撮りたいです。特にサブボリュームの命名に関して混乱しています。

似たような質問があることは承知していますが、似たような質問はそれぞれ、私が尋ねているものとは異なる質問をしているようです(そして、それらはより古く、おそらくbtrfsの急速な発展を考えると時代遅れです)。たとえば、/ homeパーティションは別のボリュームであり、btrfsのmanページにはスナップショットを作成するための別のコマンドが表示されるため、この質問に対する回答は明らかに私の質問に対する回答ではありません。

別の同様の問題、固執しない
ネーミングの問題で私と同じくらい混乱している他の誰か

私の質問:

シンプルな開始:これは、ホームパーティションのシンプルなスナップショットを撮る正しいコマンドですか?

btrfs subvolume snapshot /home/@home /home/@home_snapshot_20120421

私は本当に勇敢になってテストしましたが、うまくいきません。エラーはerror accessing /home/@homeです。以下に示すように、@ homeがリストされます。

私は明らかにサブボリューム名で混乱しています。スナップショットの作成にそれらを使用する必要がありますか?いくつかの例では/home、ソースパラメータとして使用してホームのスナップショットを撮影していますが、ルートボリュームの例に基づいて、を使用する必要があるように思われます/home/@home

このコマンドは機能しますか?そうでない場合、なぜですか?

btrfs subvolume snapshot /home /home/@home_snapshot_20120421

ある@だけで命名規則は?それはまったく意味がありますか?

関連する可能性のある出力を次に示します。

btrfs subvolume list /home
ID 256 top level 5 path @home

それが何を意味するのか正確にはわかりません。試すbtrfs device scanとエラーが発生します(たとえば、デバイス/ dev / sda1をスキャンできません)。ファイルシステムにエラーはありません。すべて順調。

これが私のパーティションです。1つの応答に対して、/ homeだけが私のbtrfsパーティションではありません。

/dev/sda1: (boot partition) TYPE="ext2"  
/dev/sda2: (root partition) TYPE="btrfs"  
/dev/sdb1: (home partition) TYPE="btrfs"  
/dev/sdc1: (shared partition) TYPE="btrfs"  
/dev/sdc2: TYPE="swap"  

コミュニティはレポジトリについて決定します...
ワンゼロ

回答:


19

Ubuntu 12.04でホームパーティションのスナップショットを作成する正しいコマンドは何ですか?

ホームがbtrfsパーティション上にあり、/ homeとしてマウントされているという事実を考えると、正しいコマンドは次のとおりです。

sudo btrfs subvolume snapshot /home/ /home/<any_name_you_choose_for_the_snapshot>

私の結果は次のとおりです。

今日コマンドを実行する前に:

$ btrfs subvolume list /home  
ID 256 top level 5 path @home  
ID 257 top level 5 path @home/@snapshot_20120521_1936

コマンド:

$ sudo btrfs subvolume snapshot /home/ /home/@snapshot_20120611_1307  
Create a snapshot of '/home/' in '/home/@snapshot_20120611_1307'

今日コマンドを実行した後:

$ btrfs subvolume list /home  
ID 256 top level 5 path @home  
ID 257 top level 5 path @home/@snapshot_20120521_1936  
ID 258 top level 5 path @home/@snapshot_20120611_1307

この方法の唯一の問題は、/ homeをls(一覧表示)するとスナップショットが表示されることです。

UbuntuコミュニティWikiは、このソリューションで更新されました。ここにあります:

Ubuntuのレイアウトでスナップショットを操作する方法

Ubuntuレイアウトで/または/ homeのスナップショットを使用するには、btrfsファイルシステムを別の場所にマウントし、マウントされたサブボリュームではなくbtrfsツリーの上部から作業することが非常に便利です。<-それが解決策です。残念ながら、それは便利ではありません

sudo mount /dev/sdX# /mnt

スナップショットを作成するには、上記で使用したものと同じ構文を使用します。

sudo btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot

これにより、btrfsツリーの最上部にある@_snapshotという名前の@サブボリュームのスナップショットが作成されます。ツリーの最上部にあるため、マウントされたボリューム内のファイルをリストするときに表示されません。

スナップショットにロールバックするには、その名前をubuntuがマウントする名前に変更して再起動するだけです。名前を変更する方法は次のとおりです。

sudo mv /mnt/@ /mnt/@_badroot
sudo mv /mnt/@_snapshot /mnt/@

スナップショットを削除するには:

sudo btrfs subvolume delete /mnt/@_badroot

btrfsスナップショットはそれ自体がサブボリュームであり、自己完結型であり、古い@サブボリュームをこのように削除しても問題ありませんが、交換が必要です。

注:btrfs-toolsコマンドset-defaultは、Ubuntuのレイアウトを壊します。


あなたはそこにいますか?これで、スナップショットをマウントできるはずです。
ターボ

実際にはまだマウントしようとしませんでした。そして、apt-btrfs-snapshotパッケージに関するpsusiの答えを見ました。おもしろそうですね。
モニカチェリオのMountainX

ええ、3番目のポイントでも言及しました。申し訳ありませんが指摘しなければなりませんでした;)
ターボ

その場合、ソリューションを回答としてマークすることをお勧めします。
ターボ

ls / homeを実行したときに表示されるスナップショットに対する解決策があります。現在、情報を使用して回答を編集しています。
モニカチェリオのためのMountainX

11

まず最初に、

  • 表示しているサブボリュームの名前は、に@home示されているとおりbtrfs subvolume list /homeです。にマウントされてい/homeます。@homeはサブボリュームの名前であり、ID 256を持っているため、ほとんどの場合、/ homeのみがbtrfsとしてフォーマットされます。

  • @homeのスナップショットを作成するには、次を発行する必要があります。 sudo btrfs subvolume snapshot /home/ /home/@home_snapshot_20120421

  • サブボリュームには任意の名前を付けることができます。@は、インストール時のUbuntuの規則です。(apt-btrfs-snapshotルートサブボリュームを使用する場合、@btw という名前にする必要があります。)コミュニティWikiでは@、ルート@homeとして、またホームとして保持することを強くお勧めします。これは、ロールバックする場合に特に重要です。btrfsサブボリュームset-defaultを使用しないでください(構文は目的によって強調表示されません)。

  • 以下のためにbtrfs device scanあなたが使用する必要がありますsudo

  • 使用できるサブボリュームを削除するには sudo btrfs subvolume delete @home_snapshot_20120421

すべてのbtrfsコマンドは、あいまいでない限り省略できます。そのため、たとえば、sudo btrfs device scanに切り捨てることができます。sudo btrfs d ssudo btrfs dev sc

あなたの質問に答えたと思います。定期的なバックアップを取るためのツールがいくつかありますが、btrfs-snapshot-rotationはその一例です。それらはどれも本当に成熟していないか、十分な牽引力を得ていないため、注意して使用してください。つまり、バグが含まれている可能性があります。


エラーが表示されます:$ sudo btrfs subvolume snapshot @home home/@snapshot_20120611_1257 ERROR: error accessing '@home'
Monica CellioのMountainX

また、私はbtrfs device scanまだ成功していません。任意の変異体は、以下を含む使用はsudoエラー与え、「ERROR:デバイスをスキャンすることができない『とは/ dev / sdXに』」Xは、任意の有効な名前がなど、A1、B、ようです
MountainXモニカチェッリオのため

@OneZero:まだすべての答えはありませんが、Ubuntu 12.04でホームパーティションのスナップショットを作成する正しいコマンドを見つけ、その情報を以下の回答として提供しました。
Monica CellioのMountainX

それは確かに奇妙です。私はbtrfsパーティションで確認しましたが、btrfs sub snap @ /mnt/randomうまくいきました。その後、再び@がマウントされた/ mntにいました。混乱して申し訳ありません
ターボ

@turbo:あなたの答えはとても役に立ちました。助けようとして謝罪する必要はありません。Ubuntuのページでさえ明確ではありません。最終的にはすべて把握します。
モニカチェリオのためのMountainX

10

インストールapt-btrfs-snapshotパッケージを、およびそのサブコマンドを使用してlistsnapshotdeleteset-default

これは、下位レベルのbtrfsコマンドをラップするスクリプトです。最初にbtrfsルートファイルシステムをどこかにマウントすることで機能します。/@通常、としてマウントされるサブボリュームとは対照的に、実際のルートを意味し/ます。言い換えれば、あなたは実行する必要がありmount /dev/sda1 /mntますが、として表示されますサブボリューム表示できるように/mnt/@/mnt/@homeとあなたが作成した他のものを。そこからbtrfs subvolume snapshot /mnt/@home @snapshot-today/@home名前付きのスナップショットを作成できます/@snapshot-today。これを実行btrfs subvolume snapshot /home /home/@snapshot_todayと比較してください。代わりにスナップショットを子として作成する/@homeので、あなたls /homeとその実名がいつであるかが表示されます/@home/@snapshot-today

スナップショットのロールバックは、単なる名前変更操作ですmv /mnt/@home @backup ; mv /mnt/@snapshot-today @home。次回の起動時に、マウント/@homeインに進むと/home、スナップショットが見つかります。

マウントオプション(具体的にはsubvol =引数)の影響を受けるbtrfsの見方とカーネルの見方の違いに留意する必要があるため、頭を包むのは少し難しいです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.