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

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

前言

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

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

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

问题分析

导致该问题的原因,是因为不同格式的U盘对标签支持的长度不一样。很可能使用fat32exfat格式,无法支持镜像里超长的标签。我们将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键进入修改的,直接回车开始安装。

使用Linux 刻录优盘

1
yum install -y createrepo mkisofs dosfstools syslinux  

【Linux】Linux环境下制作ISO镜像与刻录U盘_mkisofs制作启动iso镜像_道非凡的博客-CSDN博客
createrepo:用于对软件包生成分组索引信息(不重做镜像不需要)
syslinux:使用该包中的isohybrid工具,将标准ISO文件转换成混合ISO,以便写入USB存储设备(不重做镜像不需要)
mkisofs:制作镜像文件(不重做镜像不需要)
dosfstools:主要利用该工具包中的mkfs.vfat对U盘进行格式化

格式化优盘
1
mkfs.vfat -I /dev/sde
写入镜像

首先在Linux系统中打开终端,使用dd命令,格式如下:

**注意:**使用dd命令刻录完成后使用sync进行同步一下,不然有的刻录虽然成功了,但是数据没有同步,也会导致安装失败

1
dd if=CentOS-7-x86_64-Minimal-2003.iso of=/dev/sdb &&sync

注意,此时是看不了进度的。可另开一个窗口,输入下面命令

1
kill -USR1 `pidof dd`

此时原窗口就会显示:

1
2
3
4
5
6
7
[root@host-10-11 ~]# dd if=CentOS-7-x86_64-Minimal-2003.iso of=/dev/sdc
2013593+0 records in
2013593+0 records out
1030959616 bytes (1.0 GB) copied, 247.525 s, 4.2 MB/s
2119680+0 records in
2119680+0 records out
1085276160 bytes (1.1 GB) copied, 263.28 s, 4.1 MB/s

制作完成后

1
2
[root@host-10-11 ~]# blkid
/dev/sdc: UUID="2020-04-22-00-51-40-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"

可以挂载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@host-10-11 ~]# mount /dev/sdc4 /media/
[root@host-10-11 media]# ll
total 110
-rw-rw-r-- 2 root root 14 Apr 21 2020 CentOS_BuildTag
drwxr-xr-x 3 root root 2048 Apr 21 2020 EFI
-rw-rw-r-- 3 root root 227 Aug 30 2017 EULA
-rw-rw-r-- 3 root root 18009 Dec 10 2015 GPL
drwxr-xr-x 3 root root 2048 Apr 21 2020 images
drwxr-xr-x 2 root root 2048 Apr 21 2020 isolinux
drwxr-xr-x 2 root root 2048 Apr 21 2020 LiveOS
drwxr-xr-x 2 root root 73728 Apr 22 2020 Packages
drwxrwxr-x 2 root root 4096 Apr 22 2020 repodata
-rw-rw-r-- 3 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r-- 3 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r-- 1 root root 2883 Apr 22 2020 TRANS.TBL
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2018-2024 Outsrkem
  • 访问人数: | 浏览次数:

      请我喝杯咖啡吧~

      支付宝
      微信