더 작지만 더 빠른 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.
굵게 표시된 부분은 실제로 망가진 순간입니다.
- 이것은 우분투 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
. 그리고 나는 마치...잠깐만요. 그래요아주 새로운리눅스의 경우 이런 종류의 일은 나에게 전혀 명확하지 않습니다.
(물론 다른 문제가 있었을 것이기 때문에 어떤 이유에서인지 설치할 수 없었습니다. 하지만 적어도 그것을 만들었습니다.)
편집: 전설은 계속됩니다!
파일을 미리 할당하면 이 오류를 극복할 수 있었습니다. 하지만 지금은 파일 시스템을 마운트할 수 없습니다.
내가 받은 오류는 다음과 같습니다.
/mnt/data: the kernel does not recognize /dev/sdb1 as a block device; maybe "modprobe driver" is necessary.
실험 후 로그가 장치인 경우 FS:example을 마운트할 수 있지만 /dev/sdc
다른 파일 시스템에 있는 파일인 경우에는 마운트할 수 없습니다.
따라서 문제는 계속 열려 있습니다.