システムバックアップ
関連記事
例えば /etc
, /home
, /root
, /var
, サーバーの場合は /srv
に保存されているシステムとユーザーのデータを定期的にバックアップすることが重要です。
目次
Btrfs のスナップショットを利用する
こちらを参照 Btrfs#スナップショット, システムバックアップ#スナップショットと/bootパーティション, それと Snapper
LVM のスナップショットを利用する
こちらを参照 LVM#スナップショット, LVM によるルートファイルシステムのスナップショット作成, それと システムバックアップ#スナップショットと/bootパーティション
rsync を利用する
こちらを参照 rsync によるフルシステムバックアップ
tar を利用する
こちらを参照 Tar によるフルシステムバックアップ
SquashFS を利用する
起動可能なバックアップ
起動可能なバックアップをとっておくと、ファイルシステムが壊れたり、アップデートでシステムが壊れたりしたときに便利です。バックアップは、testing レポを有効にして、アップデートのテストベッドとして使うこともできます。システムを別のパーティションやドライブに移して起動したい場合、バックアップの /etc/fstab
とブートローダの設定ファイルを更新するのと同じくらい簡単な手順で行えます。
このセクションでは、システムを別のドライブやパーティションにバックアップしたこと、現在のブートローダが問題なく動作していること、そしてバックアップからも起動したいことを前提に説明します。
fstab の更新
再起動せずに、バックアップの fstab を編集し、既存のエントリをコメントアウトまたは削除します。この例のように、バックアップを含むパーティションに1つのエントリを追加します。
/dev/sdaX / ext4 defaults 0 1
適切なデバイス名とファイルシステムタイプを使用することを忘れないでください。
ブートローダの設定ファイルを更新する
Syslinux の場合、別のドライブやパーティションを指定する以外は、現在のエントリを複製するだけです。
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
を再編集して、以前削除したパーティションとマウントポイントを追加することができます。
Snapshots and /boot partition
If your file system supports snapshots (e.g., LVM or Btrfs), these will most likely exclude the /boot
partition or ESP.
You can copy the boot partition automatically on a kernel update to your root
partition with a pacman hook (make sure the hook file is owned by 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