无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 星体投射

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

  [复制链接]
发表于 2019-12-14 16:52:19 | 显示全部楼层
江南一根葱 发表于 2019-12-14 16:36
禁上网多简单啊,方法千千万,不知道你是啥环境

我找到一个方法,在hdcp的时候就不分配网关
但是设置不成功不知道这个不分配网关怎么设置
我是这样留空网关的 但是结果是dhcp都不给了,不知道想设置空网关应该填什么
  1. config host
  2.         option dns '1'
  3.         option mac '20:cf:30:5e:0f:64'
  4.         option ip '10.0.0.6'
  5.         option name 'ASUS'
  6.         option tag 'need_outernet'

  7. config tag 'need_outernet'
  8.         list dhcp_option '3,'
  9.         option force '1'
复制代码
回复

使用道具 举报

发表于 2019-12-14 17:03:56 | 显示全部楼层
本帖最后由 a1379388505 于 2019-12-14 17:19 编辑
江南一根葱 发表于 2019-12-14 16:36
禁上网多简单啊,方法千千万,不知道你是啥环境

万分感谢!折腾了快一周了现在终于禁掉了 在win系统里面不管怎么设置都不能断网,我怀疑应该是底层pxe启动的时候分配的ip信息有关
现在在openwrt的dhcp里面不分配网关和dns就彻底断网了代码如下
  1. config host
  2.         option dns '1'
  3.         option mac '20:cf:30:5e:0f:64'
  4.         option ip '10.0.0.6'
  5.         option name 'ASUS'
  6.         option tag 'need_outernet'

  7. config tag 'need_outernet'
  8.         list dhcp_option '3'
  9.         list dhcp_option '6'
  10.         option force '1'
复制代码


回复

使用道具 举报

发表于 2019-12-14 17:44:34 | 显示全部楼层
本帖最后由 a1379388505 于 2019-12-14 17:50 编辑
hkkitlee 发表于 2019-12-14 16:36
那只是用什麼protocol 掛載目標系統根目錄的問題吧

不对 哭死了
都禁到这样了,只是网址打不开了,iP还是可以打开网页!
网卡的网络信息里面只有ip地址和dhcp地址,网关和dns都是空的

结果打开百度的ip地址竟然还能正常访问网页。。。
回复

使用道具 举报

发表于 2019-12-14 17:56:52 | 显示全部楼层
江南一根葱 发表于 2019-12-14 16:36
禁上网多简单啊,方法千千万,不知道你是啥环境

不对 哭死了
都禁到这样了,只是网址打不开了,iP还是可以打开网页!

网卡的网络信息里面只有ip地址和dhcp地址,网关和dns都是空的

结果打开百度的ip地址竟然还能正常访问网页。。。

我的环境是:
openwrt作为路由器,提供dhcp服务,网关等
一台群晖nas提供tftp服务和iscsi服务。
电脑系统是win7
我把win7的ipv4去掉内网都连不上了 但是还能打开网页,网卡禁掉都没有可用网卡了还是可以打开网页。
我在openwrt中设置了禁止这台电脑的所有访问wan的包都丢弃或者拒绝,还是可以打开网页。
我按照hkkitlee大的说法不分配网关,我连dns 网关都为空了 ,还是可以打开ip的网页,只是网址的不能解析了。

点评

那你的openwrt有firewall,就可以用來「禁斷網絡」。 我之前說的protocol 指的是藍屏,不是斷網  详情 回复 发表于 2019-12-14 21:10
你电脑上执行 route delete 0.0.0.0 route add 0.0.0.0 mask 0.0.0.0 一个不存在的同网段ip -p 我不信还能上网。。。  详情 回复 发表于 2019-12-14 18:05
回复

使用道具 举报

发表于 2019-12-14 18:05:43 | 显示全部楼层
a1379388505 发表于 2019-12-14 17:56
不对 哭死了
都禁到这样了,只是网址打不开了,iP还是可以打开网页!

你电脑上执行
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 一个不存在的同网段ip -p

我不信还能上网。。。



route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 192.168.1.2 -p

点评

今天我另一台电脑需要禁网 我用了 route delete 0.0.0.0 route add 0.0.0.0 mask 0.0.0.0 10.0.0.254 -p 查看路由表0000ip的网关也只有 10.0.0.254 这一个了 但是网页还是可以打开 只是巨慢 而且网页残破不全  详情 回复 发表于 2019-12-22 19:23

评分

参与人数 1无忧币 +5 收起 理由
a1379388505 + 5 很给力!

查看全部评分

回复

使用道具 举报

发表于 2019-12-14 18:14:27 | 显示全部楼层
本帖最后由 a1379388505 于 2019-12-14 18:16 编辑
江南一根葱 发表于 2019-12-14 18:05
你电脑上执行
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 一个不存在的同网段ip -p

哈哈哈哈 非常感谢你的提醒 我想起我以前为了断网好像设置过永久网关,我先用了route print 发现我以前真设置了永久网关  不过奇怪的是永久网关是10.0.0.6,并不是真正的网关10.0.0.1,但是确实可以上网,然后我route -f 重启电脑终于不能上网了
回复

使用道具 举报

发表于 2019-12-14 21:10:51 | 显示全部楼层
a1379388505 发表于 2019-12-14 17:56
不对 哭死了
都禁到这样了,只是网址打不开了,iP还是可以打开网页!

那你的openwrt有firewall,就可以用來「禁斷網絡」。

我之前說的protocol 指的是藍屏,不是斷網
回复

使用道具 举报

发表于 2019-12-15 14:31:45 | 显示全部楼层
hkkitlee 发表于 2019-12-14 21:10
那你的openwrt有firewall,就可以用來「禁斷網絡」。

我之前說的protocol 指的是藍屏,不是斷網

openwrt的firewall禁不住他 各种禁止都不行 可能跟底层pxe启动有关,最后按照你说的不分配网关和dns解决的

点评

能用就好  详情 回复 发表于 2019-12-15 15:07
回复

使用道具 举报

发表于 2019-12-15 15:07:26 | 显示全部楼层
a1379388505 发表于 2019-12-15 14:31
openwrt的firewall禁不住他 各种禁止都不行 可能跟底层pxe启动有关,最后按照你说的不分配网关和dns解决 ...

能用就好
回复

使用道具 举报

发表于 2019-12-22 19:23:17 | 显示全部楼层
江南一根葱 发表于 2019-12-14 18:05
你电脑上执行
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 一个不存在的同网段ip -p

今天我另一台电脑需要禁网
我用了
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 10.0.0.254 -p

查看路由表0000ip的网关也只有 10.0.0.254 这一个了
但是网页还是可以打开 只是巨慢 而且网页残破不全,最后终于找到原因了,竟然是是走了ipv6

点评

以前是上不了网找原因,现在是上得了网找原因啊。。  详情 回复 发表于 2019-12-22 20:23
回复

使用道具 举报

发表于 2019-12-22 20:23:37 | 显示全部楼层
a1379388505 发表于 2019-12-22 19:23
今天我另一台电脑需要禁网
我用了
route delete 0.0.0.0

以前是上不了网找原因,现在是上得了网找原因啊。。

点评

哈哈哈哈哈哈哈哈 被阿里逼的,这边电商部门的特殊需求,有几个电脑需要分别登陆不能的店铺账号,要求外网ip不能是相同的,本来网线拉了好几条但是麻烦在于这几个电脑都是无盘系统 这个无盘系统还给其他电脑提供连接  详情 回复 发表于 2019-12-22 20:43
回复

使用道具 举报

发表于 2019-12-22 20:43:09 | 显示全部楼层
本帖最后由 a1379388505 于 2019-12-22 21:52 编辑
江南一根葱 发表于 2019-12-22 20:23
以前是上不了网找原因,现在是上得了网找原因啊。。

哈哈哈哈哈哈哈哈 被阿里逼的,这边电商部门的特殊需求,有几个电脑需要分别登陆不能的店铺账号,要求外网ip不能是相同的,本来网线拉了好几条但是麻烦在于这几个电脑都是无盘系统 这个无盘系统的网关还给其他电脑提供连接外网的服务。。。所以要禁掉无盘的这跟网线的外网 使用专线连接外网
回复

使用道具 举报

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

使用VMWARE ...

dhcp-vendorclass跟dhcp-match有啥区别 我看语法有点差别但是功能都一样  我群晖内置的默认是dhcp-vendorclass 我纠结是按照dhcp-vendorclass继续写还是都注释掉改成dhcp-match
回复

使用道具 举报

发表于 2020-1-5 16:06:17 | 显示全部楼层
a1379388505 发表于 2019-12-12 14:58
我百度到的我用的Tiny PXE Serve是一个exe的windows程序,而我是用的openwrt里面的tftp启动的ipxe来无盘 ...

这个不是用那个tiny来启动的,你只需要改openwrt的dnsmasq文件,就可以网启的时候自动选择bios或者uefi了

点评

嗯嗯 我已经改成功了 非常感谢!  详情 回复 发表于 2020-1-5 18:28
回复

使用道具 举报

发表于 2020-1-5 18:28:40 | 显示全部楼层
2013dgyangxf 发表于 2020-1-5 16:06
这个不是用那个tiny来启动的,你只需要改openwrt的dnsmasq文件,就可以网启的时候自动选择bios或者uefi了 ...

嗯嗯 我已经改成功了 非常感谢!
回复

使用道具 举报

发表于 2020-1-5 21:27:07 | 显示全部楼层
感谢大神
回复

使用道具 举报

发表于 2020-4-23 00:03:02 | 显示全部楼层
使用局域网(非网关)tftp服务,要怎么修改配置?
回复

使用道具 举报

发表于 2021-5-13 22:11:23 | 显示全部楼层
非常感谢!我第一次接触ipxe,有小白问题要请教。

1.你说ipxe可以直接用官方的文件,但我点击了http://boot.ipxe.org/,并没有发现bootia32.efi,bootx64.efi和ipxe32.efi。
2.在哪里配置菜单文件,能否提供一个样本用于启动win10pe.iso(或win10pe.wim。
回复

使用道具 举报

发表于 2021-5-13 22:19:37 | 显示全部楼层
学习了,多谢分享。
回复

使用道具 举报

发表于 2021-10-16 15:16:38 | 显示全部楼层
本帖最后由 liquanyi 于 2021-10-16 15:33 编辑

我的方法很简单,在/etc/dnsmasq.conf里面添加如下内容,不用修改ipxe的内置菜单,直接加载ipxe后第二次加载menu.ipxe菜单,然后菜单根据变量判断生成BIOS或EFI32或EFI64的菜单
  1. enable-tftp
  2. tftp-root=/opt/tftpboot
  3. dhcp-userclass=set:ipxe,iPXE
  4. dhcp-match=set:pcbios,option:client-arch,0
  5. dhcp-match=set:efi-x86,option:client-arch,6
  6. dhcp-match=set:efi-x86_64,option:client-arch,7
  7. dhcp-match=set:efi-x86_64,option:client-arch,9
  8. dhcp-match=set:efi-arm32,option:client-arch,10
  9. dhcp-match=set:efi-arm64,option:client-arch,11
  10. dhcp-boot=tag:!ipxe,tag:pcbios,"undionly.kpxe"
  11. dhcp-boot=tag:!ipxe,tag:efi-x86_64,"snponly.efi"
  12. dhcp-boot=tag:!ipxe,tag:efi-x86,"snponly32.efi"
  13. dhcp-boot=tag:ipxe,tag:pcbios,"menu.ipxe"
  14. dhcp-boot=tag:ipxe,tag:efi-x86_64,"menu.ipxe"
  15. dhcp-boot=tag:ipxe,tag:efi-x86,"menu.ipxe"
复制代码


menu.ipxe菜单文件如下
  1. #!ipxe

  2. set base-url http://openwrt.lan/wwwboot
  3. set menu-timeout 10000
  4. set kspath ${base-url}/kickstarts
  5. cpuid --ext 29 && set arch x86_64 || set arch i386
  6. set start_menu ${platform}_${buildarch}_menu
  7. echo ${start_menu}
  8. goto ${start_menu}

  9. :pcbios_x86_64_menu
  10. goto pcbios_i386_menu

  11. :pcbios_i386_menu
  12. menu My iPXE Boot Menu ${buildarch}_${platform}
  13. set menu-default win10x64
  14. item --gap Linux series
  15. item centos7 --CentOS 7
  16. item debian10 --Debian 10
  17. item --gap Windows series
  18. item win8x32 --Win8 PE x32
  19. item win10x64 --Win10 PE x64
  20. item HardDisk --From hard disk
  21. item --gap Dos series
  22. item mhdd46 --mhdd4.6
  23. item custom_exit --Exit

  24. choose --timeout ${menu-timeout} --default ${menu-default} selected
  25. goto ${selected}

  26. :efi_x86_64_menu
  27. menu My iPXE Boot Menu ${buildarch}_${platform}
  28. set menu-default win10x64
  29. item --gap Linux series
  30. item centos7 --CentOS 7
  31. item debian10 --Debian 10
  32. item --gap Windows series
  33. item win10x64 --Win10 PE x64
  34. item grub2 --Grub2 Shell
  35. item HardDisk --From hard disk

  36. choose --timeout ${menu-timeout} --default ${menu-default} selected
  37. goto ${selected}

  38. :efi_i386_menu
  39. menu My iPXE Boot Menu ${buildarch}_${platform}
  40. set menu-default win8x32
  41. item --gap Windows series
  42. item win8x32 --Win8 PE x32
  43. item HardDisk --From hard disk

  44. choose --timeout ${menu-timeout} --default ${menu-default} selected
  45. goto ${selected}

  46. :shell
  47. echo Type 'Exit' to get the back to the menu
  48. shell
  49. goto ${start_menu}

  50. :failed
  51. echo Booting failed, dropping to shell
  52. goto shell

  53. :reboot
  54. reboot

  55. :HardDisk
  56. exit

  57. :localdisk
  58. sanboot --no-describe --drive 0x80

  59. :centos7
  60. kernel ${base-url}/centos7.4/isolinux/vmlinuz ip=dhcp ks=${kspath}/Centos-7.x-min.cfg repo=${base-url}/centos7.4
  61. initrd ${base-url}/centos7.4/isolinux/initrd.img
  62. boot || goto failed

  63. :debian10
  64. kernel ${base-url}/debian/buster/amd64/linux initrd=initrd.gz
  65. initrd ${base-url}/debian/buster/amd64/initrd.gz
  66. boot || goto failed

  67. :debian10-i386
  68. kernel ${base-url}/debian/buster/i386/linux initrd=initrd.gz
  69. initrd ${base-url}/debian/buster/i386/initrd.gz
  70. boot || goto failed

  71. :win8x32
  72. kernel wimboot.${buildarch}
  73. initrd --name bootmgr.exe ${base-url}/boot/bootmgr.exe bootmgr.exe
  74. initrd --name bootmgfw.efi ${base-url}/boot/bootmgfw32.efi bootmgfw.efi
  75. initrd --name BCD ${base-url}/boot/bcd BCD
  76. initrd --name boot.sdi ${base-url}/boot/boot.sdi boot.sdi
  77. initrd --name boot.wim ${base-url}/sources/WEPE32.WIM boot.wim
  78. boot || goto failed

  79. :win10x64
  80. kernel wimboot.${buildarch}
  81. initrd --name bootmgr.exe ${base-url}/boot/bootmgr.exe bootmgr.exe
  82. initrd --name bootmgfw.efi ${base-url}/boot/bootmgfw.efi bootmgfw.efi
  83. initrd --name BCD ${base-url}/boot/bcd BCD
  84. initrd --name boot.sdi ${base-url}/boot/boot.sdi boot.sdi
  85. initrd --name boot.wim ${base-url}/sources/WEPE64.WIM boot.wim
  86. boot || goto failed

  87. :grub2
  88. kernel ${base-url}/boot/GRUBShell.efi
  89. boot || goto failed

  90. :mhdd46
  91. kernel ${base-url}/boot/memdisk
  92. initrd ${base-url}/boot/mhdd46.ima
  93. boot || goto failed

复制代码

点评

大佬,太感谢你了,这正是我要找的。能提供包括ipxe的模板文件下载吗?另外能否支持ftp?  详情 回复 发表于 2021-10-16 22:28
回复

使用道具 举报

发表于 2021-10-16 15:45:35 | 显示全部楼层
效果

efi64.PNG

efi32.PNG

bios.PNG


回复

使用道具 举报

发表于 2021-10-16 22:28:00 | 显示全部楼层
liquanyi 发表于 2021-10-16 15:16
我的方法很简单,在/etc/dnsmasq.conf里面添加如下内容,不用修改ipxe的内置菜单,直接加载ipxe后第二次加 ...

大佬,太感谢你了,这正是我要找的。能提供包括ipxe的模板文件下载吗?另外能否支持ftp?

点评

启动PE由于大多数PE精简了启动所需文件,所以需要从官方winre.wim或boot.wim里面提取后放http目录 注意把32位的bootmgfw.efi改名为bootmgfw32.efi  详情 回复 发表于 2021-10-16 23:53
pxe启动ipxe与拿配置文件用tftp,后面用http  详情 回复 发表于 2021-10-16 23:28
回复

使用道具 举报

发表于 2021-10-16 23:28:47 | 显示全部楼层
tigerhuang 发表于 2021-10-16 22:28
大佬,太感谢你了,这正是我要找的。能提供包括ipxe的模板文件下载吗?另外能否支持ftp?

pxe启动ipxe与拿配置文件用tftp,后面用http

点评

我的HTTP有其他用途,不支持FTP吗?  详情 回复 发表于 2021-10-17 00:40
回复

使用道具 举报

发表于 2021-10-16 23:53:59 | 显示全部楼层
tigerhuang 发表于 2021-10-16 22:28
大佬,太感谢你了,这正是我要找的。能提供包括ipxe的模板文件下载吗?另外能否支持ftp?

启动PE由于大多数PE精简了启动所需文件,所以需要从官方winre.wim或boot.wim里面提取后放http目录
注意把32位的bootmgfw.efi改名为bootmgfw32.efi
tftpboot.7z (261.45 KB, 下载次数: 5)
回复

使用道具 举报

发表于 2021-10-17 00:40:37 | 显示全部楼层
本帖最后由 tigerhuang 于 2021-10-17 01:04 编辑
liquanyi 发表于 2021-10-16 23:28
pxe启动ipxe与拿配置文件用tftp,后面用http

我知道tftp是启动以及拿配置用的,不能少。我的HTTP有其他用途,能改为支持FTP(不是tftp)下载镜像文件吗?

点评

应该审计可以的,你把set base-url http://openwrt.lan/wwwboot改成set base-url ftp://你的ftp目录试试  详情 回复 发表于 2021-10-17 02:09
回复

使用道具 举报

发表于 2021-10-17 02:09:26 | 显示全部楼层
tigerhuang 发表于 2021-10-17 00:40
我知道tftp是启动以及拿配置用的,不能少。我的HTTP有其他用途,能改为支持FTP(不是tftp)下载镜像文件吗 ...

应该可以的,你把set base-url http://openwrt.lan/wwwboot改成set base-url ftp://你的ftp目录试试

点评

这两天在忙,没上网。 谢谢,我尽快测试后再汇报结果。  详情 回复 发表于 2021-10-18 20:50
回复

使用道具 举报

发表于 2021-10-18 20:50:25 | 显示全部楼层
本帖最后由 tigerhuang 于 2021-10-18 23:28 编辑
liquanyi 发表于 2021-10-17 02:09
应该可以的,你把set base-url http://openwrt.lan/wwwboot改成set base-url ftp://你的ftp目录试试

抱歉,前两天在忙,没上网。

请问,你的附件里我只看到snponly32.efi,没有snponly.efi这个文件,如何能实现以下的这个功能?
    dhcp-boot=tag:!ipxe,tag:efi-x86_64,"snponly.efi"
    dhcp-boot=tag:!ipxe,tag:efi-x86,"snponly32.efi"

还有,能麻烦你将boot目录的模板也打包后提供下载吗?

最后请教,如果是BIOS启动,你的模板可以直接支持启动ISO文件吗?我在你的menu.ipxe里面没有找到任何启动ISO文件的语句。

点评

snponly.efi,undionly.kpxe可以在官网下载http://boot.ipxe.org/,snponly32.efi由于官网默认没提供所以我上传了,启动iso的大概这样,你可以自己试试。memdisk从syslinux包里面找  详情 回复 发表于 2021-10-19 17:56
回复

使用道具 举报

发表于 2021-10-19 17:56:04 | 显示全部楼层
本帖最后由 liquanyi 于 2021-10-19 17:59 编辑
tigerhuang 发表于 2021-10-18 20:50
抱歉,前两天在忙,没上网。

请问,你的附件里我只看到snponly32.efi,没有snponly.efi这个文件,如何 ...

附件包里面有snponly.efi,undionly.kpxe啊,另外最新的snponly.efi,undionly.kpxe可以在官网下载http://boot.ipxe.org/,snponly32.efi由于官网默认没编译提供需要自己下载源码编译,启动iso的大概这样,你可以自己试试。memdisk从syslinux包里面找
  1. :win10x32
  2. kernel ${dirpath}/win10/memdisk raw iso
  3. initrd ${dirpath}/win10/W10X32_CN_PE.iso
  4. boot || goto failed
复制代码

点评

请问bootmgr.exe,bootmgfw.efi,BCD,boot.sdi这些文件要到哪里去下载?任何一个Win10里面的可以吗?现在头疼是不知道去哪里找所需要的文件。  详情 回复 发表于 2021-10-20 06:04
回复

使用道具 举报

发表于 2021-10-20 06:04:04 | 显示全部楼层
liquanyi 发表于 2021-10-19 17:56
附件包里面有snponly.efi,undionly.kpxe啊,另外最新的snponly.efi,undionly.kpxe可以在官网下载http://b ...

请问bootmgr.exe,bootmgfw.efi,BCD,boot.sdi这些文件要到哪里去下载?任何一个Win10里面的可以吗?现在头疼是不知道去哪里找所需要的文件。

点评

winre.wim或boot.wim的Windows\Boot目录下面的各个目录去找,BCD我附件上传的有  详情 回复 发表于 2021-10-20 08:44
回复

使用道具 举报

发表于 2021-10-20 08:44:29 | 显示全部楼层
tigerhuang 发表于 2021-10-20 06:04
请问bootmgr.exe,bootmgfw.efi,BCD,boot.sdi这些文件要到哪里去下载?任何一个Win10里面的可以吗?现在头 ...

winre.wim或boot.wim的Windows\Boot目录下面的各个目录去找,BCD我附件上传的有

点评

还是多谢你! 又要考虑去哪里下载Boot目录里的启动文件,想想还是算了,一个问题有牵涉到另外一个问题,要是有人能一次性提供除WinPE外所有启动文件就好了 我另起一个悬赏帖吧,希望有人能实现我的要  详情 回复 发表于 2021-10-21 04:31
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-28 22:56

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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