无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 30345|回复: 102
打印 上一主题 下一主题

[原创] dnsmasq设置bios和uefi双启动多引导菜单(完美)

  [复制链接]
跳转到指定楼层
1#
发表于 2019-10-9 13:50:44 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 星体投射 于 2019-10-11 07:48 编辑

按F8手动选菜单,不按自动加载第一项,并实现自动ipxe加载菜单(网启目录下放ipxemenu.txt),ipxe可以直接用官方的文件,无需编译内置菜单

dnsmasq的UEFI网启非常古怪,反复捉摸网上的各种别人写的菜单,最终总结只能这么写

小技巧:openwrt 路由器上一般都是u盘和sd卡上放网启目录,可以把该目录软链接到/www下就实现了http服务,方便用ipxe的http启动
  1.        ln -s /mnt/sda1/pxeboot /www/pxeboot
复制代码


dnsmasq版本2.76以上
dnsmasq.conf配置
  1. enable-tftp
  2. tftp-lowercase
  3. dhcp-no-override
  4. tftp-root=/mnt/sda1/pxeboot

  5. dhcp-match=set:iPXE,175

  6. dhcp-vendorclass=set:flag,PXEClient:Arch:00000
  7. dhcp-vendorclass=set:flag,PXEClient:Arch:00006
  8. dhcp-vendorclass=set:flag,PXEClient:Arch:00007
  9. dhcp-vendorclass=set:flag,PXEClient:Arch:00009

  10. tag-if=set:load,tag:!iPXE,tag:flag

  11. pxe-prompt="Press F8 or Enter key for PXE menu.", 5
  12. #BIOS MENU
  13. pxe-service=tag:load,X86PC, "BIOS ipxe undionly", undionly.kpxe
  14. pxe-service=tag:load,X86PC, "BIOS ipxe.pxe", ipxe.pxe
  15. pxe-service=tag:load,X86PC, "BIOS Microsoft PXE", pxeboot.n12
  16. pxe-service=tag:load,X86PC, "boot from local", 0
  17. #UEFI MENU
  18. pxe-service=tag:load,IA32_EFI, "Microsoft UEFI (IA32_EFI)", bootia32.efi
  19. pxe-service=tag:load,X86-64_EFI, "Microsoft UEFI (X86-64_EFI)", bootx64.efi
  20. pxe-service=tag:load,BC_EFI, "Microsoft UEFI(BC-EFI)", bootx64.efi
  21. pxe-service=tag:load,6, "iPXE snponly UEFI32(6)", snponly32.efi
  22. pxe-service=tag:load,7, "iPXE snponly UEFI(7)", snponly.efi
  23. pxe-service=tag:load,9, "iPXE snponly UEFI(9)", snponly.efi
  24. pxe-service=tag:load,06,  "iPXE UEFI32(06)", ipxe32.efi
  25. pxe-service=tag:load,07,  "iPXE UEFI(07)", ipxe.efi
  26. pxe-service=tag:load,09,  "iPXE UEFI(09)", ipxe.efi

  27. dhcp-boot=tag:iPXE,ipxemenu.txt
复制代码


bios加菜单很简单
uefi加菜单方法:
比如添加grub2的64位efi,如下多加个0
pxe-service=tag:load,007,  "GRUB2 UEFI(007)", grub2.efi
pxe-service=tag:load,009,  "GRUB2 UEFI(009)", grub2.efi

评分

参与人数 1无忧币 +1 收起 理由
tansuo + 1 为不断探索学习赞一个!

查看全部评分

2#
 楼主| 发表于 2019-10-11 15:06:09 | 显示全部楼层
chenall 发表于 2019-10-11 14:39
我目前使用的配置.(后面的192.168.103.15是因为我DHCP和TFTP服务器是分开的,同一台可以不用)

使用VMWARE ...

他写的EFI根本不会引导,EFI想要出菜单,只能按我的方法写
必须至少写两项才行,X86-64_EFI和7,单独写其中一个都不会引导,非常神奇
回复

使用道具 举报

3#
 楼主| 发表于 2019-10-11 19:53:49 | 显示全部楼层
cckp 发表于 2019-10-11 19:03
dnsmasq对pxe的支持比较差,那个菜单什么的,没啥用。现在有ipxe grub等各种loader更高级的菜单 抛弃旧的吧

这菜单是在加载引导文件之前就给你选择,很有用的,已知ipxe的efi引导文件在某些机器上加载会死机(你有更高级的菜单也无用武之地了),这时就可以马上重启机器换别的引导文件,而不用跑服务器上去改引导文件,而且不受secure boot开关影响
回复

使用道具 举报

4#
 楼主| 发表于 2019-12-12 14:37:55 | 显示全部楼层
a1379388505 发表于 2019-12-12 14:32
求助openwrt的dnsmasq配置在/etc/config/dhcp中,我改写了一下不生效
把内容写到config dnsmasq段以下

我的是改etc/dnsmasq.conf
另外我不用这个方法了,因为遇到有实体机不兼容
还是用tiny pxe 吧 右键切换配置文件来切换引导
回复

使用道具 举报

5#
 楼主| 发表于 2019-12-12 14:42:42 | 显示全部楼层
a1379388505 发表于 2019-12-12 14:41
非常感谢指导,请问我用的openwrt  可以用 tiny pxe吗 我百度经常没找到openwrt 和 tiny pxe在一起的文章

任何路由器都可以,路由器不用设置,tiny pxe 设置勾选Proxy DHCP即可
回复

使用道具 举报

6#
 楼主| 发表于 2019-12-12 15:02:59 | 显示全部楼层
a1379388505 发表于 2019-12-12 14:58
我百度到的我用的Tiny PXE Serve是一个exe的windows程序,而我是用的openwrt里面的tftp启动的ipxe来无盘 ...

那你用9楼的那个方法吧,我不用openwrt是因为切换引导不方便
回复

使用道具 举报

7#
 楼主| 发表于 2019-12-12 19:38:41 | 显示全部楼层
config userclass
        option networkid 'set:ipxe'
        option userclass 'iPXE'
config boot
        option filename         'tag:ipxe,menu.txt'
        option serveraddress    '10.0.0.1'
        option servername       'router'

评分

参与人数 1无忧币 +5 收起 理由
a1379388505 + 5 赞一个!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-26 22:07

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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