无忧启动论坛

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

[教程] 20210226更新:RyanTC—Tinycore16MB的微型移動Linux系統建pxe伺服器。合併到u盤啟動

  [复制链接]
 楼主| 发表于 2019-7-30 15:18:53 | 显示全部楼层
江南一根葱 发表于 2019-7-30 15:13
列菜单可以了,不过有点郁闷,启动时会在启动文件后面会加.0。。。然后提示找不到xxxx.xxx.0

不郁悶,這好像是要兼容老bios的pxe rom,都忘記講了

多建幾個pxe,坑慣就不坑了~哈哈

点评

这个没法解决吗,还是文件一定得加个.0  详情 回复 发表于 2019-7-30 15:29
回复

使用道具 举报

发表于 2019-7-30 15:29:56 | 显示全部楼层
hkkitlee 发表于 2019-7-30 15:18
不郁悶,這好像是要兼容老bios的pxe rom,都忘記講了

多建幾個pxe,坑慣就不坑了~哈哈

这个没法解决吗,还是文件一定得加个.0

点评

Linux命令: ln -s xxxxx xxxxx.0 #建立帶*.0的捷徑 或 手動加.0  详情 回复 发表于 2019-7-30 15:50
回复

使用道具 举报

 楼主| 发表于 2019-7-30 15:50:23 | 显示全部楼层
江南一根葱 发表于 2019-7-30 15:29
这个没法解决吗,还是文件一定得加个.0

Linux命令:
ln -s xxxxx xxxxx.0 #建立帶*.0的捷徑



手動加.0

点评

我加了.0之后在传输时又给我加了.0,于是变成.0.0了, 然后暂时是用文件实际有.0,配置里是 ${biosfile%.0}这样, 。。。这软件包有点变态啊。  详情 回复 发表于 2019-7-30 15:55
回复

使用道具 举报

发表于 2019-7-30 15:55:41 | 显示全部楼层
本帖最后由 江南一根葱 于 2019-7-30 16:08 编辑
hkkitlee 发表于 2019-7-30 15:50
Linux命令:
ln -s xxxxx xxxxx.0 #建立帶*.0的捷徑


我加了.0之后在传输时又给我加了.0,于是变成.0.0了,

然后暂时是用文件实际有.0,配置里是 ${biosfile%.0}这样,
。。。这软件包有点变态啊。


efi文件没这问题吧,好坑

点评

試試在原文件加個副檔名,就好像不再需要.0了 我的引導檔有副檔名就沒問過了  详情 回复 发表于 2019-7-30 16:20
回复

使用道具 举报

 楼主| 发表于 2019-7-30 16:20:49 | 显示全部楼层
本帖最后由 hkkitlee 于 2019-7-30 16:22 编辑
江南一根葱 发表于 2019-7-30 15:55
我加了.0之后在传输时又给我加了.0,于是变成.0.0了,

然后暂时是用文件实际有.0,配置里是 ...


試試在原文件加個副檔名,就好像不再需要.0了

我的引導檔有副檔名就沒問題了


恭喜啟動成功了!
回复

使用道具 举报

发表于 2019-7-30 17:29:50 | 显示全部楼层
又遇到个麻烦,tinypxe能启的它不能启,貌似得用钦定的pxe菜单文件

点评

對一對網頁路徑是否正確  详情 回复 发表于 2019-7-30 17:40
回复

使用道具 举报

 楼主| 发表于 2019-7-30 17:40:41 | 显示全部楼层
本帖最后由 hkkitlee 于 2019-7-30 17:56 编辑
江南一根葱 发表于 2019-7-30 17:29
又遇到个麻烦,tinypxe能启的它不能启,貌似得用钦定的pxe菜单文件


對一對網頁路徑是否正確



如果見不到自己寫的引導「菜單」,那要看dnsmasq.conf或上一層引導設定。

見到引導檔的菜單,dnsmasq已完成工作。接力的是引導檔經網頁伺服取得OS文件!
如果是在TC建的httpd,留意設定檔網站的根目錄設定
測試則可用瀏覽器試看

点评

[attachimg]397842[/attachimg] 比如这个 kpxe本来内痣了脚本,脚本是set bootfile下面那个g4d文件,死循环了,, 直接引导g4d,报错了, 看来它这个有点像生成3com那个pxe bootmenu,并不是什么启动文件都支  详情 回复 发表于 2019-7-30 19:28
菜单和取文件都正常了的, 不过bios下不能启动g4d(grldr) 启kpxe文件丢失内置脚本的,脚本是设置下一个启动文件为g4d  详情 回复 发表于 2019-7-30 19:18
回复

使用道具 举报

发表于 2019-7-30 19:18:40 | 显示全部楼层
hkkitlee 发表于 2019-7-30 17:40
對一對網頁路徑是否正確

菜单和取文件都正常了的,
不过bios下不能启动g4d(grldr)
启kpxe文件丢失内置脚本的,脚本是设置下一个启动文件为g4d

点评

「引導檔」引導另一個「引導檔」是有機會失敗,特別是bios 還有就是一款引導已經有多種啟動命令!幾個引導檔看齊所有真的是吃不消。 Grub2命令多得直接嚇死人 kpxe內置腳本是否已測試過?  详情 回复 发表于 2019-7-30 19:36
回复

使用道具 举报

发表于 2019-7-30 19:28:28 | 显示全部楼层
hkkitlee 发表于 2019-7-30 17:40
對一對網頁路徑是否正確

GIF.gif

比如这个 kpxe本来内痣了脚本,脚本是set bootfile下面那个g4d文件,死循环了,,
直接引导g4d,报错了,

看来它这个有点像生成3com那个pxe bootmenu,并不是什么启动文件都支持的,我估计能直接启软盘img文件

点评

messagepxebios 回報體積過大 Ipxe 是死循環,應該係script有問題不執行  详情 回复 发表于 2019-7-30 19:49
回复

使用道具 举报

 楼主| 发表于 2019-7-30 19:36:37 | 显示全部楼层
江南一根葱 发表于 2019-7-30 19:18
菜单和取文件都正常了的,
不过bios下不能启动g4d(grldr)
启kpxe文件丢失内置脚本的,脚本是设置下一个 ...

「引導檔」引導另一個「引導檔」是有機會失敗,特別是bios
還有就是一款引導已經有多種啟動命令!幾個引導檔看齊所有真的是吃不消。
Grub2命令多得直接嚇死人


kpxe內置腳本是否已測試過?

点评

应该知道是为啥失败了,[attachimg]397844[/attachimg]它出现的菜单应该和这个软件生成的pxe启动菜单.mba文件是一样的东西,我再确认下,还有就是efi分这么多不知道啥意思,有没有地方参考,我vmware认出来的efi居然  详情 回复 发表于 2019-7-30 19:42
回复

使用道具 举报

发表于 2019-7-30 19:42:58 | 显示全部楼层
hkkitlee 发表于 2019-7-30 19:36
「引導檔」引導另一個「引導檔」是有機會失敗,特別是bios
還有就是一款引導已經有多種啟動命令!幾個引 ...

应该知道是为啥失败了, QQ图片20190730194058.png 它出现的菜单应该和这个软件生成的pxe启动菜单.mba文件是一样的东西,我再确认下,还有就是efi分这么多不知道啥意思,有没有地方参考,我vmware认出来的efi居然是bc_efi

点评

#2 pxe-service=IA64_EFI, "Boot IA64_EFI", uefi/ipxe64.efi #6 pxe-service=IA32_EFI, "Boot IA32_EFI", uefi/ipxe32.efi #7 pxe-service=X86-64_EFI, "Boot X86-64_EFI", uefi/ipxe64.efi #8 pxe-se  详情 回复 发表于 2019-7-30 19:55
回复

使用道具 举报

 楼主| 发表于 2019-7-30 19:49:14 | 显示全部楼层
本帖最后由 hkkitlee 于 2019-7-30 19:56 编辑
江南一根葱 发表于 2019-7-30 19:28
比如这个 kpxe本来内痣了脚本,脚本是set bootfile下面那个g4d文件,死循环了,,
直接引导g4d,报 ...


messagepxebios 回報體積過大

Ipxe 是死循環,應該係script有問題不執行或沒script可執行

点评

这两个在tinypxe下都是可以启的,tinycore下不知道有没有其它的服务端  详情 回复 发表于 2019-7-30 20:45
回复

使用道具 举报

 楼主| 发表于 2019-7-30 19:55:09 | 显示全部楼层
江南一根葱 发表于 2019-7-30 19:42
应该知道是为啥失败了,它出现的菜单应该和这个软件生成的pxe启动菜单.mba文件是一样的东西,我再确认下, ...

#2
pxe-service=IA64_EFI, "Boot IA64_EFI", uefi/ipxe64.efi

#6
pxe-service=IA32_EFI, "Boot IA32_EFI", uefi/ipxe32.efi

#7
pxe-service=X86-64_EFI, "Boot X86-64_EFI", uefi/ipxe64.efi

#8
pxe-service=Xscale_EFI, "Boot BC_EFI", uefi/ipxe64.efi

#9
pxe-service=BC_EFI, "Boot BC_EFI", uefi/ipxe64.efi



bc_efi=bit-code類型efi。詳細就不懂
還有ia32/64,x86-64
回复

使用道具 举报

发表于 2019-7-30 20:45:56 | 显示全部楼层
hkkitlee 发表于 2019-7-30 19:49
messagepxebios 回報體積過大

Ipxe 是死循環,應該係script有問題不執行或沒script可執行

这两个在tinypxe下都是可以启的,tinycore下不知道有没有其它的服务端
回复

使用道具 举报

发表于 2019-7-30 21:49:21 | 显示全部楼层
本帖最后由 江南一根葱 于 2019-7-30 22:03 编辑

bios.gif efi.gif

bios和uefi都需要特殊格式的启动文件才行,看来我还得重新编译ipxe。。。

卧槽,试来试去,还是就pxelinux.0正常

点评

發個dnsmasq.conf來看看  详情 回复 发表于 2019-7-30 22:52
回复

使用道具 举报

 楼主| 发表于 2019-7-30 22:52:14 | 显示全部楼层
江南一根葱 发表于 2019-7-30 21:49
bios和uefi都需要特殊格式的启动文件才行,看来我还得重新编译ipxe。。。

卧槽,试来试去,还是就px ...

發個dnsmasq.conf來看看

点评

set -- $(cat /proc/cmdline) for x in "$@"; do case "$x" in myip=*) export myip="${x#myip=}" ;; pxeroot=*) export pxeroot"${x#pxeroot=}" ;; esac done #mount for i in $(ls /mnt); do mou  详情 回复 发表于 2019-7-31 09:12
回复

使用道具 举报

发表于 2019-7-31 09:12:07 | 显示全部楼层
hkkitlee 发表于 2019-7-30 22:52
發個dnsmasq.conf來看看

set -- $(cat /proc/cmdline)
for x in "$@"; do
case "$x" in
myip=*)
export myip="${x#myip=}"
;;
pxeroot=*)
export pxeroot"${x#pxeroot=}"
;;

esac
done
#mount
for i in $(ls /mnt); do
mount /mnt/$i
done

if [ !-n $bootmulu ]; then
mulu=$( find /mnt/ -name pxeboot -type d)
else
mulu=$( find /mnt/ -name $pxeroot -type d)
fi


sudo /bin/cat << EOF > /etc/dnsmasq.conf

#Don't function as a DNS server:
port=0

#Log lots of extra information about DHCP transactions.
log-dhcp

enable-tftp
tftp-root=$mulu

#Disable re-use of the DHCP servername and filename fields as extra
#option space. That's to avoid confusing some old or broken DHCP clients.
dhcp-no-override

pxe-prompt="Press F8 for NBP (Net Boot Program) menu.Default ipxe.", 10

#0


#pxe-service=X86PC, "kkpxe for Legacy BIOS", undionly.kkpxe
#pxe-service=X86PC, "kpxe for Legacy BIOS", undionly.kpxe
#pxe-service=X86PC, "pxe for Legacy BIOS", undionly.pxe

#2

#pxe-service=IA64_EFI, "Boot IA64_EFI", uefi/ipxe64.efi

#6

#pxe-service=IA32_EFI, "Boot IA32_EFI", uefi/ipxe32.efi

#7
#pxe-service=X86-64_EFI, "Boot X86-64_EFI", uefi/ipxe64.efi

#8
#pxe-service=Xscale_EFI, "Boot BC_EFI", uefi/ipxe64.efi

#9
#pxe-service=BC_EFI, "Boot BC_EFI", uefi/ipxe64.efi
EOF
#test
cd $mulu
for biosfilea in $(find *bios* -type f ); do
echo pxe-service=X86PC, "${biosfilea%.*}", ${biosfilea%.0} >> /etc/dnsmasq.conf
done
for biosfileb in $(find *.0 -type f ); do
echo pxe-service=X86PC, "${biosfileb%.*}", ${biosfileb%.0} >> /etc/dnsmasq.conf
done


for efi64a in $(find *64* -type f ); do
echo pxe-service=BC_EFI, "$efi64a", $efi64a  >> /etc/dnsmasq.conf
done

for efi64b in $(find *64* -type f ); do
echo pxe-service=X86-64_EFI, "$efi64b", $efi64b  >> /etc/dnsmasq.conf
done

for efi64c in $(find *64* -type f ); do
echo pxe-service=IA64_EFI, "$efi64c", $efi64c  >> /etc/dnsmasq.conf
done

for efi32 in $(find *32* -type f ); do
echo pxe-service=IA32_EFI, "$efi32", $efi32  >> /etc/dnsmasq.conf
done

sleep 8
ip=$(/sbin/ifconfig |grep -v 127 | grep 'inet ' | sed 's/^.*inet addr://g' | sed 's/ *Bcast.*$//g')
echo "dhcp-range=$ip,proxy" >> /etc/dnsmasq.conf
echo tftp:$mulu
echo $ip
sleep 2
/usr/local/sbin/dnsmasq -9 &
/usr/local/httpd/sbin/httpd -p 80 -h $mulu &
filetool.sh -b
cd /tce/optional


我改成这样了,暂时用pxelinux能启

点评

讀了一會,這個在思路上和程式上有點意見: 動態資料夾 動態檔案數 「半」動態檔名 既然此影像檔是用來啟動,何不設為: 絕對路徑存放引導檔 已可啟動的引導檔「不」以尋找方式寫設定檔了,是寫死的 而需要  详情 回复 发表于 2019-7-31 11:53
回复

使用道具 举报

发表于 2019-7-31 09:13:54 | 显示全部楼层
GIF.gif
回复

使用道具 举报

发表于 2019-7-31 09:30:44 | 显示全部楼层
江南一根葱,弄个懒人版出来,让零基础小白也能使用
回复

使用道具 举报

 楼主| 发表于 2019-7-31 11:53:17 | 显示全部楼层
本帖最后由 hkkitlee 于 2019-7-31 12:27 编辑
江南一根葱 发表于 2019-7-31 09:12
set -- $(cat /proc/cmdline)
for x in "$@"; do
case "$x" in


讀了一會,這個在思路上和程式上有點意見:
動態資料夾
動態檔案數
「半」動態檔名

既然此影像檔是用來啟動,何不設為:
絕對路徑存放引導檔
已可啟動的引導檔「不」以尋找方式寫設定檔了,是寫死的
而需要作測試的則以特定檔名存放在pxeboot,比如是atest.efi/atest.pxe;設定則寫死在dnsmasq.conf內。有檔則啟,無檔無礙。


因為如果你的script在背境執行,是很難排錯。script還要兼顧邏輯/條件問題
還有就是有些「不」需要連腳本引導,有的則需要二次帶腳本引導;會通通全走出來。更難排錯。

還有就是tftp路徑過長會類似「記憶體溢出」。


另外見你引導IMG檔,引導此類檔都需要syslinux的memdisk for bios,或者ipxe 的 sanboot 。不知tinypxe是否已幫忙加載,這要查原文件。

点评

img文件用3com boot image editor修改成tcp/ip启动可以直启的,以前把整个win98弄进img里直接启动到桌面过 不过这个pxemenu貌似跟3com的不太一样,3com那个兼容性很好,可以启动grldr,这个不行,有点不太理解。。  详情 回复 发表于 2019-7-31 12:09
回复

使用道具 举报

发表于 2019-7-31 12:09:55 | 显示全部楼层
本帖最后由 江南一根葱 于 2019-7-31 12:54 编辑
hkkitlee 发表于 2019-7-31 11:53
讀了一會,這個在思路上和程式上有點意見:
動態資料夾
動態檔案數


img文件用3com boot image editor修改成tcp/ip启动可以直启的  如图
GIF.gif

,以前把整个win98弄进img里直接启动到桌面过
不过这个pxemenu貌似跟3com的不太一样,3com那个兼容性很好,可以启动grldr,这个不行,有点不太理解。。

点评

留意一下你的gif圖,tinypxe的log中是有回傳客戶機*MAXDOS9.SYS* Linux是比軟「原始」,你不叫他不做。 沒什麼背境作業。也因為如此什麼都得手工。也可以手工。 性能也就是如此搾出來。就是如此又愛又恨。  详情 回复 发表于 2019-7-31 13:43
回复

使用道具 举报

发表于 2019-7-31 12:35:16 | 显示全部楼层
linux貌似有一点不好,获取不到ip就没地址了,要是像win一样,没dhcp能取到169.254.1.1这样的地址就好了
回复

使用道具 举报

发表于 2019-7-31 12:45:52 | 显示全部楼层
多放些图片,,
回复

使用道具 举报

 楼主| 发表于 2019-7-31 13:43:04 | 显示全部楼层
本帖最后由 hkkitlee 于 2019-7-31 13:48 编辑
江南一根葱 发表于 2019-7-31 12:09
img文件用3com boot image editor修改成tcp/ip启动可以直启的  如图


留意一下你的gif圖,tinypxe的log中是有回傳客戶機*MAXDOS9.SYS*

Linux是比軟「原始」,你不叫他不做。
沒什麼背境作業。也因為如此什麼都得手工。也可以手工。
性能也就是如此搾出來。就是如此又愛又恨。

Tinypxe 看來幫手做了點初始工夫

点评

可能我没描述清楚才没讨论到点上,不过我已经实证了是可以兼容启动3com工具生成mba文件,并直接启动img文件, [attachimg]397896[/attachimg] efi文件好像没启成功,不知道为什么,难道也要加.0?  详情 回复 发表于 2019-7-31 15:46
回复

使用道具 举报

发表于 2019-7-31 15:46:23 | 显示全部楼层
hkkitlee 发表于 2019-7-31 13:43
留意一下你的gif圖,tinypxe的log中是有回傳客戶機*MAXDOS9.SYS*

Linux是比軟「原始」,你不叫他不 ...

可能我没描述清楚才没讨论到点上,不过我已经实证了是可以兼容启动3com工具生成mba文件,并直接启动img文件,
GIF.gif

efi文件好像没启成功,不知道为什么,难道也要加.0?
回复

使用道具 举报

 楼主| 发表于 2019-7-31 16:14:16 | 显示全部楼层
很好!!再堅持點完工了~~
逐個擊破排錯吧,一步一步收窄問題

EFI那邊有沒有選擇NBP?

点评

nbp菜单有出来的,列文件也正常,但就是选中后过了一会回到EFI固件设置界面了  详情 回复 发表于 2019-7-31 17:42
回复

使用道具 举报

发表于 2019-7-31 17:42:56 | 显示全部楼层
本帖最后由 江南一根葱 于 2019-7-31 19:51 编辑
hkkitlee 发表于 2019-7-31 16:14
很好!!再堅持點完工了~~
逐個擊破排錯吧,一步一步收窄問題


nbp菜单有出来的,列文件也正常,但就是选中后过了一会回到EFI固件设置界面了



现在基本搞通能启什么类型的文件了,重新编译了.pxe类型的ipxe(bios)目前正常,还有两个东西待解决

dnsmsasq要配置proxydhcp,不然有路由的情况tftp不到文件
局域网没有dhcp的时候tinycore要分配一个地址,169.254.0.0段的。。


可惜今天公司的机晚上连不上远程桌面编译,家里同步不过来,只好先编译几个启动文件

点评

看似bios/uefi都可啟動了。恭喜完工了! Proxydhcp差不多是必備了。不必動到原來網絡「基本設定」。 外出工作時,即使「求」,人家網管人員多數也不理你。  详情 回复 发表于 2019-7-31 20:28
回复

使用道具 举报

 楼主| 发表于 2019-7-31 20:28:27 | 显示全部楼层
本帖最后由 hkkitlee 于 2019-7-31 20:32 编辑
江南一根葱 发表于 2019-7-31 17:42
nbp菜单有出来的,列文件也正常,但就是选中后过了一会回到EFI固件设置界面了


看似bios/uefi都可啟動了。恭喜完工了!

Proxydhcp差不多是必備了。不必動到原來網絡「基本設定」。
外出工作時,即使「求」,人家網管人員多數也不理你。

我版本更新了點,有空試試。請看changelog

点评

没有dhcp的情况下tinycore会不会有ip地址的,我暂时没试  详情 回复 发表于 2019-7-31 21:04
回复

使用道具 举报

发表于 2019-7-31 21:04:23 | 显示全部楼层
hkkitlee 发表于 2019-7-31 20:28
看似bios/uefi都可啟動了。恭喜完工了!

Proxydhcp差不多是必備了。不必動到原來網絡「基本設定」。 ...

没有dhcp的情况下tinycore会不会有ip地址的,我暂时没试

点评

當然沒有,除非手動設定。 常規伺服器是手動設定,不靠dhcp。 但pxe 又怎可能沒dhcp,伺服器不要客戶機都要啦! 我的版本要用在不同網域上,只是網段/子掩碼不同就不能硬設定。  详情 回复 发表于 2019-7-31 21:27
回复

使用道具 举报

 楼主| 发表于 2019-7-31 21:27:29 | 显示全部楼层
江南一根葱 发表于 2019-7-31 21:04
没有dhcp的情况下tinycore会不会有ip地址的,我暂时没试

當然沒有,除非手動設定。

常規伺服器是手動設定,不靠dhcp。

但pxe 又怎可能沒dhcp,伺服器不要客戶機都要啦!

我的版本要用在不同網域上,只是網段/子掩碼不同就不能硬設定。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 04:25

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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