哪个 systemd 目标确保所有磁盘都已准备就绪?

哪个 systemd 目标确保所有磁盘都已准备就绪?

local-fs.target似乎只是检查所有mount块何时准备好。

如果有许多磁盘在启动期间/启动后未安装,如何确保所有磁盘都已准备好?

哪个目标可用于确认所有磁盘(挂载和未挂载)已准备好使用/挂载?

  • boot-complete.target
  • basic.target
  • ...?

答案1

不存在这样的目标,因为 systemd 无法知道它何时确实看到了“所有”磁盘。不同之处在于 local-fs.target 等待的所有挂载都明确列在 /etc/fstab 或其他地方,而磁盘则随着 SATA、SAS 和 USB 端口的枚举而突然到达;没有明确的名单。

但是,如果您确切知道需要等待哪些磁盘,则可以根据.device代表这些磁盘的单位创建自己的目标。默认情况下,基本的 /dev/sdX 名称及其 /dev/disk/by-id 下的各种符号链接都将具有相应的 .device 单元,因此您可以在自定义目标的 After= 中列出它们。

(或者更好的是,如果有一个单独为每个磁盘完成的任务,那么您可以为每个磁盘创建一个包含实例的模板化服务,而不是让它等待所有磁盘 - 类似于 systemd-fsck@ 如何为每个设备单独运行,而不需要等待所有磁盘。等待“所有人”。)

相关内容