「SquashFS によるフルシステムバックアップ」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(== Overview ==を追加(英語版より))
(前文の情報を更新)
4行目: 4行目:
 
{{Related|tar によるフルシステムバックアップ}}
 
{{Related|tar によるフルシステムバックアップ}}
 
{{Related articles end}}
 
{{Related articles end}}
[[Wikipedia:ja:SquashFS|SquashFS]] [http://squashfs.sourceforge.net/] は完全なシステムの読み取り専用のバックアップアーカイブを高圧縮で作成します。SquashFS カイブは解凍しなくてもウンして find/grep/cp/tree を実行ので便利です。tar と比べてバックアップにかかる時間は少なくファイルの取得・検索のオーバーヘッドも減りまが、アーカイブに一度してしうと後から変更できないという欠点があり
+
ファイルシステム全体圧縮バックアップアーカイブを [[ファイルシステム#Read-only ファイルシステム|SquashFS]] フォーマトで作成すことがきます。ランダムアクセスが可能なため、バックアップや取り出し比較的時間がかかりませんが、追記以外の改変はできません
  +
  +
{| class="wikitable"
  +
|-
  +
! デバイスファイル
  +
! 説明
  +
|-
  +
| /dev/sdB
  +
| バッアップドライブ
  +
|-
  +
| /dev/sdL
  +
| ライブメディア
  +
|-
  +
| /dev/sdSRC
  +
| バックアップするドライブ
  +
|}
  +
  +
{{Warning|SquashFS は [[アクセス制御リスト]] をサポートしていません[https://www.kernel.org/doc/html/latest/filesystems/squashfs.html#todo-list]}}
   
 
== Overview ==
 
== Overview ==

2022年2月17日 (木) 02:52時点における版

関連記事

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

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

Overview

It's possible to make compressed read-only backup archives of whole filesystems in the SquashFS format. It is convenient since you can mount it and find/grep/cp/tree in it without decompressing the whole archive. Backup and retrieval may take less time compared to tar, but modifying an existing archive is impossible.


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