내 Debian sid에서 새(1개월 미만) SSD nvme WD SN850에 사용자 지정 5.17.0-rc1 커널을 설치했으며 루트 파티션은 f2fs(v 1.14)로 형식화되었습니다.
알겠어요fstrim: /: FITRIM ioctl failed: Structure needs cleaning
fsck는 정상이고 문제가 발견되지 않으며 운영 체제도 문제 없이 실행됩니다.
sudo fsck.f2fs /dev/nvme0n1p2
Info: Segments per section = 1
Info: Sections per zone = 1
Info: sector size = 512
Info: total sectors = 976566287 (476839 MB)
Info: MKFS version
"Linux version 5.5.0-rc6 (u1@jeanordi) (gcc version 9.2.1 20191130 (Debian 9.2.1-21)) #1 SMP PREEMPT Thu Jan 16 00:24:17 CET 2020"
Info: FSCK version
from "Linux version 5.5.0-rc6 (u1@jeanordi) (gcc version 9.2.1 20191130 (Debian 9.2.1-21)) #1 SMP PREEMPT Thu Jan 16 00:24:17 CET 2020"
to "Linux version 5.5.0-rc6 (u1@jeanordi) (gcc version 9.2.1 20191130 (Debian 9.2.1-21)) #1 SMP PREEMPT Thu Jan 16 00:24:17 CET 2020"
Info: superblock features = 0 :
Info: superblock encrypt level = 0, salt = 00000000000000000000000000000000
Info: total FS sectors = 976566280 (476839 MB)
Info: CKPT version = 1d9fb4bd
Info: checkpoint state = 55 : crc fsck compacted_summary unmount
[FSCK] Unreachable nat entries [Ok..] [0x0]
[FSCK] SIT valid block bitmap checking [Ok..]
[FSCK] Hard link checking for regular file [Ok..] [0xb]
[FSCK] valid_block_count matching with CP [Ok..] [0x44993b]
[FSCK] valid_node_count matching with CP (de lookup) [Ok..] [0x16c2c]
[FSCK] valid_node_count matching with CP (nat lookup) [Ok..] [0x16c2c]
[FSCK] valid_inode_count matched with CP [Ok..] [0x15d7c]
[FSCK] free segment_count matched with CP [Ok..] [0x374d7]
[FSCK] next block offset is free [Ok..]
[FSCK] fixing SIT types
[FSCK] other corrupted bugs [Ok..]
Done: 2.975766 secs
답변1
기본적으로 F2FS는 순차 TRIM처럼 작동하는 혼합 TRIM 모드를 사용하여 설치됩니다. 이 구현은 RW IO 간의 긴 폐기 지연을 완화하기 위해 비동기 폐기 스레드를 생성합니다. 후보를 메모리에 유지하고 스레드는 유휴 시간 동안 후보를 방출합니다[8]. 따라서 주기적인 TRIM을 원하는 사용자는 설치 옵션을 암시적으로 설정해야 하며 ,
nodiscard
수동으로 설치하는 경우/etc/fstab
이를 전달해야 합니다 .mount
즉, 루트 파일 시스템(아마도 initramfs에 있음)에 대한 마운트 옵션을 지정하지 않으면 실행할 수 없으며 시스템이 실행되지 않을 때마다 백그라운드에서 자동으로 실행되므로 그렇게 할 nodiscard
필요 도 없습니다 . 더 중요한 할 일이 있습니다.fstrim
f2fs
f2fs
fstrim
on을 사용하려면 마운트 옵션을 f2fs
사용하여 nodiscard
지속적인 백그라운드 TRIM 작업을 중지하고 수동으로 수행할 수 있도록 해야 합니다 fstrim
.
그런데 FITRIM ioctl failed: Structure needs cleaning
결과가 정말 이상하네요.fstrim
이는 오류를 생성하는 소스의 위치인 것 같습니다.
이 오류는 값이 임을 Structure needs cleaning
의미합니다 . ~에 따르면errno
EUCLEAN
엘릭서 상호 참조자, 이는 f2fs
드라이버 에 나타납니다.한 곳에서만:
#define EFSCORRUPTED EUCLEAN /* Filesystem is corrupted */
아...f2fs가 EUCLEAN
동의어로 정의된 것 같은데 EFSCORRUPTED
확인하시면 됩니다f2fs 드라이버 내의 여러 위치에서, 원인이 무엇이든 아마도 나쁜 소식일 것입니다.
파일 f2fs
시스템이 손상되었을 수 있습니다.