CentOS流系统U盘安装错误解决:Warning: /dev/root/does not exit

问题描述:

在安装CentOS流系统时,在启动后会出现以下打印,并进入到Dracut紧急模式。

[  xxx.xxxxxx] dracut-initqueue[503]: Warning: dracut-initqueue timeout -starting timeout scripts
...
[  xxx.xxxxxx] dracut-initqueue[503]: Warning: dracut-initqueue timeout -starting timeout scripts
[  xxx.xxxxxx] dracut-initqueue[503]: Warning: Could not boot.
[  xxx.xxxxxx] dracut-initqueue[503]: Warning: /dev/root does not exist
		Starting Dracut Emergency Shell...
Warning: /dev/root does not exist

问题原因:

由网上资料显示,该问题的起因是安装系统时没有找到U盘设备。
具体原因就是在创建U盘系统启动盘时,U盘的名字会被设置为系统的名字,但是有长度限制。超过长度的字符会被省略,但是在系统的配置文件中使用的还是系统名字的全名称,但是U盘的名字却有可能是被截断的。所以在安装时会找不到U盘镜像。
多说无益,有图为证:
在镜像文档中isolinux/isolinux.cfg中有以下描述:

label linux
  menu label ^Install Kylin Linux Advanced Server v10
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=Kylin-Server-10\x28x86_64\x29 quiet

label check
  menu label Test this ^media & install Kylin Linux Advanced Server v10
  menu default
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=Kylin-Server-10\x28x86_64\x29 rd.live.check quiet

其中可见系统期望的U盘启动盘名字为:Kylin-Server-10\x28x86_64\x29。其中\x28\x29是"(“和”)"的转义字符,即期望的U盘启动的盘实际名字应该为:Kylin-Server-10(x86_64)
但是使用UltraISO烧写的U盘系统盘名字为:Kylin-Serve。如图:
CentOS流系统U盘安装错误解决:Warning: /dev/root/does not exit_第1张图片
可见U盘名字被截断了。

这就造成了在安装时找不到U盘,从而出现该问题。

问题解决:

方法一

  1. 修改isolinux.cfg文件中所有Kylin-Server-10\x28x86_64\x29改为Kylin-Serve
    或者将U盘文件名和isolinux.cfg文件都改为自定义的同一名字。
  2. 如果执行完1依然失败,那么在启动时进入到grub的edit模式(在gurb模式中高亮选择“Install Kylin xxxx…项并”按"e")中,将显示界面中所有Kylin-Server-10\x28x86_64\x29改为Kylin-Serve

方法二

  1. 安装失败后会进入到dracat的紧急模式,在该模式中查看/dev/中U盘的盘符。一般/dev/sdax是硬盘,如果只有一个硬盘的话,U盘一般为/dev/sdbx。不过还是以实际为准。(要选/dev/sdbx,而不是/dev/sdb)
  2. 在启动时进入到grub的edit模式,将显示内容中
    stage2=hd:LABEL=Kylin-Server-10\x28x86_64\x29
    改为
    stage2=hd:/dev/sdb2

后记

  1. 以MBR模式安装时,可能无法进入到gurb的edit模式。
  2. 方法二测试后失败了,原因未知,但是这是网上出现最多的解决方法。

参考资料

  1. 安装centos7报错:/dev/root does not exist 问题处理过程
  2. u盘安装centos7 /dev/root does not exist 导致无法安装解决方案。

你可能感兴趣的:(芯海遗珠)