一个U盘制作多个系统镜像方法 ——适用于ARM架构UOS和KYLIN银河麒麟系统
一、背景:
作为一个喜欢收集系统镜像的同学,加起来收集的ARM架构和X86架构系统镜像少则10个,每装一次系统都要刻录一次U盘,且等待刻录的时间也挺让人着急。为了尽可能的减少不必要的等待时间,提高U盘利用率,想到能不能用1个U盘(现在的U盘都比较大,32G)安装多个系统镜像,需要时直接选择用哪个,能够提高效率。网上找了1圈,发现方法很多,经过验证,总结如下:
二、结论:
方案1:老毛桃、大白菜等winPE系统+ISO镜像。
方案缺点:因为winPE是基于x86架构的系统,不适用于ARM架构机器,测试时开机U盘都识别不到,此方案PASS。
方案2:单分区+文件夹。
U盘只分1个分区,所有镜像解压后放同一个分区不同文件夹,编辑系统引导文件grub.cfg来选择安装镜像,镜像集中不浪费空间。
方案缺点:此方案实际测试时,会出现找不到镜像的情况,报错如下:
当然解压对应initrd.img然后修改对应路径也可以但是比较麻烦。
方案3:多分区+编辑主引导扇区
把U盘分多个区,分别写入解压后的镜像文件,激活不同分区,用软件编辑主引导扇区的方式区分不同分区的镜像。
方案特点:整体上可以用,但未找到合适工具编辑主扇区引导文件,且分区多容易区分不清。
方案4:多分区+启动分区
把U盘分多个区后,分别写入解压后的镜像文件,第一个分区放自定义的引导文件和镜像,其他分区放不同镜像并设置隐藏。
方案特点:测试通过。分区合适的话空间也不浪费,且含有自定义引导文件方便编辑。效果如下:
开机按F12选择U盘项之后的启动界面如下:
三、软件环境:
镜像:ARM架构PC下以这3个镜像为例。(来源:自行官网下载)
分区工具:(来源:自行百度下载)
UltraISO.exe用来提取镜像文件
DiskGenius.exe用来给磁盘分区。
四、硬件环境:
ARM架构PC机1台。Huanghe K680 G1 (HUAWEI Kunpeng920 处理器)
工具:金士顿32G U盘1个
五、制作方法:
1.用DiskGenius给U盘分区并格式化
第一个分区用500M的FAT32文件系统(NTFS和exFAT32文件系统在BIOS下读不出来),用来放启动引导文件,其他分区用5G大小,名称自定义,如下图,最后一个空闲空间用来做常用U盘。(第一个分区引导分区一定要是1个FAT32格式的主分区,其他分区可以是NTFS或FAT32格式的文件系统,主分区和扩展分区都可以)
2.逐个解压ISO文件到U盘对应分区
打开软碟通,用 操作>提取的方式,把镜像文件解压到对应的U盘分区,如下
也可以用UNetBootin软件写入分区,(软件请自行百度)。如果之前有解压到U盘的也可以用直接复制的方式。三种方式速度差不多。
特殊说明:
Kylin-Desktop-V10-Release-Build1-20200402-arm64.iso镜像因为版本较早,采用普通提取或者启动>写入硬盘映像的方式均无法启动,需要在linux环境下,用dd命令写入相应的分区。
命令如下:
cd到 KYLIN402版本ISO镜像所在文件夹
dd if=Kylin-Desktop-V10-Release-Build1-20200402-arm64.iso of=/dev/sdb7 bs=1024M
其中sdb7为之前分配的KYLIN402版本对应的5G 分区。等待写入完毕即可。写入后磁盘分区和文件系统未知,提示格式化,请忽略。
3.编写引导分区
把UOS 20 sp1镜像解压出来的EFI文件夹全部复制到500M的EFI启动分区,打开EFI\BOOT\grub.cfg文件,编辑配置文件
在原来的路径前面加上对应的修改后的路径,启动条目自行调整。如
把对应的vmlinuz 和 initrd.img文件也按原来的路经复制到EFI分区下(路径和配置文件对应起来就好)。示意图如下
4.隐藏不需要的分区
用DiskGenius工具隐藏除了常用分区外的其他分区即可,保存更改。