无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: hkkitlee
打印 上一主题 下一主题

[原创] 20220507:RyanBoot 小白「云端系統」iPXE usb/iso Secure/Bios 安裝/救援 Linux/Winpe

    [复制链接]
91#
发表于 2020-5-1 03:15:55 | 只看该作者
hkkitlee 发表于 2019-7-7 00:55
伺服器軟件/設定編:

10/07/2019更新:下面比較沉長。希望大家先閱讀原理,軟件之間關係,明白了再了解 ...

非常謝謝樓主願意花時間寫原理教學, 我才有機會認識 ValdikSS 這個可以繞過secureboot的工具
對我受益良多
回复

使用道具 举报

92#
发表于 2020-5-18 21:08:06 | 只看该作者
请问一下  自编译ipxe.usb   如何像您一样直接内置菜单到ipxe.usb中,因为我想跨网链接自己的web服务器获取菜单文件
回复

使用道具 举报

93#
 楼主| 发表于 2020-5-19 18:14:33 | 只看该作者
时光凉了年少梦 发表于 2020-5-18 21:08
请问一下  自编译ipxe.usb   如何像您一样直接内置菜单到ipxe.usb中,因为我想跨网链接自己的web服务器获取 ...

make bin/undionly.kpxe EMBED=myscript.ipxe

或從usb 的loader指定腳本
回复

使用道具 举报

94#
发表于 2020-5-19 18:33:11 | 只看该作者
hkkitlee 发表于 2020-5-19 18:14
make bin/undionly.kpxe EMBED=myscript.ipxe

或從usb 的loader指定腳本

undionly.kpxe  这个我基本知道是怎么建立,但是我想生成ipxe.usb然后刻录在USB上就像您附件提供的那种模式一样,我在ipxe的源文件中并没有检索到usb中的loader文件   可以具体指点一下吗?  谢谢
回复

使用道具 举报

95#
 楼主| 发表于 2020-5-19 20:45:39 | 只看该作者
时光凉了年少梦 发表于 2020-5-19 18:33
undionly.kpxe  这个我基本知道是怎么建立,但是我想生成ipxe.usb然后刻录在USB上就像您附件提供的那种模 ...

https://ipxe.org/appnote/buildtargets

你可以拆開我的影像檔了解一下。我不是直接編譯.usb出來的。
.efi全模式可以共用的。那你知道 .hd .dsk .pdsk .usb有什麼分別嗎?
回复

使用道具 举报

96#
发表于 2020-5-19 21:23:54 | 只看该作者
有点蒙。。。。
回复

使用道具 举报

97#
发表于 2020-5-19 23:28:04 | 只看该作者
hkkitlee 发表于 2020-5-19 20:45
https://ipxe.org/appnote/buildtargets

你可以拆開我的影像檔了解一下。我不是直接編譯.usb出來的。
...

不同储存介质所用到的文件
我先尝试拆解您的映像  试试 我接触这个没多久 很多都不会  望大佬别介意我等小白
回复

使用道具 举报

98#
 楼主| 发表于 2020-5-20 15:46:15 | 只看该作者
时光凉了年少梦 发表于 2020-5-19 23:28
不同储存介质所用到的文件
我先尝试拆解您的映像  试试 我接触这个没多久 很多都不会  望大佬别介意我等 ...

問題有素質,當然是不介意。

粗略講一下,以上的類型{.hd .dsk .pdsk .usb}在legacy bios實模式中,以boot code儲存在分區的mbr (partition)開頭。(以boot code存在就不是「輕易」的以檔案修改啟動項目)。
也會導致後面uefi啟動的困難,因為檔案系統已不能直接格式化fat16/fat32來存放ipxe.efi了。

所以你可以留心一下lkrn這類形,沒有bootcode的,以「檔案」型式存在。

還有就是要應付uefi(secure boot),所以我的是啟動是:
(Legacy bios)grub2+ipxe.lkrn
(Uefi bios)grub2+ipxe.efi

之前我說的usb boot loader 就是grub2了,二次修改只需要把腳本放在ipxe.lkrn下面的initrd就可以。
回复

使用道具 举报

99#
 楼主| 发表于 2020-5-20 15:53:59 | 只看该作者
时光凉了年少梦 发表于 2020-5-19 23:28
不同储存介质所用到的文件
我先尝试拆解您的映像  试试 我接触这个没多久 很多都不会  望大佬别介意我等 ...

所以你編譯出.usb,把他寫進u盤也能啟動,就是不能掛載!修改!因為他根本不是「檔案」,是mbr/bootcode。
###mbr = master boot record

單一legacy bios沒問題的,加個雙啟動(uefi)馬上修改不了,因uefi是以「檔案」儲存。
回复

使用道具 举报

100#
发表于 2020-5-20 18:44:47 | 只看该作者
hkkitlee 发表于 2020-5-20 15:53
所以你編譯出.usb,把他寫進u盤也能啟動,就是不能掛載!修改!因為他根本不是「檔案」,是mbr/bootcode ...

今天扒了一天  官方的文档说明  终于在.usb中  集成了嵌入式菜单了
目前暂时如您所说只能支持legacy bios,EFI  暂且还不行  我先把知识消化一下再看看最后怎么去支持EFI
回复

使用道具 举报

101#
发表于 2020-5-21 10:14:16 | 只看该作者
本帖最后由 江南一根葱 于 2020-5-21 10:19 编辑

请教下debian用啥参数启用网络,我用ip=dhcp,netboot=xxx之类貌似没什么用,
我需要修改init文件,想用httpfs,所以要在busybox启用网络,
手工用ifconfig eth0 ${ip}是可以的
目前是grub2传递ip=$net_default_server,再里面ifconfig,貌似有点不太靠谱。好像找到了个udhcpc -i eth0

点评

你目的是Live還是netinstaller? 要看一下你啟動失敗的畫面訊息。 http server想你設定沒問題;轉過去https就不行的話就是証書問題了。  详情 回复 发表于 2020-5-21 10:43
回复

使用道具 举报

102#
 楼主| 发表于 2020-5-21 10:43:48 | 只看该作者
江南一根葱 发表于 2020-5-21 10:14
请教下debian用啥参数启用网络,我用ip=dhcp,netboot=xxx之类貌似没什么用,
我需要修改init文件,想用ht ...

你目的是Live還是netinstaller?

要看一下你啟動失敗的畫面訊息。

http server想你設定沒問題;轉過去https就不行的話就是証書問題了。

点评

live,是个改版的linux,因为不想解开iso,所以我要改init,获得到ip地址,貌似还要搞什么simple.script 还挺复杂啊  详情 回复 发表于 2020-5-21 11:16
回复

使用道具 举报

103#
发表于 2020-5-21 11:16:54 | 只看该作者
hkkitlee 发表于 2020-5-21 10:43
你目的是Live還是netinstaller?

要看一下你啟動失敗的畫面訊息。

live,是个改版的linux,因为不想解开iso,所以我要改init,获得到ip地址,貌似还要搞什么simple.script
还挺复杂啊

点评

改呗,解开文件系统,修改好init或者关联的脚本,打包就行了哦  详情 回复 发表于 2020-5-21 11:23
回复

使用道具 举报

104#
发表于 2020-5-21 11:23:41 | 只看该作者
江南一根葱 发表于 2020-5-21 11:16
live,是个改版的linux,因为不想解开iso,所以我要改init,获得到ip地址,貌似还要搞什么simple.script
...

改呗,解开文件系统,修改好init或者关联的脚本,打包就行了哦

点评

有个骚操作,不用解开,可以grub2向iso射脚本进去,就像wimboot一样, 然后自己挂载自己,再启动、、、 我想实现的是不敢任何原版iso,但可以网启http上的整个iso  详情 回复 发表于 2020-5-21 11:28
回复

使用道具 举报

105#
发表于 2020-5-21 11:28:11 | 只看该作者
caocaofff 发表于 2020-5-21 11:23
改呗,解开文件系统,修改好init或者关联的脚本,打包就行了哦

有个骚操作,不用解开,可以grub2向iso射脚本进去,就像wimboot一样,
然后自己挂载自己,再启动、、、
我想实现的是不修改原版iso,但可以网启http上的整个iso

点评

好想法,等你成果  详情 回复 发表于 2020-5-21 11:46
回复

使用道具 举报

106#
发表于 2020-5-21 11:46:53 | 只看该作者
江南一根葱 发表于 2020-5-21 11:28
有个骚操作,不用解开,可以grub2向iso射脚本进去,就像wimboot一样,
然后自己挂载自己,再启 ...

好想法,等你成果

点评

好像这个debian官方参数有这个启动方式,是boot=live httpfs=http:/xxxx/live.iso,不知道为啥跑不起来。  详情 回复 发表于 2020-5-21 12:03
回复

使用道具 举报

107#
发表于 2020-5-21 12:03:21 | 只看该作者
caocaofff 发表于 2020-5-21 11:46
好想法,等你成果

好像这个debian官方参数有这个启动方式,是boot=live httpfs=http:/xxxx/live.iso,不知道为啥跑不起来。

点评

我Legacy bios/ Uefi通用的ipxe腳本: :RPBL kernel RPBLvmlinuz-4.19.0-8-amd64 initrd=RPBLinitrd.gz boot=live ethdevice-timeout=60 vga=normal components splash username=user ip=dhcp hooks=filesystem  详情 回复 发表于 2020-5-21 13:51
你不是要适用于Any Linux吗?但貌似每个发行版的init都不一样吧?只能找共性的东西了  详情 回复 发表于 2020-5-21 12:39
回复

使用道具 举报

108#
发表于 2020-5-21 12:39:26 | 只看该作者
江南一根葱 发表于 2020-5-21 12:03
好像这个debian官方参数有这个启动方式,是boot=live httpfs=http:/xxxx/live.iso,不知道为啥跑不起来。

你不是要适用于Any Linux吗?但貌似每个发行版的init都不一样吧?只能找共性的东西了
回复

使用道具 举报

109#
发表于 2020-5-21 13:38:11 | 只看该作者
搞好了,,,,参数 boot=live fetch=
根本不用自己改挂载

点评

我沒記錯的話,fetch 一個iso 比 fetch 一個 squashfs 使用的記憶體要多一點點。  详情 回复 发表于 2020-5-21 13:53
回复

使用道具 举报

110#
 楼主| 发表于 2020-5-21 13:51:09 | 只看该作者
本帖最后由 hkkitlee 于 2020-5-21 14:10 编辑
江南一根葱 发表于 2020-5-21 12:03
好像这个debian官方参数有这个启动方式,是boot=live httpfs=http:/xxxx/live.iso,不知道为啥跑不起来。

我Legacy bios/ Uefi通用的ipxe腳本:

:RPBL
kernel RPBLvmlinuz-4.19.0-8-amd64 initrd=RPBLinitrd.gz boot=live ethdevice-timeout=60 vga=normal components splash username=user ip=dhcp hooks=filesystem fetch=${image}
initrd RPBLinitrd.gz
boot || goto failed

一般live用https下載squashfs是不用修改initrd;Debian核心參數沒有httpfs這項。
除非你不用官網的wget來下載squashfs,就像是我BT啟動的live才需要修改busybox用aria2來下載。



希望幫到你。

回复

使用道具 举报

111#
 楼主| 发表于 2020-5-21 13:53:55 | 只看该作者
江南一根葱 发表于 2020-5-21 13:38
搞好了,,,,参数 boot=live fetch=
根本不用自己改挂载

我沒記錯的話,fetch 一個iso 比 fetch 一個 squashfs 使用的記憶體要多一點點。

点评

嗯,我后来在9990-http.sh什么的找到的参数,这debian位置还真奇怪 aria2c如果只是一个小的bin文件的话现在可以实现不改initrd来注入启动了。  详情 回复 发表于 2020-5-21 16:15
回复

使用道具 举报

112#
发表于 2020-5-21 16:15:50 | 只看该作者
hkkitlee 发表于 2020-5-21 13:53
我沒記錯的話,fetch 一個iso 比 fetch 一個 squashfs 使用的記憶體要多一點點。

嗯,我后来在9990-http.sh什么的找到的参数,这debian位置还真奇怪
aria2c如果只是一个小的bin文件的话现在可以实现不改initrd来注入启动了。

点评

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=416359  详情 回复 发表于 2020-5-21 17:19
回复

使用道具 举报

113#
 楼主| 发表于 2020-5-21 17:19:54 | 只看该作者
江南一根葱 发表于 2020-5-21 16:15
嗯,我后来在9990-http.sh什么的找到的参数,这debian位置还真奇怪
aria2c如果只是一个小的bin文件的话 ...

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=416359

点评

我塞了其它linux的aria2c和它的库文件进去不行,貌似一定要debian上用的么 好像我们这儿本地的linux源用wget也能达到满速启动,就是挂载iso需要6G左右内存,哈哈哈  详情 回复 发表于 2020-5-21 20:46
回复

使用道具 举报

114#
发表于 2020-5-21 20:46:29 | 只看该作者
hkkitlee 发表于 2020-5-21 17:19
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=416359

我塞了其它linux的aria2c和它的库文件进去不行,貌似一定要debian上用的么
好像我们这儿本地的linux源用wget也能达到满速启动,就是挂载iso需要6G左右内存,哈哈哈

点评

啟動在initrd 期間編譯個不帶庫的aria2c比較簡單點。 wget 能滿速也相對簡單穩定。 不是用bt最好還是算了,還要兼顧個tracker/bt client,挺煩人。我都不大想玩了。  详情 回复 发表于 2020-5-21 22:03
回复

使用道具 举报

115#
 楼主| 发表于 2020-5-21 22:03:58 | 只看该作者
江南一根葱 发表于 2020-5-21 20:46
我塞了其它linux的aria2c和它的库文件进去不行,貌似一定要debian上用的么
好像我们这儿本地的 ...

啟動在initrd 期間編譯個不帶庫的aria2c比較簡單點。
wget 能滿速也相對簡單穩定。
不是用bt最好還是算了,還要兼顧個tracker/bt client,挺煩人。我都不大想玩了。

点评

嗯,主要是源的问题,貌似弄个测试镜像源连接速度自动选择快的下载比较好些  详情 回复 发表于 2020-5-23 12:16
回复

使用道具 举报

116#
发表于 2020-5-22 18:46:22 | 只看该作者
通过写盘ryantc.usb,然后用工具修改EFI区的文件   成功加入我自己编译的ipxe.lkrn于ipxe.efi
现在有个问题就是  我怎么把这个修改好的efi,  集成到 ryantc.usb中去,方便下次  直接写盘不用修改
我使用的系统为windows10  与  centos 7
回复

使用道具 举报

117#
 楼主| 发表于 2020-5-22 22:27:30 | 只看该作者
时光凉了年少梦 发表于 2020-5-22 18:46
通过写盘ryantc.usb,然后用工具修改EFI区的文件   成功加入我自己编译的ipxe.lkrn于ipxe.efi
现在有个问 ...

我也是用centos7。修改影像檔kpartx這個命令幫到你。
回复

使用道具 举报

118#
 楼主| 发表于 2020-5-22 22:40:37 | 只看该作者
时光凉了年少梦 发表于 2020-5-22 18:46
通过写盘ryantc.usb,然后用工具修改EFI区的文件   成功加入我自己编译的ipxe.lkrn于ipxe.efi
现在有个问 ...

本帖3樓是我這個影像檔建造的「一鍵腳本」範例,你可以參考一下grub2、kpartx、mount結合使用。
回复

使用道具 举报

119#
发表于 2020-5-22 22:41:01 | 只看该作者
hkkitlee 发表于 2020-5-22 22:27
我也是用centos7。修改影像檔kpartx這個命令幫到你。

我试试
回复

使用道具 举报

120#
发表于 2020-5-22 22:48:30 | 只看该作者
虽然用不到还是支持一下
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-17 06:02

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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