背景 链接到标题 最近遇到了一个故障,在集群软件升级过程中,发现某一个磁盘分区变为只读,导致存储应用识别该磁盘不可用。调查发现集群升级过程中,会重新生成每个节点的 GRUB 配置文件,在执行 grub2-mkconfig 过程中导致的磁盘分区只读。记录下 grub2-mkconfig 命令执行到真正磁盘只读指令下发的流程。
调查 链接到标题 grub2-mkconfig 链接到标题 在执行 grub2-mkconfig 命令时,如果没有指定配置 GRUB_DISABLE_OS_PROBER=true 时,则 GRUB 会调用 os-prober (/etc/grub.d/30_os-prober)用于扫描其他操作系统进行后续配置。
os-prober 链接到标题 os-prober 是用来探测其他磁盘中存在操作系统的情况。通常由各个发行版本提供,源码地址:https://salsa.debian.org/installer-team/os-prober 。
CentOS 默认包含的 os-prober 与源码版本并不相同,包含了一些额外的配置,通过 RPM changelog 可以查看:
Name : os-prober Version : 1.58 Release : 9.el7 Architecture: x86_64 Install Date: Wed 18 Aug 2021 03:44:43 PM CST Group : System Environment/Base Size : 97946 License : GPLv2+ and GPL+ Signature : RSA/SHA256, Mon 21 Nov 2016 03:50:19 AM CST, Key ID 24c6a8a7f4a80eb5 Source RPM : os-prober-1.