微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

解决因U盘标签问题导致的U盘安装Linux系统失败

前言

我在使用U盘制作、安装Centos系统时遇到了一个问题,现象是进不了安装界面,在等待超时后提示以下信息,然后就进入了临时的linux shell。

dracut-initqueue : Warning: dracut-initqueue timeout - starting timeout scripts

然而同样的镜像文件如果刻录成光盘安装就没有问题,甚至可能换个U盘安装也没有问题。上网搜索有各种解决方法,总体说的是对的,但在细节上说得不够准确。个人推测发帖者根据原文分析并找到了原因,事后想要记录一下就直接copy原文,并没有做更细的总结,这也是促使我发表本文的原因。以下记录我已在Centos7.3 + 工控机环境下实验过。

问题分析

导致该问题的原因,是因为不同格式的U盘对标签支持的长度不一样。很可能使用fat32或exfat格式,无法支持镜像里超长的标签。我们将U盘插在windows下,看到U盘的标签名为

CentOS 7 x8

而打开/isolinux/syslinux.cfg搜索“LABEL=”,看到的都是

CentOS\x207\x20x86_64

其中\x20代表空格,这两处不一致导致无法正确引导进入安装界面。而如果是DVD刻录的,可以看到光盘的标签就是“CentOS 7 x86_64”,而U盘则可能是被截短后的标签

解决办法

问题分析完了,解决办法有三种
1.使用DVD刻录安装
这种做法什么都不需要修改,前提是你安装系统的设备有光驱

2.修改修改syslinux.cfg
配置文件在U盘里/isolinux/目录下,把"hd:LABEL=CentOS\x207\x20x86_64"这里修改为正确的U盘标签名。例如这里修改为:

hd:LABEL=CentOS\x207\x20x8

配置里有多处hd:LABEL=,我都进行了修改,保存后按照正常流程安装即可。这种改法有几个坑需要注意: - 空格问题,\x20 为空格 - 不修改syslinux.cfg里的配置,而是在windows下修改U盘标签
这么做思路没问题,但是有个坑是windows如果修改标签名,会自动转成大写,造成的结果和原先一样,依旧是两边不匹配。而且一旦修改了U盘标签,就改不回小写了,这时候最好的做法就是两边同时修改为CENTOS7这样全大写、没有空格这样简单的标签名。

这种做法一劳永逸,之后使用该U盘安装不必再做修改和配置注:U盘系统里,还有一个/isolinux/isolinux.cfg,这个在刻录前有用,刻录后修改也不生效。注意别修改错了。 2)大小写问题,在windows下如果修改lable后有可能会被强制转为大写(有时重启系统才能发现) 所以保险起见,将标签,和该cfg都修改为CENTOS7这样没有歧义的名称

3.在安装时修改
这么做的好处是不会修改原本U盘里的任何内容。在安装系统步骤走到安装选择菜单时,通过键盘上下键,选择 Install CentOS 7(但是不回车) ,然后修改 按 e 键(或者tab键,可以看提示,不同版本不一样),进入修改状态,将 hd:LABEL=后面的内容修改为U盘实际的标签名例如标签名是别截断后的CentOS 7 x8,那么这里修改

vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64.check quiet为 vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x8 quiet

最后,通过按e键进入修改的,按Ctrl+x开始安装。如果通过tab键进入修改的,直接回车开始安装。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。