XFSログを別のドライブに保存するにはどうすればよいですか?

XFSログを別のドライブに保存するにはどうすればよいですか?

小さくても高速なSSDに大容量のハードドライブのログを入れてみてください。

$ sudo mkfs.xfs -N -l logdev=/mnt/data-journal/journal /dev/sdc
unable to get size of the log subvolume.
$ sudo mkfs.xfs -N -l logdev=/mnt/data-journal/journal,size=100m /dev/sdc
size 100m specified for log subvolume is too large, maximum is 0 blocks
$ sudo mkfs.xfs -N -l logdev=/mnt/data-journal/journal,size=0b /dev/sdc
Invalid value 0b for -l size option. Value is too small.

太字の部分は実際に壊れた瞬間です。

  • これはUbuntu 22.04 LTSの新設です。
  • mkfs.xfsバージョン 5.13.0

編集する:

ソースからv6.2.0をコンパイルしてインストールしましたxfsprogs。エラーがまだ存在します。また、これが関連しているかどうかはわかりませんが、大きなドライブには4Kセクタがあり、小さなドライブには512セクタがあります。 (この数字を信じてください。)

編集2:

そのエラーを克服した後に生成されたファイルシステムをマウントするときに別のエラーが発生しました。

/mnt/data: the kernel does not recognize /dev/sdb1 as a block device; maybe "modprobe driver" is necessary.

答え1

結局、この解決策は愚かであることが判明しました!

  1. このファイルは事前に割り当てる必要があります。

truncate -s 100m /mnt/data-journal/journal

ソースコードを見るとヒントが出ましたmkfs.xfs。ファイルまたはデバイスを開き、ファイルioctl記述子を使用して呼び出しを実行しますBLKGETSIZE。そして私は…ちょっと待って。はい真新しいLinuxの場合、この種のことは私には全く明確ではありません。

(もちろん、他の問題があったので、何らかの理由でインストールできませんでしたが、少なくともそれを作成しました。)


編集:伝説は続きます!

ファイルを事前に割り当てると、このエラーを克服できました。しかし、今はファイルシステムをマウントできません。

私が受け取ったエラーは次のとおりです。 /mnt/data: the kernel does not recognize /dev/sdb1 as a block device; maybe "modprobe driver" is necessary.

実験後、ログがデバイスの場合はFS:exampleをマウントできますが、/dev/sdc他のファイルシステムにあるファイルの場合はマウントできません。

したがって、問題は引き続き開かれています。

関連情報