SquashFS によるフルシステムバックアップ
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 を起動してバックアップしたいファイルシステムをマウントしてください。
# 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
リストア (マウントとコピー)
mount somewhere/backup.sfs /mnt
cp /mnt/somefile /somewhere/damaged-somefile