Ubuntu で xfs ファイルシステム間でのドライブコピー

Ubuntu で、xfsdumpxfsrestoreを用いてXFSファイルシステムの内容を別のドライブへ論理的にコピーする。xfsdumpはマウント済みのファイルシステムを対象とするため、コピー元とコピー先の両方をマウントした状態で実行する。コピー先はあらかじめmkfs.xfsでフォーマットする。必要に応じてxfs_adminでコピー先のUUIDを変更する。xfsdumpパッケージとxfsprogsパッケージを使用する。

この方法は、ddのような物理的なブロック単位のコピーとは異なる。ファイルやディレクトリの構造、および拡張属性を保ったまま、別のXFSファイルシステムへ内容をコピーする論理コピーである。パーティションテーブルやブートローダーはコピーされない。

Ubuntu環境での手順例

以下の手順は、Ubuntu 24.04 LTS 環境での実行を想定している。

必要なパッケージのインストール

xfsdumpxfsrestorexfsdumpパッケージに、mkfs.xfsxfs_adminxfs_repairxfsprogsパッケージに含まれる。端末で次のコマンドを実行してインストールする。

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install xfsprogs xfsdump

前提条件と準備

コピーの実行

コピー元とコピー先がマウントされた状態で、次のコマンドを実行する。

sudo sh -c 'xfsdump -J - /path/to/source | xfsrestore -J -p 60 - /path/to/destination'

xfsdumpがコピー元の内容を標準出力へ書き出し、パイプ(|)経由でxfsrestoreがコピー先へ書き戻す。各要素の説明は次の通りである。

オプション: コピー先ファイルシステムのUUIDを変更する

/etc/fstabでファイルシステムをUUIDで指定している場合、コピー先のUUIDをコピー元と同じ値にすると、/etc/fstabを書き換えずに起動できる。OSドライブの交換時に使う手順である。

UUIDが同じファイルシステムを同時に接続すると、どちらがマウントされるか定まらない。UUIDを一致させたときは、コピー元のドライブを取り外してからコピー先を使用する。

手順は次の通りである。/dev/sda1をコピー元、/dev/sdb1をコピー先とする。

注意点