Я установил CentOS 7.6 в систему с приводом NVME. Все прошло успешно, и система вела себя как ожидалось. Он поставляется с ядром 3.10 по умолчанию, поэтому я обновил ядро до последней версии (5.1.5) и изменил порядок загрузки ядра в grub. Однако всякий раз, когда система перезагружается с версией ядра 5.x, она переходит в аварийный режим со следующей ошибкой:
Could not boot
/dev/centos/root doesn't exist
/dev/centos/swap doesn't exist
/dev/mapper/centos-root doesn't exist
Система просто перезагрузится, если я вернусь к версии ядра 3.10. Я получаю эту ошибку только в версии 5.x.
Я сравнил / boot / initramfs для 3.x и 5.x и увидел ниже драйверы ядра, включенные в 3.x, но не в 5.x
lsinitrd -k <5.x kernel version>
usr/lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/nvdimm
usr/lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/nvdimm/libnvdimm.ko.xz
usr/lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/nvdimm/nd_btt.ko.xz
usr/lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/nvdimm/nd_pmem.ko.xz
usr/lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/nvme
usr/lib/modules/3.10.0-57.el7.x86_64/kernel/drivers/nvme/host
usr/lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/nvme/host/nvme-core.ko.xz
usr/lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/nvme/host/nvme.ko.xz
Поэтому я выполнил приведенную ниже команду, чтобы включить драйверы nvme в 5.x и перестроить initramfs.
echo 'add_drivers+=" nvme "' > /etc/dracut.conf.d/nvme.conf
Как только я это сделал, я увидел, что драйверы nvme включены в 5.x initramfs (хотя и с разными именами файлов).
usr/lib/modules/5.1.5-1.el7.elrepo.x86_64/kernel/drivers/nvdimm
usr/lib/modules/5.1.5-1.el7.elrepo.x86_64/kernel/drivers/nvdimm/nd_btt.ko
usr/lib/modules/5.1.5-1.el7.elrepo.x86_64/kernel/drivers/nvdimm/nd_pmem.ko
usr/lib/modules/5.1.5-1.el7.elrepo.x86_64/kernel/drivers/nvme
usr/lib/modules/5.1.5-1.el7.elrepo.x86_64/kernel/drivers/nvme/host
usr/lib/modules/5.1.5-1.el7.elrepo.x86_64/kernel/drivers/nvme/host/nvme-fabrics.ko
usr/lib/modules/5.1.5-1.el7.elrepo.x86_64/kernel/drivers/nvme/host/nvme-tcp.ko
Я снова перезагрузил систему с версией ядра 5.x и снова получил ту же ошибку. Я также прочитал о некоторой корневой задержке на случай, если устройство задерживается в обнаружении ядром, однако я не пробовал это делать, поскольку система прекрасно запускается с ядром 3.x.
Кто-нибудь знает, что здесь может происходить?