背景
あるシステムでXFSファイルシステムイメージを作成し、そのイメージを別のシステムで使用するシステムがあります。現在、両方ともCentOS7(それぞれ7.9と7.8)を使用しています。これは安定して動作します。
しかし、CentOSを完全に取り除く努力の一環として、徐々にRHEL(および/またはAlma Linux)に移行しています。
移行期間中、「生産者」システムはRHELに移行されますが、「消費者」はまだ変更できません。
質問
CentOS7システムにXFSファイルシステム(RHEL9によって作成された)を無邪気にマウントしようとすると、次のエラーメッセージが表示されます。
root@localhost updateFs]# mount -o loop ./fs.img /tmp/fs2/
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
[root@localhost updateFs]# dmesg -H | tail -4
[May 5 14:25] XFS (loop0): Superblock has unknown read-only compatible features (0x4) enabled.
[ +0.010671] XFS (loop0): Attempted to mount read-only compatible filesystem read-write.
[ +0.000006] XFS (loop0): Filesystem can only be safely mounted read only.
[ +0.000580] XFS (loop0): SB validate failed with error -22.
読み取り専用でマウントしようとすると大丈夫です。しかし、書くことができるはずです。
ファイルシステムをより互換性のあるバージョンに「ダウングレード」するために両側でできることはありますか?
バージョン
システム | 分布 | コア | xfsprogs |
---|---|---|---|
発電機 | RHEL9.1 | 5.14.0-162.2.1-el9 | 5.14.2-1.el9.x86_64 |
消費者 | CentOS7.8 | 3.10.0-1127.el7 | 4.5.0-20.el7.x86_64 |
答え1
これは再リンク機能フラグであるように見え、これらのファイルシステムは、この(IMHO、非常に便利な)ファイルシステム機能よりも前のカーネルからのみ読み取り専用でマウントできることが合理的です。
ファイルシステムの作成時にこの機能を使用した後に無効にするツールはありません。新しいファイルシステムを作成し、古いファイルシステムの内容をコピーする必要があります。
mkfs.xfs -m reflink=0 -f yourfilesystemimage