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

提供: ArchWiki
2022年2月17日 (木) 03:17時点におけるKgx (トーク | 投稿記録)による版 (→‎ライブ CD/DVD/USB の準備: バックアップドライブを準備するを翻訳して追加)
ナビゲーションに移動 検索に移動

関連記事

ファイルシステム全体の圧縮バックアップアーカイブを SquashFS フォーマットで作成することができます。ランダムアクセスが可能なため、バックアップや取り出しに比較的時間がかかりませんが、追記以外の改変はまだできません。

デバイスファイル 説明
/dev/sdB バッアップドライブ
/dev/sdL ライブメディア
/dev/sdSRC バックアップするドライブ
警告: SquashFS は アクセス制御リスト をサポートしていません[1]

長所と短所

長所:

  • パーティションなし、必要なサイズの推測なし。
  • SquashFS ほとんどのレスキューディスクでサポートされています。
  • ランダムアクセス で、プレーンな mount を使用する。
  • 重複ファイルはデフォルトで削除されます (no-duplicates フラグがオンでない限り。)

短所:

  • すべての ACL が失われます。
  • Windows 1 からアクセスできません。
  • 追加可能ですが、そこから除去することはできません。
  • 他の目的でディスクを使用するには、バックアップ 2 を破棄する必要があります。
ノート:
  1. squashfs-tools-ng は SquashFS イメージファイルをサポートしているかもしれませんが、Windows 自身はパーティションレスドライブを全くサポートしていません。
  2. swim ring が必要なときに lifebuoy掴まないでください ファイル共有とバックアップは別々のディスクにして下さい。適切なバックアップハードウェアを購入する

バックアップドライブを準備する

警告:
  • バックアップドライブ上のすべてのデータが失われます。
  • 誤ったデバイスファイルを指定すると、マシン上のすべてのデータが失われる可能性があります。
  1. すべてのパーティション /dev/sdBN を消去してから、パーティションテーブル /dev/sdBwipefs で消去します。
  2. すべてのライトキャッシュを同期する #sync
  3. パーティションテーブルの変更をOSに通知する #partprobe
  4. 不正なブロックをチェックする。
    • バックアップドライブが SSD の場合は、S.M.A.R.T. を使用します。
    • バックアップドライブが HDD の場合は、 badblocks を使用します。

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

ライブ 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