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

 

Ubuntu で、xfsdump/xfsrestoreを用いてXFSファイルシステムの内容を別ドライブへ論理的にコピーする。実行にはコピー元のアンマウント、コピー先XFSフォーマット、コピー先マウントが必須である。必要に応じてxfs_adminでコピー先UUIDを変更する。xfsprogsパッケージを使用する。

xfs ファイルシステムのドライブ/パーティション間での内容のコピーは物理的なブロック単位のコピー(例: dd)と異なり、ファイルシステム内のファイル/ディレクトリ構造を論理的にコピーし、その構造(ファイル、属性など)を維持して別XFSファイルシステムへ移行する方法である。

Ubuntu環境での手順例

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

前提条件と準備

安全かつ正確にファイルシステムの内容をコピーするためには、以下の準備が必要である。

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

xfsdumpxfsrestorexfs_adminなどのXFSツールを利用するために、以下のxfsprogsパッケージをインストールする。

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

コピーの実行

準備が完了し、コピー元がアンマウントされ、コピー先がマウントされた状態で、以下のコマンドを実行してコピーを開始する。

xfsdump -J - /path/to/source | xfsrestore -J -p 60 /path/to/destination

上記のコマンドは、xfsdumpでコピー元ファイルシステムの内容を標準出力にダンプし、パイプ(|)経由でxfsrestoreへ渡しコピー先のファイルシステムにリストアする。各要素の説明は以下の通りである。

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

/etc/fstab等でファイルシステムがUUID参照されている場合、コピー元UUIDに合わせる必要がある場合がある。OSドライブ交換時等に有用な手順である。

重要な注意: UUID一致させた元と先を同時接続すると、重複によりシステム問題を起こす可能性があるため、通常は元ドライブ取り外し後に使用するべきである。

手順は以下の通りである。

注意点