RHEL系操作系统(CentOS/CtyunOS)
安装依赖包
yum install dracut -y运行以下命令,查看系统内核是否已经加载了NVMe驱动。
cat /boot/config-`uname -r` | grep -i nvme | grep -v "^#"返回结果如上图所示,如果CONFIG_BLK_DEV_NVME=y则表示该操作系统可以直接使用,您需要跳过后续的步骤3、步骤4直接进行步骤5的参数配置。如果CONFIG_BLK_DEV_NVME=m则您需要依次完成以下操作步骤。
运行以下命令,查看initramfs中是否包含NVMe驱动。
lsinitrd /boot/initramfs-`uname -r`.img | grep -i nvme | awk '{print $NF}'如果有类似于如上图所示的返回结果,则表示该操作系统可以直接使用,您需要跳过后续的步骤4,直接进行步骤5的参数配置。否则,您需要依次完成以下操作步骤。
依次运行以下命令,使initramfs支持NVMe驱动。
mkdir -p /etc/dracut.conf.decho 'add_drivers+=" nvme nvme-core nvme-fabrics nvme-fc nvme-rdma nvme-loop nvmet nvmet-fc nvme-tcp "' >/etc/dracut.conf.d/nvme.confdracut -v -f在GRUB中添加NVMe相关的nvme timeout参数
打开/etc/default/grub文件,在GRUB_CMDLINE_LINUX=一行中,添加
nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295参数信息。添加参数后,文件内容如下图所示:
运行以下命令,使配置的GRUB生效。
根据操作系统的启动方式不同,选择以下适用于您的操作系统的命令
Legacy启动方式
grub2-mkconfig -o /boot/grub2/grub.cfgUEFI启动方式
grub2-mkconfig -o /boot/efi/EFI/<distro> /grub.cfgwatchdog的时间修改为30s。
打开/etc/sysctl.conf文件,在文件末尾添加
kernel.watchdog_thresh=30文件内容如下图所示:
镜像制作完成后,为保证以上配置正确,可通过以下操作进行验证验证:
验证 /etc/default/grub 修改是否生效,参考:
cat /proc/cmdline验证 /etc/sysctl.conf 是否正确配置 kernel.watchdog_thresh,参考:
cat /etc/sysctl.conf | grep watchdog重启验证 NVMe 驱动信息,参考:
lsinitrd /boot/initramfs-`uname -r`.img | grep -i nvme | awk '{print $NF}'参考上面步骤3
Debian系操作系统(Ubuntu/Debian)
运行以下命令,查看系统内核是否已经加载了NVMe驱动。
cat /boot/config-`uname -r` | grep -i nvme | grep -v "^#"返回结果如下所示,如果CONFIG_BLK_DEV_NVME=y则表示该操作系统可以直接使用,您需要跳过后续的步骤2、步骤3直接进行步骤5的参数配置。如果CONFIG_BLK_DEV_NVME=m则您需要依次完成以下操作步骤。
运行以下命令,查看initramfs中是否包含NVMe驱动。
lsinitramfs /boot/initrd.img-`uname -r` | grep -i nvme如果有类似于如上图所示的返回结果,则表示该操作系统可以直接使用。
在GRUB中添加NVMe相关的nvme timeout参数
打开/etc/default/grub文件,在GRUB_CMDLINE_LINUX=一行中,添加
nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295参数信息。添加参数后,文件内容如下图所示:
运行以下命令,使配置的GRUB生效。
根据操作系统的启动方式不同,选择以下适用于您的操作系统的命令
Legacy启动方式
grub2-mkconfig -o /boot/grub2/grub.cfgUEFI启动方式
grub2-mkconfig -o /boot/efi/EFI/<distro> /grub.cfg不分区启动模式(该命令仅适用于Ubuntu/Debian系统)
update-grub / update-grub2watchdog的时间修改为30s。
打开/etc/sysctl.conf文件,在文件末尾添加
kernel.watchdog_thresh=30文件内容如下图所示: