我进入现场环境,在硬盘上安装了Grub,将6.4.0内核放置在该/dev/sda3
位置,通过mkinitramfs -o /mnt/boot/initrd
创建initrd
并放置在该/dev/sda3
位置,但启动时卡在此处,如图所示:
但是当我进入现场环境时,我可以看到/dev/sda3
,如图所示:
这是怎么回事?我点击了这个链接(mdadm:未找到conf 文件中列出的设备 - 带 GPT 的 Debian 8)并在grub.cfg中设置rootdelay并执行更新grub,仍然相同。另外,进入initramfs后,键盘无法输入,不知道怎么回事
grub.cfg:
#Begin cfg
set default=0
set timeout=4
set root=(hd0,gpt3)
menuentry "GNU/Linux, Test-6.4.0-rt" {
linux /bzImage rw root=/dev/sda3 rootdelay=90
initrd /initrd
}
文件系统表:
#device mount-point type options dump fsck order
/dev/sda3 / ext4 defaults 0 1
/dev/sda2 /boot ext4 defaults 0 1
/dev/sda1 /boot/efi vfat umask=0077 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var tmpfs defaults 0 0
debugfs /sys/kernel/debug debugfs default 0 0
devpts /dev/pts devpts defaults 0 0
#none /tmp ramfs defaults 0 0
#mdev /dev ramfs defaults 0 0
回复电信公司和汤彦,驱动程序存在:
sudo unmkinitramfs initrd .
ls main/lib/modules/6.1.0-10-amd64/kernel/drivers/ata/ahci.ko
ls main/lib/modules/6.1.0-10-amd64/kernel/drivers/scsi/sd_mod.ko
====================问题重现============================== =
更新6.4.0-rt8:
$ ls main/lib/modules/6.4.0-rt8/kernel/drivers/scsi/sd_mod.ko
main/lib/modules/6.4.0-rt8/kernel/drivers/scsi/sd_mod.ko
$ ls main/lib/modules/6.4.0-rt8/kernel/drivers/ata/ahci.ko
main/lib/modules/6.4.0-rt8/kernel/drivers/ata/ahci.ko
答案1
显然,访问/dev/sda
磁盘所需的驱动程序既没有内置到内核中,也没有作为 initramfs 中的可加载模块提供。
如果这是典型的台式机或笔记本电脑系统,则缺少的驱动程序可能是ahci
内核模块或其依赖项:libahci
、libata
和sd-mod
。如果这些模块不可用,/dev/sda
则全盘设备节点和任何分区设备(例如 )的设备节点/dev/sda3
都不会出现。
如果/dev/sda
存在但分区设备节点不存在,则内核缺少适当的分区表支持。
如果设备节点可用但安装失败,典型原因是缺少文件系统驱动程序模块。