此文章仅记录当时的openwrt
版本
自己买了一台j4125的cpu,4个2.5g螃蟹网卡的软路由。启动硬盘用nvme硬盘,然后加装了1t的2.5寸sata硬盘。
刷入openwrt系统后、出现下面报错
调整bios的硬盘加载顺序、但是没什么用
导致这个问题的原因是openwrt 中的 grub 造成的,因为 grub 会自检所有硬件,而发现某个硬件是非启动盘时,就报错这个设备,导致整个系统都无法启动。
只有一个硬盘则不会出现这个问题
解决办法
办法一
修改/boot/grub/grub.cfg配置文件
set root='(hd0,gpt1)'
改为set root='(hd1,gpt1)'
这个具体的参数是根据硬盘有关
hd1中的1代表第几块硬盘
gpt1代表分区
办法二
未成功验证、我自己是在pe的模式下
两块u盘出现的情况、
目前解决办法是,在启动时把所有非启动用的 U 盘都拔掉,只留下用于启动 openwrt 的 U 盘。 长久的解决办法是,我个人认为是升级 openwrt 中的 grub,目前多数主流的 linux 发行版都用的是 grub2,所以我猜测如果升级成 grub2 可能会修复这个问题。
修改文件:/boot/grub/grub.cfg
set default="0"
set timeout="0"
set root='(hd0,gpt1)'
menuentry "OpenWrt" {
linux /boot/vmlinuz root=PARTUUID=652735a3-1ccc-0e03-30e8-37e24b0bed02 rootwait console=tty0 console=ttyS0,115200n8 noinitrd
}
报错提示来自于第三行的 set root='(hd0,gpt1)',如果启动时插了多个外接磁盘(U盘),那么用于启动 openwrt 的 U 盘并不一定被识别为 hd0,gpt1,因此会报错。
在这行下面增加如下一行设置即可解决问题:
search --no-floppy --part-uuid --set=root 652735a3-1ccc-0e03-30e8-37e24b0bed02
注:
652735a3-1ccc-0e03-30e8-37e24b0bed02
是 UUID,把它替换成你启动分区的 uuid
,启动分区的 uuid
可通过 blkid 命令查看,如果提示命令未找到,则执行 opkg install blkid
。
7 comments
看的我热血沸腾啊www.jiwenlaw.com
看的我热血沸腾啊https://www.ea55.com/
看的我热血沸腾啊https://www.jiwenlaw.com/
叼茂SEO.bfbikes.com
把第三行
set root='(hd0,gpt1)变成
#set root='(hd0,gpt1),或者直接删除,保存退出,再重启就行了,看着显示屏亲测有效。我就是买的工控机自己装的内存条和一个120G的SATA当内存。
其他的改法,比如进入grub修改hd*,每次连插个键鼠的usb都会变,找系统盘的uuid我也不能确定是哪个。
直接把
set root='(hd0,gpt1)'
删掉也能正常启动
我那个版本好像不行~!可能openwrt的grub不一样