无忧启动论坛

标题: g4e无法启动麒麟桌面操作系统 [打印本页]

作者: 2012huangsheng    时间: 2026-1-1 10:25
标题: g4e无法启动麒麟桌面操作系统
我试了很多办法,可以启动ubuntu的iso文件,但无法启动麒麟桌面操作系统的ISO文件。可以找到硬盘,但进去显示无法找到iso文件。是不是G4E没有办法啊。请大家看看。
title Boot  KyLinux install
find --ignore-floppies --ignore-cd --set-root /K.iso
map  /K.iso  (0xff)
#root (0xff)
kernel  (0xff)/casper/vmlinuz  boot=casper  iso-scan/filename=/K.iso   
initrd (0xff)/casper/initrd.lz

title Boot  KyLinux install2
find --ignore-floppies --ignore-cd --set-root /K.iso
#map  /K.iso  (0xff)
#root (0xff)
kernel /vmlinuz  boot=casper  iso-scan/filename=/K.iso   --
initrd /initrd.lz


作者: 2012huangsheng    时间: 2026-1-1 10:27
这个文件用ventoy启动没有问题。文件本身没有问题。我用的是最新版的g4e.麒麟ISO文件正常。
作者: 2011yaya2007777    时间: 2026-1-1 11:13
在首行增加  debug=3 ,把屏幕信息贴出来。
作者: smile_z    时间: 2026-1-1 12:29
学习一下
作者: guong    时间: 2026-1-1 12:43
来了解一下
作者: a66    时间: 2026-1-1 12:53


解决建议:
确认ISO文件结构
使用虚拟机或文件管理器打开麒麟ISO文件,查看其中的目录结构,确认 vmlinuz 和 initrd 文件的实际路径。

使用正确的路径修改GRUB配置
假设你发现麒麟ISO中的内核在 /boot/ 目录下,你可以修改GRUB菜单项如下:

title Boot KyLinux from ISO
find --ignore-floppies --ignore-cd --set-root /K.iso
map /K.iso (0xff)
map --hook
kernel (0xff)/boot/vmlinuz boot=live iso-scan/filename=/K.iso
initrd (0xff)/boot/initrd.img
尝试使用Ventoy或UltraISO制作启动盘
如果GRUB4DOS配置困难,建议使用 Ventoy 或 UltraISO 将麒麟ISO写入U盘直接启动,更加稳定和简单。

尝试使用其他引导工具
GRUB4DOS对某些新型ISO支持有限,可以尝试使用 grub2 或 syslinux 来引导麒麟ISO。
作者: 2012huangsheng    时间: 2026-1-1 21:13
本帖最后由 2012huangsheng 于 2026-1-1 21:15 编辑
2011yaya2007777 发表于 2026-1-1 11:13
在首行增加  debug=3 ,把屏幕信息贴出来。

d:\1.jpg

2.jpg (122.93 KB, 下载次数: 48)

2.jpg

1.jpg (159.15 KB, 下载次数: 43)

1.jpg

作者: 2011yaya2007777    时间: 2026-1-1 21:44
使用手机粗劣看了看,似乎GRUB4DOS已经将控制权交给了麒麟系统。错误提示是麒麟系统给出的,提到NTFS,fat,读写,只读等等。文件系统不对?
作者: 2012huangsheng    时间: 2026-1-1 22:12
2011yaya2007777 发表于 2026-1-1 21:44
使用手机粗劣看了看,似乎GRUB4DOS已经将控制权交给了麒麟系统。错误提示是麒麟系统给出的,提到NTFS,fat ...

好象是这样的。iso-scan/filename好象不起作用。已经启动了操作系统,但最后好象是没有找到iso文件。最后也显示 (initramfs) unable to find a medium containing a live file system. 也许麒麟系统的盘就不支持这样。用ubuntu的iso文件这么写就没有问题。另外 如果文件大于4G,也比较麻烦,Fat32文件格式还没法放入,格式化成extfat32好象grud4efi有点问题,只能用别的工具了。ventoy使用就没有问题。
作者: 2011yaya2007777    时间: 2026-1-2 09:04
linux系统难道不是应当安装在ext2/3/4文件系统吗?
作者: 2012huangsheng    时间: 2026-1-2 09:40
2011yaya2007777 发表于 2026-1-2 09:04
linux系统难道不是应当安装在ext2/3/4文件系统吗?

还没有到安装划分硬盘那一步。
作者: 2011yaya2007777    时间: 2026-1-2 09:49
ventoy安装时会自动分区,格式化。而grub没有此功能,硬盘必须预先有ext分区。
作者: 2012huangsheng    时间: 2026-1-2 10:50
我用做了实验,,将同样的ubuntu的iso文件放在extfat,fat32,Fat16,NTFS格式下,用grub4efi启动后,只有Fat32格式的分区可以正常启动,其他都找不到iso文件,这应该是grub4efi中的kernel   的 iso-scan/filename没有生效,是找不到对应的文件。为什么我就不懂了。写在这,也是让大家少走弯路。
作者: wintoflash    时间: 2026-1-2 10:56
这跟g4e无关。问题是Ubuntu的initrd没有加载exfat/ntfs驱动。
Ventoy和grub2/g4e不是一类软件,原理不同,不具有可比性。
作者: ebaqiang    时间: 2026-1-2 15:18
进来学习一下
作者: 2012huangsheng    时间: 2026-1-3 19:57
请问2011yaya2007777大侠,有什么办法吗可以装载ISO的安装文件,启动安装。

作者: 2012huangsheng    时间: 2026-1-3 19:59
2011yaya2007777 发表于 2026-1-2 09:49
ventoy安装时会自动分区,格式化。而grub没有此功能,硬盘必须预先有ext分区。

没有懂这句话,还不到安装的阶段,就是出界面也不行。ventoy试了一下是可以的,可以出现向光盘一样的界面,grub4dos能实现吗。但我还是想用grub4dos.

作者: 2011yaya2007777    时间: 2026-1-3 20:42
本帖最后由 2011yaya2007777 于 2026-1-3 20:44 编辑

这个麒麟iso,使用虚拟机,以uefi方式可以启动成功吗?
作者: 2012huangsheng    时间: 2026-1-5 13:25
2011yaya2007777 发表于 2026-1-3 20:42
这个麒麟iso,使用虚拟机,以uefi方式可以启动成功吗?

没问题,我试了。这个iso文件就是麒麟官网上的。https://iso.kylinos.cn/web_pungi ... 20250430-X86_64.iso  
我试了半天,发现grub2也无法启动。好象就ventoy可以。请yaya大侠看看。
作者: 2011yaya2007777    时间: 2026-1-5 18:33
没问题,我试了。这个iso文件就是麒麟官网上的

find --ignore-floppies --ignore-cd --set-root /Kylin-Desktop-V10-SP1-2503-HWE-PP-Release-20250430-X86_64.iso
map /Kylin-Desktop-V10-SP1-2503-HWE-PP-Release-20250430-X86_64.iso (0xff)
map --hook
chainloader (0xff)
boot

经过测试,无论是UEFI模式,还是Legacy模式,都可以启动到安装界面。
作者: 不点    时间: 2026-1-6 07:36
本帖最后由 不点 于 2026-1-6 08:07 编辑
2011yaya2007777 发表于 2026-1-5 18:33
find --ignore-floppies --ignore-cd --set-root /Kylin-Desktop-V10-SP1-2503-HWE-PP-Release-20250430- ...

居然支持 grub4dos 最基本的 map 光盘的用法,应该说,够良心了。

我猜,当 grub4dos 在实模式完成虚拟光盘启动流程之后,光盘里的 Linux 在保护模式接管控制,此时会有一个步骤,就是查找此 iso 文件的位置,并挂载它到 /mnt/cdrom(也可能是 /media/cdrom 之类的;究竟是哪个挂载点,看 initrd 里面的脚本就知道了),然后才能继续访问这个光盘上的其它文件,完成后续的启动过程。

查找 iso 文件所在位置的程序,一般都是在 initrd 中的某个 shell 脚本里。

有可能这个查找程序只查找根目录下的 iso 文件。如果此 iso 不在根目录,就不会被找到,那么,挂载 iso 的步骤就失败了。

类似地,还有一个可能,就是,查找程序只查找某个特定的文件名,比如,必须叫做 Kylin-Desktop-V10-SP1-2503-HWE-PP-Release-20250430-X86_64.iso,否则它也找不到,无法成功挂载。

再比如,此 iso 所在的文件系统类型(比如 NTFS),不被 Linux 的启动程序支持,也会导致查找过程归于失败。

所有的 Linux 启动光盘,都是这样的。只要在 initrd 的脚本里面能成功找到并挂载 iso, 就能正常启动。否则就失败。

换句话说,只要给 initrd 打补丁(也就是,修改脚本,重新制作 initrd 文件,放进 iso 里面,替换有毛病的 initrd 文件),就可以让任何一个原先无法正常启动的 Linux 的 iso 文件变成能够正常启动。

本例中的 Kylin 系统开发者,算是已经做得很好了。


作者: 2012huangsheng    时间: 2026-1-6 10:22
本帖最后由 2012huangsheng 于 2026-1-6 11:03 编辑
2011yaya2007777 发表于 2026-1-5 18:33
find --ignore-floppies --ignore-cd --set-root /Kylin-Desktop-V10-SP1-2503-HWE-PP-Release-20250430- ...

我按照你说的进行了测试,不行啊。可以出第 一个界面,但后面就无法启动。我把ISO放在ntfs和exfat格式下都试了。因为ISO文件超过4G了。 我什么地方出问题。脚本就按yaya大侠提供的。我试了一下,legacy和UEFI都是一样的错。

1.jpg (147.32 KB, 下载次数: 15)

无法启动

无法启动

2.jpg (110.11 KB, 下载次数: 18)

2.jpg

作者: 不点    时间: 2026-1-6 15:24
2012huangsheng 发表于 2026-1-6 10:22
我按照你说的进行了测试,不行啊。可以出第 一个界面,但后面就无法启动。我把ISO放在ntfs和exfat格式下 ...

这说明 kylin 的 iso 并不支持 grub4dos 的 map。

需要为 kylin 的 iso 打补丁。如果你是 Linux 的开发者,懂得 sh 编程,这是可以做到的。参见前文。

如果没人做这个工作,那就无解,放弃吧。

作者: 2012huangsheng    时间: 2026-1-6 15:29
你遇到的问题是 Ubuntu 24.04 的 casper 系统在启动过程中无法正确找到 ISO 文件,导致安装程序无法加载。错误信息中的 /dev/.initramfs/lupin-waited-for-devs 是旧版 Ubuntu(如 18.04 及更早)中用于等待设备就绪的机制,在新版(尤其是 22.04+)中已不再使用或行为不同。
🔍 问题原因分析
Ubuntu 24.04 不再支持传统的 iso-scan/filename= 启动参数
从 Ubuntu 22.04 开始,官方 ISO 默认 移除了对 iso-scan 模块的支持(即 initrd 中不再包含该功能),因此即使你在内核参数中指定了 iso-scan/filename=...,系统也无法识别并挂载 ISO。
你的 GRUB 配置依赖的是旧式 ISO 启动方式
这种方式适用于 Ubuntu 20.04 及更早版本,但在 22.04/24.04 中失效。
U盘上 ISO 路径虽然存在,但 initramfs 无法访问它
因为 initrd 没有 iso-scan 模块,也无法自动挂载 ISO,所以报“找不到 ISO 文件”。

这是千问中给出的答案,不知道是不是正确。新版不只kylin,ubuntu24.04也是一样的问题。其他的AI给出的答案都不靠谱。也是边试边学习。
作者: 不点    时间: 2026-1-6 15:43
2012huangsheng 发表于 2026-1-6 15:29
你遇到的问题是 Ubuntu 24.04 的 casper 系统在启动过程中无法正确找到 ISO 文件,导致安装程序无法加载。 ...

不要搞什么 AI。不靠谱。

本质上属于 kylin 开发者不能支持 ISO 虚拟光盘。它只支持用真实光驱(USB-CDROM 格式也算是真实光驱)。

grub4dos 负责实模式下的虚拟光驱。进入 Linux 保护模式之后,Linux 需要继续访问这个虚拟的光驱。否则就“断了线”,失去了对虚拟光驱的访问。症结就在这里。所有的异常情况和失败,都是由此引起的。

如果有人愿意去做,这并不困难,无非就是修改 initrd 里面的 shell 的脚本(相当于修复 bug),添加一些查找 iso 的命令,让 mount 能够成功;前面已经说过了。

如果不想折腾,那就放弃。

这不属于 grub4dos 的 bug。

grub4dos 只要启动了 Linux 的 vmlinuz,就完成任务了。后续需要 Linux 本身继续进行 ISO 仿真 CDROM 的工作(前面已经解释过了)。

作者: wintoflash    时间: 2026-1-6 15:47
没人看我上面写的吗?看不见我就再写一遍

这跟g4e无关。问题是Ubuntu的initrd没有加载exfat/ntfs驱动。

把iso所在分区格式化为ext4就可以检验了。
作者: 不点    时间: 2026-1-6 15:57
本帖最后由 不点 于 2026-1-6 16:15 编辑
wintoflash 发表于 2026-1-6 15:47
没人看我上面写的吗?看不见我就再写一遍

这跟g4e无关。问题是Ubuntu的initrd没有加载exfat/ntfs驱动。
...

那样的话,必须修改 initrd 里面的 shell 脚本(就是前面所说的“打补丁”),让它先加载 ntfs 、exfat 驱动。

多年前我做过这个工作,没有什么困难。现在身体不好了,而且也没有时间投入到这里了。


这个问题跟 UEFI、BIOS 无关。失败的情况,本质上是一样的。都是进入 Linux 之后,Linux 试图 mount /dev/cdrom 到某个挂载点(比如 /mnt/cdrom),由于此时没有 /dev/cdrom,所以无法挂载成功。只需找到失败的原因,修改脚本,让它 loop mount 那个 iso 文件到挂载点即可。


作者: 2011yaya2007777    时间: 2026-1-6 16:19
wintoflas在14#中已经说明,是缺少NTFS/exFAT的UEFI驱动。
提供几个NTFS/exFAT驱动,试一试。
示例:
          load /boot/ntfs_x64_0.efi

qd.rar

95.5 KB, 下载次数: 5, 下载积分: 无忧币 -2


作者: wintoflash    时间: 2026-1-6 16:35
2011yaya2007777 发表于 2026-1-6 17:19
wintoflas在14#中已经说明,是缺少NTFS/exFAT的UEFI驱动。
提供几个NTFS/exFAT驱动,试一试。
示例:

这个是uefi的驱动,不是Linux的驱动。Linux也带了驱动,只是驱动加载顺序的问题。
作者: wintoflash    时间: 2026-1-6 16:40
不点 发表于 2026-1-6 16:57
那样的话,必须修改 initrd 里面的 shell 脚本(就是前面所说的“打补丁”),让它先加载 ntfs 、exfat  ...

根本问题是主流发行版根本不重视这个功能。
Ubuntu多年前就存在从loopback挂载的ISO启动后没法正常关机的问题,一直没人修。
这两年Linux内核有了更好的ntfs/exfat驱动,不再需要用以前的垃圾fuse驱动了。但是很多发行版仍然不能exfat上的ISO。
作者: 2011yaya2007777    时间: 2026-1-6 16:45
嗷,理解错了。
作者: 不点    时间: 2026-1-6 17:34
wintoflash 发表于 2026-1-6 16:40
根本问题是主流发行版根本不重视这个功能。
Ubuntu多年前就存在从loopback挂载的ISO启动后没法正常关机 ...

我对 Linux 的热情也已经消退了,年龄、身体状况,兴趣爱好,都是原因。

既然发行版的开发者们都不愿意做这个工作,那就算了吧。

作者: 2012huangsheng    时间: 2026-1-6 20:56
总结一下吧。不管是grub4efi还是grub2,确实是启动了光盘。把启动盘放成EXT4格式后,把IOS放上去Ubuntu的24.04版启动没有问题。如果是extfat或者NTFS格式都不行,这应该是启动到Ubuntu linux后iniramfs不认对应ISO文件的硬盘格式的问题。也是说iso-scan/filename=是有用的。但是kylin换成ext4格式也不行。可能就如上面几位大侠说的,想做的话要必须修改 initrd 里面的 shell 脚本(就是前面所说的“打补丁”),让他挂上iso文件才行。也没有什么更好的方法了。
作者: 1e3e    时间: 2026-1-23 10:03
学习了,麒麟系统还是很强大的国产系统
作者: liuzhaoyzz    时间: 2026-1-28 16:49
本帖最后由 liuzhaoyzz 于 2026-1-28 17:02 编辑

1、你说的麒麟桌面操作系统,指的是优麒麟,还是银河麒麟V10 x86版本?
(1)如果是优麒麟,那就是ubuntu,ubuntu怎么启动,他就怎么启动,启动参数没有太大区别。
ubuntu-desktop-amd64.iso
#grub4dos
title /linux/ubuntu/ubuntu-desktop-amd64.iso
find --ignore-floppies --ignore-cd --set-root /linux/ubuntu/ubuntu-desktop-amd64.iso
map /linux/ubuntu/ubuntu-desktop-amd64.iso (hd32)
map --hook
kernel (hd32)/casper/vmlinuz boot=casper iso-scan/filename=/linux/ubuntu/ubuntu-desktop-amd64.iso noprompt noeject
initrd (hd32)/casper/initrd


(2)如果你指的是银河麒麟v10,这是是混合、杂交、魔改的内核,启动参数变化很大。详见下面的说明:

2、kylin系统在启动过程中从kernel切换到操作系统实模式过程中,它不支持ubuntu的那种"iso-scan/filename="启动参数,在kernel启动过程中就不会挂载iso光盘镜像,会丢失grub4dos在UEFI OS loader启动节段map仿真的iso光盘镜像,busybox就会抛出(initranfs) Unable to find a mediun containing a liue file system的错误,因此如果想用grub4dos uefi,必须搭配grub4dos UEFI的内部命令partnew:
#grub4dos:
title /linux2/kylin/Kylin-Desktop-V10-SP1-Release-2107-x86_64.iso-partnew[not_recommend]
find --ignore-floppies --ignore-cd --set-root /linux2/kylin/Kylin-Desktop-V10-SP1-Release-2107-x86_64.iso
map /linux2/kylin/Kylin-Desktop-V10-SP1-Release-2107-x86_64.iso (hd32) ;; map --hook
set root=%@root% ;; find /boot/grub/wenv | set p= ;; %p%/boot/grub/wenv set x=${root%,},3) ;; partnew %x% 0x00 /linux2/kylin/Kylin-Desktop-V10-SP1-Release-2107-x86_64.iso
kernel (hd32)/casper/vmlinuz boot=casper locale=zh_CN audit=0 security= live --
initrd (hd32)/casper/initrd.lz
上面的菜单用了partnew方案,因此要求iso必须连续存放没有碎片,而且所在的分区必须是MBR主分区,MBR主分区个数小于等于3个。wenv外部命令grub4dos压缩包里面有。partnew方案是个比较危险的方案,上面的菜单不要乱改,否则可能会导致分区丢失。
推荐直接用ventoy。



作者: liuzhaoyzz    时间: 2026-1-28 17:01
2012huangsheng 发表于 2026-1-2 10:50
我用做了实验,,将同样的ubuntu的iso文件放在extfat,fat32,Fat16,NTFS格式下,用grub4efi启动后,只有Fat3 ...

你这说的就不对,
(1)grub4dos已经支持extfat,fat32,Fat16,NTFS这些文件格式读写了的,你在grub4dos环境下在这样子的分区ls下xxx.iso文件,如果有显示,就可以正常读取。这是grub4dos作为OS Loader启动阶段。
(2)ubuntu的iso是否能够启动,主要在于ubuntu的iso里面的kernel/initramfs是否包含extfat,fat32,Fat16,NTFS文件驱动。这是kernel/initramfs/busybox启动阶段。
(3)ubuntu进入实模式之后,ubuntu作为linux发行版当然是有extfat,fat32,Fat16,NTFS fuse或者kernel模式下带来的文件读写驱动。
主要在于第2个阶段对于文件分区支持不好,然后就启动不了。






欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3