Fsck 脚本位置

Fsck 脚本位置

我需要找出在 CentOS 7 上启动时运行 fsck 的脚本类型是什么?我知道所有场景都位于 /etc/rc.d 目录中。但我不知道这个脚本位于哪里。

答案1

我知道所有场景都位于/etc/rc.d目录中。

你所知道的都是错误的。

欢迎使用 CentOS 7。世界已经改变。特别是,您的 Red Hat Enterprise Linux 7 基础已经改变。您正在使用 systemd Linux 操作系统。许多关于 Linux 的普遍看法并不适用于此类系统。

fsck根本不由任何脚本运行在 systemd Linux 操作系统上。

systemd 的本机格式是单元,其中可以是服务单位或一个安装单元。 systemd 的服务管理仅根据这些内容进行适当的操作,它从(系统范围内).service.mount文件可以存在的九个目录之一读取这些内容。 /etc/systemd/system/run/systemd/system/usr/local/lib/systemd/system、 和/usr/lib/systemd/system是其中四个目录。

您的/etc/fstab数据库由名为 的程序转换为安装单元systemd-fstab-generator。该程序列在/usr/lib/systemd/system-generators/目录中,因此每次启动时都会在引导过程的早期由 systemd 自动运行,并且每次指示 systemd 稍后重新加载其配置时都会再次运行。

这个程序是一个发电机,一种辅助实用程序,其工作是在 tmpfs 中动态创建单元文件,其中包含这九个目录中的另外三个目录(仅由生成器使用)。 systemd-fstab-generator生成.mount安装卷的单元。这些依次参考.service运行的单位fsck

这些fsck服务单元本身并不作为文件系统中的文件存在(甚至不在 tmpfs 中),也不是生成器的产品。他们是实例化由 systemd 来自模板服务单元文件,名为[email protected],使用设备名称作为服务单元实例名称。实例化是由于生成单元的Requires=After=引用而发生的。systemd-fsck@device.service.mount

这个实例化的模板是一个运行名为 的程序的服务systemd-fsck,该程序建立一个客户端-服务器连接以显示进度信息,然后依次运行fscksystemd-fsck是编译的 C 程序,而不是解释的脚本。

进一步阅读

答案2

如果 CentOS 7 仍然使用 SysV 设置,下面/etc/rc.d是所有脚本,快速grep应该显示它的调用位置。脚本本身在目录中链接(在它们的名称下,前面有优先级)/etc/rc/X,理清这并不是太难。理解脚本完全是另一回事......

如果它已经在使用systemd(例如这里概述)配置文件位于/lib/systemd,具体配置位于/etc/systemd。再次,抓住信任grep(1)并深入挖掘。

相关内容