本帖最后由 2011niumao 于 2017-1-18 10:34 编辑 不知 发表于 2017-1-7 00:24 grub2有一个命令 loopback 可以满足只用一个文件的要求。一个菜单样式
|
2011niumao 发表于 2017-1-17 21:23 谢谢 |
建议 fstab文件中 根文件系统使用UUID方式,而不是/dev/loop0。 建议到以下链接下载 vmlinuz initrd.img两个文件,放在img文件外面,使用他们引导,同时把 引导参数 loop=XXX 改为kloop=XXX 引导试试。 https://pan.baidu.com/s/1c19AJQC#list/ 这个是kloop模式引导。最初设计kloop就让它兼容了WUBI模式了。只是把loop参数改名为kloop了。 (可以加入引导参数 kroot=/dev/loop0 ,也可以不加。) |
楼主这里的问题是使用了loop模式,就是传统的UBUNTU的WUBI安装方式了。这里主要问题是img文件太大,没有连续存放。 需要使用碎片整理软件dfsetup 或者 WContig 作一次碎片整理 ,可能可以解决问题。 另一种方法也可以把引导文件,/boot/vmlinuz-XXXX,/boot/initrd.img-XXXXX 拿出来,使用grub4dos来引导,不需要整理碎片。 |
不点 发表于 2017-1-7 13:19 谢谢,大概吧,我确实不知道问题出在哪儿。 |
不点 发表于 2017-1-7 10:47 谢谢,我试试。 |
不知 发表于 2017-1-7 08:26 你先做个试验,把这个文件放在普通的 FAT32 或 NTFS 分区,再用 map ,看看是否可以成功。试验的目的是判断出,grub4dos 在访问 ext4 下的文件时,究竟是否有 bug。 你可以试试 0.4.5c 和 0.4.6a 两个版本系列,确定是否都有 bug。 |
不点 发表于 2017-1-7 00:04 万分感谢,可能是我表达不清。我的意思是G4D无法访问mkfs.ext4做的镜像文件。该文件在linux下可以正常挂载,我把镜像文件里的vmlinuz和initrd.img提取出来并启动,可以看见linux已经把镜像文件作为根文件系统挂载了。linux有强大的启动文件处理功能,可以不用G4D虚拟设备。但是这样除了引导文件就有三个文件了,系统一更新内核就要重新提取vmlinuz和initrd.img了。我想除了引导文件只保留一个文件,但是G4D无法读取镜像文件里的vmlinuz和initrd.img。另外,我用的是vmware测试的。 |
反复看了半天,总算隐隐约约猜出你的意思了。以下就按我所猜测到的意思去理解和回复。 你说的大概就是“Linux 无法识别 grub4dos 虚拟出来的盘”吧?很遗憾,你现在才知道这一点。 grub4dos 的虚拟盘,仅仅在 bios(CPU 实模式)阶段起作用,在保护模式下不起作用。 当 Linux 刚开始启动时,仍处于 BIOS 阶段,此时,grub4dos 的虚拟盘仍然有效。但当 Linux 进入保护模式以后,已经完全脱离 BIOS 了,也就不会再识别出 grub4dos 所建立的虚拟盘了。 你知道 firadisk 和 WinvBlock 吗?这两位作者的工作,就是让 grub4dos 的虚拟盘能够被保护模式下的 Windows 识别出来的。如果没有这两个驱动程序,Windows 照样不能识别 grub4dos 的虚拟盘。 我讲清楚了吗?希望如此。 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.