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

提供: ArchWiki
2019年10月3日 (木) 20:04時点におけるKusakata (トーク | 投稿記録)による版 (ページの作成:「Category:バックアップ en:Full system backup with SquashFS {{Related articles start}} {{Related|tar によるフルシステムバックアップ}} {{Related…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

SquashFS [1] は完全なシステムの読み取り専用のバックアップアーカイブを高圧縮で作成します。SquashFS アーカイブは解凍しなくてもマウントして find/grep/cp/tree を実行できるので便利です。tar と比べてバックアップにかかる時間は少なくファイルの取得・検索のオーバーヘッドも減りますが、アーカイブに一度してしまうと後から変更できないという欠点があります。

ライブ CD/DVD/USB の準備

SquashFS アーカイブを作成するには squashfs-tools がインストールされているライブ CD/DVD/USB を用意する必要があります。Archiso#ライブメディアの設定を読んで packages.x86_64 を設定して squashfs-tools がインストールされているライブ CD/DVD/USB を作成してください。

ライブ環境でバックアップ

ライブ CD/DVD/USB を起動してバックアップしたいファイルシステムをマウントしてください。

ノート: 以下は sdb1 が EFI パーティションで sdb2 がルートパーティションの EFI-grub による Arch 環境の例です。
# fsck /dev/sdb2
# fsck /dev/sdb1
# mount /dev/sdb2 /mnt
# mount /dev/sdb1 /mnt/boot/efi
# /somewhere/mksquashfs.sh SOURCE_DIRECTORY BACKUP_ARCHIVE_DIRECTORY

スクリプトの中身:

/somewhere/mksquashfs.sh
#!/usr/bin/env bash

# Sanity
if [ $# -ne 2 ]; then
  echo "invoke: mksquashfs.sh SOURCE_DIRECTORY BACKUP_ARCHIVE_DIRECTORY"
  exit 1
fi
echo -ne "\n\nHave you fsck'd? "
read

# Backup
mksquashfs \
  "$1" "$2/$(date +%Y%m%d_%a).sfs" \
  -comp gzip \
  -xattrs \
  -progress \
  -mem 5G \
  -wildcards \
  -e \
  boot/efi \
  boot/grub \
  boot/initramfs-linux"*".img

リストア (解凍)

警告: 以下のスクリプトは未確認です。まだ使わないでください。
#!/bin/bash

# Path to extract files
target=/mnt

# Path to backup SquashFS archive file
archive=/somewhere/backup.sfs

unsquashfs -stat $archive
unsquashfs -force -dest $target $archive
ノート: リストア後にシステムを起動可能にするには:
  1. fstab を修正
  2. arch-chroot
    1. mkinitcpio -p linux
    2. grub-install
    3. grub-mkconfig

リストア (マウントとコピー)

警告: 以下のスクリプトは未確認です。まだ使わないでください。
  1. mount somewhere/backup.sfs /mnt
  2. cp /mnt/somefile /somewhere/damaged-somefile