无忧启动论坛

 找回密码
 注册
搜索

GRUB2 UEFI 下的磁盘仿真

查看数: 153488 | 评论数: 636 | 收藏 68
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-11-3 09:27

正文摘要:

本帖最后由 wintoflash 于 2021-3-2 19:09 编辑 本项目已停止开发,不再维护。 ----------------------------------------------------------------------- grub2   下载: https://github.com/a1 ...

回复

duhe303 发表于 2023-11-24 21:09:34
感谢分享
softwarezheng 发表于 2023-11-24 18:13:52
谢谢
tanglf 发表于 2023-11-24 17:45:45
谢谢分享
zpiao119 发表于 2023-11-24 16:38:53
初学者前来学习一下,感谢分享
rbwrbw 发表于 2023-10-6 17:25:58
学习了!!!!!!!!!!!
hhhhwwww 发表于 2023-9-13 12:57:43
    用来网启不错,可以支持proxydhcp了,哈哈



JaKTo 发表于 2023-8-14 14:36:12
感谢楼主分享,谢谢!
wintoflash 发表于 2023-8-10 14:36:44
zczc8888 发表于 2023-8-10 11:27
请教下 search -s -f /EFI/Microsoft/Boot/bootmgfw.efi;
chainloader -t /EFI/Microsoft/Boot/bootmgfw. ...

这是你用的主题设置的terminal-box。
https://www.gnu.org/software/gru ... l#Global-Properties
两个思路:要么全屏,要么把大小设为0
zczc8888 发表于 2023-8-10 11:27:48
请教下 search -s -f /EFI/Microsoft/Boot/bootmgfw.efi;
chainloader -t /EFI/Microsoft/Boot/bootmgfw.efi;
这两条命令加载windows系统 时会有先出现一个距屏幕边缘一定距离的黑窗口,然后在到正常的windows 转圈圈的过程,有办法避免这个黑窗口或者减短这个黑窗口时间的办法吗?

点评

这是你用的主题设置的terminal-box。 https://www.gnu.org/software/grub/manual/grub/grub.html#Global-Properties 两个思路:要么全屏,要么把大小设为0  详情 回复 发表于 2023-8-10 14:36
iaanqrm 发表于 2023-5-14 09:28:17
dghgw 发表于 2023-5-14 09:21:21
本帖最后由 dghgw 于 2023-5-14 09:29 编辑
hilsonma 发表于 2019-11-25 15:12
喜欢中文菜单就直接使用中文菜单,不需要特别设置:
menuentry "菜单 1" {
  echo 1

bios下出错是什么问题
seeimpact153 发表于 2023-5-12 03:18:41
谢谢分享
zczc8888 发表于 2023-5-11 17:24:45
Grub2 使用chainloader  后 屏幕上 有输出 Booting /ACPI.......什么的信息,这个怎么不让它显示出来?
chinazhy 发表于 2023-3-28 23:14:51
666
luoshui336 发表于 2023-3-28 19:31:09
不错谢谢分享
jasonwang 发表于 2023-3-6 22:09:55
加载IMG的菜单怎么写
ZMLoveLH 发表于 2022-10-14 16:55:21
看看在 GRUB2 UEFI 下如何进行磁盘仿真啊
liuzhaoyzz 发表于 2022-3-16 17:03:48

iso里面的\grub\loopback.cfg内容如下:
set gfxmode=1024x768,800x600,auto
set gfxpayload=keep
terminal_output gfxterm
loadfont /boot/grub/font.pf2

color_normal=cyan/black
#menu_color_highlight=black/light-gray
menu_color_highlight=yellow/red
menu_color_normal=light-gray/black

menuentry "veket 22.a" {
    linux /vmlinuz pfix=fsck pmedia=cd find_iso=${iso_path}
    initrd /initrd.gz
}
如果加上前面的3行黑体字,保存ISO,然后硬盘里面的菜单\boot\grub2\grub.cfg也用terminal_output gfxterm,好像可以启动,我记不清了。
wintoflash 发表于 2022-3-16 17:00:01
liuzhaoyzz 发表于 2022-3-16 16:44
http://wuyou.net/forum.php?mod=viewthread&tid=420085&extra=page%3D1&page=60
从300楼开始,折腾了 ...
如果修改iso内部的菜单为图形模式,和硬盘的菜单匹配

什么意思 没看懂
liuzhaoyzz 发表于 2022-3-16 16:44:08
本帖最后由 liuzhaoyzz 于 2022-3-16 17:11 编辑
wintoflash 发表于 2022-3-16 16:31
为什么?
图形模式下显示不出来东西?那说明linux内核配置有问题。

http://wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=420085&pid=4243486&fromuid=298214
从300楼开始,到355楼,http://wuyou.net/forum.php?mod=r ... &fromuid=298214折腾了好长时间,最后就是改为文本模式,解决了问题。

图形模式也不是不行,如果修改iso内部的菜单为图形模式,和硬盘的菜单匹配,应该也可以的,我好像试过,忘记了。最主要的问题是各种iso经常更新,iso内部的菜单不受我的控制,所以只有我自己改适配iso。
wintoflash 发表于 2022-3-16 16:31:38
liuzhaoyzz 发表于 2022-3-16 15:45
必须用文本模式,这是因为veket.iso里面默认用的就是文本模式,这一点困扰了我很长的时间,百思不得其解 ...
必须用文本模式,这是因为veket.iso里面默认用的就是文本模式

为什么?
图形模式下显示不出来东西?那说明linux内核配置有问题。
liuzhaoyzz 发表于 2022-3-16 15:45:33
本帖最后由 liuzhaoyzz 于 2022-3-16 15:48 编辑
wintoflash 发表于 2022-3-16 14:50
仔细一看,你在菜单里面就切换到了文本模式:
menuentry "/linux/veket/v22.a-2022.02.02/veket_22.a.is ...

必须用文本模式,这是因为veket.iso里面默认用的就是文本模式,这一点困扰了我很长的时间,百思不得其解,前面的帖子有讨论。puppy.iso也是类似。iso里面的菜单不受我控制,所以我只有修改硬盘的菜单去适应iso内部的二级菜单。

按照你的提示,我改成如下的菜单,亲测可行:
menuentry "/linux/veket/v22.a-2022.02.02/veket_22.a.iso-loopback.cfg" "/linux/veket/v22.a-2022.02.02/veket_22.a.iso" {
terminal_output console;set lang=en_US
search --no-floppy --set --file $2
export iso_path=$2;loopback -d loop;loopback loop $2
set root=loop
configfile (loop)/boot/grub/loopback.cfg
}

QQ截图20220316154612.png (8.8 KB, 下载次数: 240)

QQ截图20220316154612.png
wintoflash 发表于 2022-3-16 14:50:14
liuzhaoyzz 发表于 2022-3-16 10:35
loopback启动菜单最下面一行的提示,因为默认没有加载字库,导致出现乱码现象,这怎么解决?
硬盘里面gr ...

仔细一看,你在菜单里面就切换到了文本模式:
menuentry "/linux/veket/v22.a-2022.02.02/veket_22.a.iso-loopback.cfg" "/linux/veket/v22.a-2022.02.02/veket_22.a.iso" {
terminal_output console
search --no-floppy --set --file $2
export iso_path=$2;loopback -d loop;loopback loop $2
set root=loop
configfile (loop)/boot/grub/loopback.cfg
}
切换到文本模式后,当然没办法显示中文了,与字体无关。
要么保持图形模式,要么把语言设成英文 (set lang=en_US)
ddnflier 发表于 2022-3-16 12:59:03
用用看效果如何
liuzhaoyzz 发表于 2022-3-16 10:35:03
本帖最后由 liuzhaoyzz 于 2022-3-16 10:46 编辑
wintoflash 发表于 2021-11-11 12:40
删掉efifwsetup就行了。
另外示例命令那个不叫编译。

loopback启动菜单最下面一行的提示,因为默认没有加载字库,导致出现乱码现象,这怎么解决?
硬盘里面grub2的菜单/boot/grub.cfg相关内容如下:
set default=1
set fallback=1
set timeout=3
set pager=20
set grub_draw_border=1

#设定菜单字体及背景颜色
set menu_color_normal=white/black
set menu_color_highlight=white/blue

#插入动态模块:保存在$prefix/boot/grub2/i386-pc中
insmod vga
insmod vbe
insmod font
insmod gfxterm
insmod terminal
insmod linux
insmod linux16
insmod iso9660
insmod udf
insmod help
insmod echo
insmod ls
insmod cat
insmod chain
insmod configfile
insmod reboot
insmod halt
insmod gzio
insmod xzio
insmod tar
insmod loopback
insmod part_gpt
insmod regexp
insmod wimboot
insmod ntboot
insmod probe
insmod partnew
insmod test
insmod newc
insmod memdisk
insmod ntldr

set locale_dir=/boot/grub2/locale
set lang=zh_CN
loadfont /boot/grub2/fonts/unicode.pf2
set gfxterm_font=unicode
#set gfxmode=auto,800x600,1024x768
set gfxmode=1024x768,800x600,auto
set gfxpayload=keep
terminal_output gfxterm


menuentry "/linux/veket/v22.a-2022.02.02/veket_22.a.iso-loopback.cfg" "/linux/veket/v22.a-2022.02.02/veket_22.a.iso" {
terminal_output console
search --no-floppy --set --file $2
export iso_path=$2;loopback -d loop;loopback loop $2
set root=loop
configfile (loop)/boot/grub/loopback.cfg
}

上面的主菜单已经加载了字体loadfont /boot/grub2/fonts/unicode.pf2,但是进入loopback启动项之后,会加载iso里面的\grub\loopback.cfg菜单,iso里面的\grub\loopback.cfg内容如下:

loadfont /boot/grub/font.pf2

color_normal=cyan/black
#menu_color_highlight=black/light-gray
menu_color_highlight=yellow/red
menu_color_normal=light-gray/black

menuentry "veket 22.a" {
    linux /vmlinuz pfix=fsck pmedia=cd find_iso=${iso_path}
    initrd /initrd.gz
}

menuentry "veket 22.a - Copy SFS files to RAM" {
    linux /vmlinuz pfix=copy,fsck pmedia=cd find_iso=${iso_path}
    initrd /initrd.gz
}

menuentry "veket 22.a - Don't copy SFS files to RAM" {
    linux /vmlinuz pfix=nocopy,fsck pmedia=cd find_iso=${iso_path}
    initrd /initrd.gz
}

menuentry "veket 22.a - RAM only" {
    linux /vmlinuz pfix=ram,fsck pmedia=cd find_iso=${iso_path}
    initrd /initrd.gz
}

menuentry "veket 22.a - No X" {
    linux /vmlinuz pfix=nox,fsck pmedia=cd find_iso=${iso_path}
    initrd /initrd.gz
}

menuentry "veket 22.a - No KMS (Kernel modesetting)" {
    linux /vmlinuz nomodeset pfix=fsck pmedia=cd find_iso=${iso_path}
    initrd /initrd.gz
}

menuentry "veket 22.a - Ram Disk SHell" {
    linux /vmlinuz pfix=rdsh pmedia=cd find_iso=${iso_path}
    initrd /initrd.gz
}

menuentry "Shutdown" {
        halt
}

menuentry "Reboot" {
        reboot
}


第一行的loadfont /boot/grub/font.pf2,这是个英文字体,不是中文字体,因而显示这个\grub\loopback.cfg菜单二级菜单,左下角会出现乱码现象,如果font.pf2改成unicode.pf2字体,应该可以显示中文。但是问题是iso里面的\grub\loopback.cfg以及他所加载的字体是在iso中,而iso不受我的控制,所以我希望grub2左下角的提示能改成英文字符,而不是用中文字符提示,因为这不是个案,debian,ubuntu之类的可能也存在类似的现象,这个乱码提示虽然不影响启动,但是总觉得不美。

左下角这个提示能否改成英文?是不是需要重新编译grub2?还是有个我不知道的参数可以设置?


左下角乱码现象.png (8.26 KB, 下载次数: 219)

左下角乱码现象.png

QQ截图20220316103713.png (20.97 KB, 下载次数: 213)

QQ截图20220316103713.png
Blan77 发表于 2022-2-10 23:06:16
Thank you for sharing
liuzhaoyzz 发表于 2021-12-21 08:15:12
wintoflash 发表于 2021-11-11 12:40
删掉efifwsetup就行了。
另外示例命令那个不叫编译。

大神有空请看下751楼,http://www.lucky8k.com/forum.php ... d=133372&pid=652600
到758楼http://wuyou.net/forum.php?mod=r ... 8229&fromuid=298214
是怎么回事?高分辨率2880x1800的MAC,找不到/boot/grub/grub.cfg
grubx64.efi是用默认的build.bat生成的。
wintoflash 发表于 2021-11-11 12:40:50
201287zr 发表于 2021-11-10 16:55
为什么按照示例命令编译时,提示efifwsetup模块不存在呢

删掉efifwsetup就行了。
另外示例命令那个不叫编译。
201287zr 发表于 2021-11-10 16:55:23
为什么按照示例命令编译时,提示efifwsetup模块不存在呢

点评

删掉efifwsetup就行了。  详情 回复 发表于 2021-11-11 12:40
wintoflash 发表于 2021-9-14 13:58:22
求道者 发表于 2021-9-14 12:49
传统BIOS下无法使用map命令?

没必要开发。

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-26 20:01

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表