![fstrim.service 在 Ubuntu/Mint v20 中阻止 /home 的修剪,但在 v18 中则不然](https://linux22.com/image/186805/fstrim.service%20%E5%9C%A8%20Ubuntu%2FMint%20v20%20%E4%B8%AD%E9%98%BB%E6%AD%A2%20%2Fhome%20%E7%9A%84%E4%BF%AE%E5%89%AA%EF%BC%8C%E4%BD%86%E5%9C%A8%20v18%20%E4%B8%AD%E5%88%99%E4%B8%8D%E7%84%B6.png)
在排除为什么我的 /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
。