尝试将大硬盘驱动器的日志放在更小但更快的 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
最后发现这个解决方案太愚蠢了!
- 该文件需要预先分配。
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
,但如果它是驻留在另一个文件系统上的文件,则不能。
因此,这个问题仍然悬而未决。