如何将 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:例如/dev/sdc,但如果它是驻留在另一个文件系统上的文件,则不能。

因此,这个问题仍然悬而未决。

相关内容