无忧启动论坛

标题: grub2,grub4dos,ntboot使用求教 [打印本页]

作者: rgiskard    时间: 2013-12-18 17:19
标题: grub2,grub4dos,ntboot使用求教
折腾启动引导快两星期了,还有好几个问题没解决,不多说,求教


u盘分了两个区,第二个区放所有启动文件,作为安全策略之一

u盘mbr写的grub2,pbr不想动,向通过grub2启动msdn的windows安装光盘镜像,,loopback似乎仅对linux好用,后来找来syslinux的memdisk,解决了 软盘镜像 和 大部分pe镜像的启动问题(对后者不满意,一个是加载速度慢,还没进度显示,再一个就是,xp原版镜像这个尺度大小的iso用它似乎已经没办法了),后来只好求助于grub4dos(版本0.4.6a),由grub2 启动,引导如下:

                linux /$grub4dos_dir/grub.exe --config-file="root=(hd0,1);configfile(hd0,1)/boot/grub/'grub4dos-0.4.6a'/menu/menu.lst"

遗憾的是,直接进入bash命令行,有帖子说这个参数传递好像有bug,引号里的configfile无效,可以直接把命令写到引号里,不过这样菜单就太复杂了,也不方便,不喜欢这样的,目前这个问题还没解决(希望还可以让menu.lst文件所处目录不受限制),求大神指教

手动configfile后,继续grufordos map启动镜像文件,这个map命令确实高效,尽管有危险(grubfordos的磁盘仿真说明,http   biancheng点dnbcw点info斜杠linux斜杠250149.html),虽然基本可以map所有linux可启动光盘镜像,pe镜像,windows安装镜像,但还是不太满意,原因如下,,如不加载至内存对文件存储连续性有要求,加载至内存又还是慢(虽然有了加载进度显示),对windows安装镜像而言,需要加载驱动,又找来firadisk,还是蓝屏,,,再加上本来希望能启动vhd系统的,而map似乎也到极限了,于是乎又发现了ntboot,似乎这个东西对windows相关的启动支持的很不错,可无奈ntboot的资料不好找,最近又比较忙,不太有时间折腾这个,求教ntboot教程!,,

        这个是我找到ntboot工具的地方,看了下发现天空pe用得也是ntboot,地址在这:三w点chenall点net斜杠post斜杠ntboot斜杠

总的来说目前的两个问题是grub2启动grub4dos的grub.exe会直接进入命令行,,ntboot不会用,求指导

作者: rgiskard    时间: 2013-12-18 17:20
不能发url,文字代替,求解答啊
作者: 不点    时间: 2013-12-18 17:30
你的命令行写的不认真,有明显错误。

configfile 之后没有空格,这是错误之一。

configfile 后面的左括号 "( " 是中文的宽字符,不是英文的窄字符,这也是错误的。

另一方面,grub2 不能传递正确的命令行给 grub4dos。你需要(事先)用一个 grub2 的变量来保存 grub4dos 的命令行参数,然后在 linux 一行的命令行中使用该变量即可。


作者: rgiskard    时间: 2013-12-18 18:01
不点 发表于 2013-12-18 17:30
你的命令行写的不认真,有明显错误。

configfile 之后没有空格,这是错误之一。


menuentry "grub for dos-->" {
        search --fs-uuid --set=root 0E29-0FB1
        linux /$grub4dos_dir/grub.exe --config-file="root=(hd0,1);configfile (hd0,1)/boot/grub/'grub4dos-0.4.6a'/menu/menu.lst"
}

用得notepad++,小狼毫输入法,格式可以确定绝对没问题

之前看到过一个帖子,传递参数那个试过一次,没成功,具体细节忘了,我再试试

谢谢啦!
作者: rgiskard    时间: 2013-12-18 18:37
不点 发表于 2013-12-18 17:30
你的命令行写的不认真,有明显错误。

configfile 之后没有空格,这是错误之一。

还是不行,换用0.4.4的#段测试也不行,我的菜单

menuentry "grub for dos-->" {
        search --fs-uuid --set=root 0E29-0FB1
#        set config_cmd="root=(hd0,1);configfile (hd0,1)/boot/grub/'grub4dos-0.4.6a'/menu/menu.lst"
#        linux /$grub4dos_dir/grub.exe --config-file=$config_cmd
        set config_cmd="root (hd0,1); configfile (hd0,1)/boot/grub/menu.lst"
        linux /boot/grub/grub.exe --config-file=$config_cmd
}

虽然可以了(0.4.6a未测试,是否是文件夹路径的问题还没测试),但返回grub2时提示fallback+1,......出错返回不了,而且font没有加载成,手动configfile时可用啊

这是我的menu.lst的前一段
#start menu.lst

default=0
timeout=32
default /default
write 0x8274 0x2001
calc *0x7c03=0x00736E6F63646D63
savedefault --wait=2

find --set-root --ignore-floppies --ignore-cd /boot/grub/grub4dos-0.4.6a/grub.exe
#configfile /boot/grub/grub4dos-0.4.6a/menu/head.lst

graphicsmode -1 640:800
font /boot/grub/grub4dos-0.4.6a/menu/unifont.hex.gz

title back to grub2
  fallback +1
  find --set-root --ignore-floppies --ignore-cd /boot/grub/i386-pc/grub/i386-pc/core.img
  kernel /boot/grub/i386-pc/grub/i386-pc/core.img


作者: rgiskard    时间: 2013-12-18 21:45
现在--config-file的大部分问题解决了,与所处目录和这两个grub的版本无关,需要把--config-file=后全部用变量替换,现在又想起了几个问题,, 1,config-file后的别的命令都有效就configfile有bug?,, 2,那个定义的变量是仅在{}之间或一个文件之内(对configfile的文件无效)有效吗?,,, 3,把那个视频模式设置及calcu还有write语句写在别的文件,想在grub.exe载入menu.lst后再config那个文件,执行完后回到menu.lst,为什么会出错,对那个2k的default文件还不太明白 4,在menu.lst里configfile进入下层选单后,esc键无法回到menu.lst,为什么呢?




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