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

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎ライブ環境でバックアップ: ライブメディアの準備を翻訳して追加)
(→‎リストア (解凍): バックアップを翻訳して追加)
64行目: 64行目:
 
{{Note|SquashFS ファイルシステムを作成するには、[https://archlinux.org/download/ official Arch Linux installation image] に含まれている{{Pkg|squashfs-tools}} が必要です。}}
 
{{Note|SquashFS ファイルシステムを作成するには、[https://archlinux.org/download/ official Arch Linux installation image] に含まれている{{Pkg|squashfs-tools}} が必要です。}}
   
== リスト (解凍) ==
+
== バックップ ==
   
  +
[[インストールガイド#ライブ環境の起動]]
{{Warning|以下のスクリプトは未確認です。まだ使わないでください。}}
 
   
  +
{{Tip|バックアップドライブとライブメディアの両方に十分な USB ポートがない場合。
{{bc|1=
 
  +
# ライブメディアを起動する
#!/bin/bash
 
  +
# ブートローダーのメニューが表示されたら、'e' を押します。
  +
# [[カーネルパラメータ]] に [https://gitlab.archlinux.org/archlinux/archiso/-/blob/d5102724fbacb8f980db346e0caa8b5a85d9edb6/docs/README.bootparams#L26 copytoram] を追加する。
  +
# {{ic|# udisksctl power-off -b /dev/sdL}} を実行します。(必要 [[Archiso#Prepare a custom profile|archiso releng]] 、 {{Pkg|udisks2}} 、 [[Archiso#Selecting packages|packages.x86_64]]])
  +
# ライブメディアの回転が止まったことを確認し、切断する。}}
   
  +
バックアップしたいファイルシステムをマウントします。(例:/dev/sdSRC を /mnt に)
# Path to extract files
 
target=/mnt
 
   
  +
{{bc|# fsck /dev/sdSRC
# Path to backup SquashFS archive file
 
  +
# mount -o ro /dev/sdSRC /mnt}} を実行します。
archive=/somewhere/backup.sfs
 
   
  +
バックアップ ([https://github.com/Un1Gfn/archiso/blob/master/mksquashfs.sh サンプルスクリプト])
unsquashfs -stat $archive
 
  +
unsquashfs -force -dest $target $archive
 
  +
{{Warning|1=<nowiki/>
  +
* バックアップドライブのデータはすべて失われます。
  +
* 不正なデバイスファイルを指定した場合、マシン上の全データが失われる可能性があります。
 
}}
 
}}
   
  +
{{bc|# mksquashfs /mnt /dev/sdB \
{{Note|リストア後にシステムを起動可能にするには:
 
  +
-not-reproducible \
  +
-xattrs \
  +
-wildcards \
  +
-noappend \
  +
-progress \
  +
-mem 5G \
  +
-e \
  +
var/cache/pacman/pkg \
  +
var/lib/pacman/sync \
  +
var/log/journal \
  +
boot/efi \
  +
boot/grub \
  +
boot/initramfs-linux"*".img \
  +
boot/vmlinuz-linux}}
   
  +
;; -not-reproducible:バックアップ速度を若干上げる
# fstab を修正
 
  +
;; -noappend:上書き
# arch-chroot
 
  +
;; -mem:mksquashfsに RAM を付与
## {{ic|mkinitcpio -p linux}}
 
  +
;; -e:除外するディレクトリ/ファイルのリスト
## {{ic|grub-install}}
 
## {{ic|grub-mkconfig}}
 
}}
 
   
 
== リストア (マウントとコピー) ==
 
== リストア (マウントとコピー) ==

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

関連記事

ファイルシステム全体の圧縮バックアップアーカイブを 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 を使用します。

ライブメディアの準備

インストールガイド#インストールメディアの準備 または archiso を /dev/sdL にインストールします。

ノート: SquashFS ファイルシステムを作成するには、official Arch Linux installation image に含まれているsquashfs-tools が必要です。

バックアップ

インストールガイド#ライブ環境の起動

ヒント: バックアップドライブとライブメディアの両方に十分な USB ポートがない場合。
  1. ライブメディアを起動する
  2. ブートローダーのメニューが表示されたら、'e' を押します。
  3. カーネルパラメータcopytoram を追加する。
  4. # udisksctl power-off -b /dev/sdL を実行します。(必要 archiso relengudisks2packages.x86_64])
  5. ライブメディアの回転が止まったことを確認し、切断する。

バックアップしたいファイルシステムをマウントします。(例:/dev/sdSRC を /mnt に)

# fsck /dev/sdSRC
# mount -o ro /dev/sdSRC /mnt

を実行します。

バックアップ (サンプルスクリプト)

警告:
  • バックアップドライブのデータはすべて失われます。
  • 不正なデバイスファイルを指定した場合、マシン上の全データが失われる可能性があります。
# mksquashfs /mnt /dev/sdB \
  -not-reproducible \
  -xattrs \
  -wildcards \
  -noappend \
  -progress \
  -mem 5G \
  -e \
    var/cache/pacman/pkg \
    var/lib/pacman/sync \
    var/log/journal \
    boot/efi \
    boot/grub \
    boot/initramfs-linux"*".img \
    boot/vmlinuz-linux
-not-reproducible
バックアップ速度を若干上げる
-noappend
上書き
-mem
mksquashfsに RAM を付与
-e
除外するディレクトリ/ファイルのリスト

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

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