システムバックアップ

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

例えば /etc, /home, /root, /var, サーバーの場合は /srv に保存されているシステムとユーザーのデータを定期的にバックアップすることが重要です。

Btrfs のスナップショットを利用する

こちらを参照 Btrfs#スナップショット, システムバックアップ#スナップショットと/bootパーティション, それと Snapper

LVM のスナップショットを利用する

こちらを参照 LVM#スナップショット, LVM によるルートファイルシステムのスナップショット作成, それと システムバックアップ#スナップショットと/bootパーティション

rsync を利用する

こちらを参照 rsync によるフルシステムバックアップ

tar を利用する

こちらを参照 Tar によるフルシステムバックアップ

SquashFS を利用する

See SquashFS によるフルシステムバックアップ

ノート: SquashFS は アクセス制御リスト をサポートしていません。

起動可能なバックアップ

起動可能なバックアップをとっておくと、ファイルシステムが壊れたり、アップデートでシステムが壊れたりしたときに便利です。バックアップは、testing レポを有効にして、アップデートのテストベッドとして使うこともできます。システムを別のパーティションやドライブに移して起動したい場合、バックアップの /etc/fstab とブートローダの設定ファイルを更新するのと同じくらい簡単な手順で行えます。

このセクションでは、システムを別のドライブやパーティションにバックアップしたこと、現在のブートローダが問題なく動作していること、そしてバックアップからも起動したいことを前提に説明します。

fstab の更新

再起動せずに、バックアップの fstab を編集し、既存のエントリをコメントアウトまたは削除します。この例のように、バックアップを含むパーティションに1つのエントリを追加します。

/dev/sdaX    /             ext4      defaults                 0   1

適切なデバイス名とファイルシステムタイプを使用することを忘れないでください。

ブートローダの設定ファイルを更新する

Syslinux の場合、別のドライブやパーティションを指定する以外は、現在のエントリを複製するだけです。

ヒント: syslinux.cfg を編集する代わりに、起動中に一時的にメニューを編集することもできます。メニューが表示されたら Tab キーを押して、関連するエントリを変更します。パーティションは 1 から、ドライブは 0 から数えます

GRUB では、メイン設定ファイルの再生成 を行うことが推奨されます。 全ての GRUB ファイルを /boot 以外の場所、例えば /mnt/newroot/boot に新たにインストールしたい場合は、--boot-directory フラグを使ってください。

また、/boot/grub/grub.cfgに新しいメニューエントリがあることを確認します。UUID が新しいパーティションと一致していることを確認してください。そうしないと、古いシステムがまだ起動する可能性があります。パーティションの UUID を lsblk で見つけてください。

$ lsblk -no NAME,UUID /dev/sdXY

ここで /dev/sdXY は目的のパーティションです (例:/dev/sdb3) GRUB がブートできると考えているパーティションの UUID をリストアップするには、grep を使ってください。

# grep UUID= /boot/grub/grub.cfg

最初の起動

コンピュータを再起動し、ブートローダで右のエントリを選択します。これで初めてシステムがロードされます。全ての周辺機器が検出され、/ 内の空のフォルダにデータが入るはずです。

これで /etc/fstab を再編集して、以前削除したパーティションとマウントポイントを追加することができます。

スナップショットと/bootパーティション

お使いの ファイルシステム がスナップショットをサポートしている場合(例えばLVMBtrfs)、ほとんどの場合 /boot パーティションか ESP は除外されるでしょう。

カーネルアップデートでブートパーティションを自動的にあなたの root パーティションにコピーするには pacman フック を使います(フックファイルのオーナーが root であることを確認してください)

/etc/pacman.d/hooks/50-bootbackup.hook
[Trigger]
Operation = Upgrade
Operation = Install
Operation = Remove
Type = Path
Target = usr/lib/modules/*/vmlinuz

[Action]
Depends = rsync
Description = Backing up /boot...
When = PostTransaction
Exec = /usr/bin/rsync -a --delete /boot /.bootbackup