在排除为什么我的 /home 分区(ext4,luks 加密)没有被每周修剪时弗斯特里姆服务后,我发现Ubuntu对服务文件进行了重大修改:
在 Ubuntu/Mint 18 上
[Unit]
Description=Discard unused blocks
ConditionVirtualization=!container
[Service]
Type=oneshot
ExecStart=/sbin/fstrim -av
在 Ubuntu/Mint 20 上
[Unit]
Description=Discard unused blocks on filesystems from /etc/fstab
Documentation=man:fstrim(8)
ConditionVirtualization=!container
[Service]
Type=oneshot
ExecStart=/sbin/fstrim --fstab --verbose --quiet
ProtectSystem=strict
ProtectHome=yes
PrivateDevices=no
PrivateNetwork=yes
PrivateUsers=no
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
MemoryDenyWriteExecute=yes
SystemCallFilter=@default @file-system @basic-io @system-service
有人可以解释一下为什么要改变吗?当然,我可以手动将ProtectHome=yes
设置更改为ProtectHome=no
。但为什么在最新的 Ubuntu 中引入了这个呢?修剪/home 是否有问题?
答案1
这是结果过度热情的硬化,此后已分两步修复:
您应该覆盖 service( sudo systemctl edit fstrim
) 并将ProtectSystem
和ProtectHome
条目设置为no
。