每次我启动/重新启动计算机时,它都会运行fsck,但我不知道为什么。
如果我启动到 Ubuntu USB 驱动器,并在我的 Linux 分区上手动运行fsck,它就会清理干净。
以下是我的超级块。我尝试更改“最大安装数”和“检查间隔”,但行为没有变化。
知道为什么会发生这种情况吗?
$ sudo tune2fs -l /dev/nvme0n1p6
tune2fs 1.47.0 (5-Feb-2023)
Filesystem volume name: Ubuntu
Last mounted on: /
Filesystem UUID: f0db2226-e28d-46dd-9b5a-457c87987ed2
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 40845312
Block count: 163380224
Reserved block count: 8169011
Overhead clusters: 2844802
Free blocks: 57597994
Free inodes: 40012689
First block: 0
Block size: 4096
Fragment size: 4096
Group descriptor size: 64
Reserved GDT blocks: 1024
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
RAID stride: 4
RAID stripe width: 32
Flex block group size: 16
Filesystem created: Fri Sep 24 20:06:49 2021
Last mount time: Sun Oct 6 17:47:34 2024
Last write time: Sun Oct 6 18:01:39 2024
Mount count: 5
Maximum mount count: 23
Last checked: Sun Oct 6 10:00:35 2024
Check interval: 0 (<none>)
Lifetime writes: 10 TB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 32
Desired extra isize: 32
Journal inode: 8
First orphan inode: 17714152
Default directory hash: half_md4
Directory Hash Seed: 7e1d3c28-3106-4408-8132-4b574d84a675
Journal backup: inode blocks
Checksum type: crc32c
Checksum: 0xce551aef
事实证明...
我有两个磁盘。/dev/nvme0n1p6 是我的启动分区。/dev/sda1 是我的 SSD 备份磁盘。我以为启动时的 fsck 是针对我的启动分区的。我错了。它针对的是我的 SSD 备份磁盘!
执行
sudo tune2fs -l /dev/nvme0n1p6
或时sudo tune2fs -l /dev/sda1
要检查的关键值是:当“安装计数”大于“最大安装计数”时,将运行 fsck。“最大安装计数”的默认值等于 -1,因此每次启动时都不会发生 fsck。要更改“最大安装计数”,请使用
sudo tune2fs -c [random|some hard value] /dev/sda1
。当“检查间隔”为非零值时,将运行 fsck。设置间隔的命令是
sudo tune2fs -i n[d|m|w] /dev/sda1
。为了解决我的问题,我进行了编辑
/etc/fstab
,将我的 SSD 备份磁盘的 fsck(fs_passno)字段从二更改为零,因此不会运行任何启动时 fsck。更新:
事实证明,当外部 USB-C SSD 连接到原生 USB-C 端口时,每次启动时都会自行 fsck,但是,当它连接到 USB-A 端口时,使用 USB-A 到 USB-C 适配器,它不会每次启动都进行 fsck。我将 /etc/fstab fs_passno 改回 2。