无忧启动论坛

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

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

  [复制链接]
跳转到指定楼层
1#
发表于 2019-7-24 16:17:55 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hkkitlee 于 2021-2-26 00:13 编辑

這個投票只是好奇有多少人對Linux有興趣,也全透明好讓大家知道結果。

制作“離線版”RyanTC,可獨自作伺服,合併到u盤并加入客制化引導
16MB Linux RamOS PXE Server:RyanTC獨立運作版,M$手工更換引導文件


建立原因:
1鑑於Legacy bios對ipxe的 undionly.pxe/kpxe/kkpxe或 usb有時會莫名奇妙的不啟動(老機器真特別麻煩)。在遠端處也沒有pxe server,所以嘗試做一個「臨時的」pxe伺服影像,在遠端隨便找部機器作「臨時拉夫」急救用。
2實在太微型引起我的興趣。載入速度快;不用考慮內存大小,cpu快慢;BIOS / UEFI通吃 。#1Valdikss UEFISecureBoot

#1:Valdikss 的 SecureBoot啟動由以下項目代勞:編譯/設定ipxe usb UEFI Secure boot/Bios 遠程安裝 / 救援 Linux/Winpe10 +ValdikSS


20190728聲明:由於我的版本是直接修改ramfs(內存文件系統/ram file system):刪除了其他多餘的視窗之類軟件,所以「容量上」會比下面教程的版本更輕巧
修改方法也有小許不同。
另外有興趣的朋友也可進入系統看一看pxe的設定。

由於各發行版Linux大多有不同的防火牆、系統保護程式(Debian的apparmor或RHEL的selinux)等等。往往建立一個伺服程式都要學一輪更改系統預設定,否則即使正確啟動也無發提供服務(出於系統保護)。基於以上各點所以嘗試用TinyCore Linux做教程。

自行學習/修改參考:
嗚謝及原網:http://tinycorelinux.net/
原下載:https://distro.ibiblio.org/tinyc ... ePure64-current.iso


正如我之前的帖「編譯/設定ipxe usb UEFI Secure boot/Bios 遠程安裝 / 救援 Linux/Winpe10 +ValdikSS」所寫是基於CentOS 7。今次會盡量將Redhat系(Fedora , CentOS) / Debian系(Ubuntu) 及主角TinyCore的命令融合。如有遺留請各大幫忙提出並會盡快作出修訂。


changelog:
20210226:RyanTC Desktop with PXE & Data Rescue更新版本官方v12
20190731:
1新增軟件sshfs:可手動遠端連線回各人機房硬盤
2TC:增加命令備忘,命令行內輸入cat ~tc/help即可。
20190730:
自動的模組化:
1pxe server
2samba(windows網絡芳鄰),作(放M$安裝iso/臨時備份)用途。
20190729:
1更新防火建牆設定
2又是舊網卡!延時30秒待舊網卡啟動才執行bash...



单选投票, 共有 92 人参与投票
您所在的用户组没有投票权限

评分

参与人数 4无忧币 +17 收起 理由
yyz2191958 + 2 赞一个!
2012sinkr + 5 很给力!
freesoft00 + 5
2012FuckTheCPC + 5 很给力!

查看全部评分

2#
 楼主| 发表于 2019-7-24 16:18:26 | 显示全部楼层
本帖最后由 hkkitlee 于 2021-2-26 06:30 编辑

並因為方便各位修改ipxe的script[啟動腳本],所以會增加由syslinux來chainload ipxe,只需修改script檔即可





A基礎教學

基於
1本帖是對多個發行版進行設定;
2圖形視窗有多個版本(Gnome,KDE等等),也不是必須的;而且大部分伺服器取消圖形視窗為搾取性能
所以會是以「命令行」的方式進行;當然你也可以在圖形介面下開一個terminal做設定。

出於個人感想:
多年前,由於機器壓力過大,工作不勝負荷。被迫從M$ 的Windows轉往Linux當中,轉到Linux就是經常聽說可以把性能搾出油來;還有就是Raid了。沒錢買Raid卡的怎辦!Linux用軟件就可以做Raid了!卡也不用買(不要問我什麼是硬盤沉餘陣列......)。心想兩個本來就是操作系統,分別為何如此巨大!
因此會多套用「這個就類似M$的XXX」之類來具體化表達。

現在的Win10怪事頻生,可以越更新越出問題,無語了...反正學懂Linux是自己的。

全文簡稱(大寫英文):
TC = TinyCore
RH = RedHat 系列包括Centos / Fedora
DB = Debian 系列包括Ubuntu
M$ = Windows

關於安裝Linux
TC只需下載影像檔並選擇安裝在U盤即可。
RH/DB安裝以minimal install即可。詳細硬盤劃分之類怕與本論壇目的相違背,所以請自行參考、虛擬機、或用TC u盤。





B安裝軟件並設定(俗稱軟件包管理器)
現在的M$ Win10 當中,有個叫[Microsoft Store]的軟件,其作用就類似我們智能電話中Android的Google Play或IOS Iphone中的App Store(國行版閹割了的)。事實上Linux很早期已有此功能實現。

各發行版因應自身設計,發展出不同的[線上管理器]:
Linux 尋找 查詢詳情 安裝 卸載移除
RH yum search XXX
yum info YYY
yum install YYY
yum remove YYY
DB apt search XXX
apt info YYY
apt install YYY
apt remove YYY
TC tce-ab (Enter後選"S"earch填入)
tce-ab ('S'earch完選取即可見)
tce-load -wi YYY
tce-remove YYY

XXX為你查詢關鍵字,查詢後得到軟件包的全名
YYY就是包全名稱用以安裝/移除

這次我們需要dnsmasq(因為可連tftp一起啟動),所以:
RH: sudo yum install dnsmasq -y
DB: sudo apt install dnsmasq -y
TC: sudo tce-load -wi dnsmasq


***-y 為預先確認安裝***


在M$我們編輯文檔,沒有Office也的要個notepad;看看下面Linux中的一個cat命令已建立完畢。
其實還有其他方法,不過是因為後續3樓「懶人大法」的關係吧了。
現在編輯dnsmasq的設定檔,其位置在/etc/dnsmasq.conf:

RH/DB/TC:
sudo cat << EOF > /etc/dnsmasq.conf:
#Don't function as a DNS server:
port=0 #不以DNS server作啟動

#Log lots of extra information about DHCP transactions.
log-dhcp #以log在伺服器作記錄

enable-tftp #這裡dnsmasq兼任tftp。
tftp-root=/var/lib/tftpboot #tftp的設定路徑

#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-service=X86PC, "Install Legacy BIOS", bios/core/pxelinux.0
pxe-service=IA32_EFI, "Boot BC_EFI", efi64/efi/syslinux.efi
pxe-service=BC_EFI, "Boot BC_EFI", efi64/efi/syslinux.efi
pxe-service=X86-64_EFI, "Boot X86-64", efi64/efi/syslinux.efi

dhcp-range=192.168.2.5,proxy#*******這個就是設定為dhcp-proxy啟動,留意ip值是否適用,並沒有設子掩碼以盡量回應。
EOF


上面dnsmasq.conf中,在/var/lib/tftpboot下創建兩個新的資料夾,分別名為bios及uefi;用來儲存不同架構用的菜單。


sudo mkdir -p /var/lib/tftpboot/syslinux


C防火牆/selinux/apparmor

20190729:
RH:
sudo systemctl stop firewalld #關閉系統防火牆
sudo systemctl start firewalld #啟動系統防火牆
sudo firewall-cmd —add-port=4011/udp #臨時防火牆開放連線:udp的端口4011
sudo firewall-cmd —add-port=4011/udp -permanent #永久防火牆開放連線:udp的端口4011
其他port自己照著辦吧!
sudo firewall-cmd —remove-port=4011/udp #取消喇
sudo firewall-cmd —remove-port=4011/udp —permanent #永久的取消

DB:
sudo ufw disable #關閉防火牆
sudo ufw enable #啟動防火牆
sudo ufw default deny incoming #設定防火牆預設禁止外來連線
sudo ufw allow 4011/udp #防火牆開放連線:udp的端口4011
其他port自己照著辦吧!
sudo ufw deny 4011/udp #取消開放連線


TC: 沒有防火牆

RH的selinux:sudo setenforce 0
DB的apparmor:sudo systemctl stop apparmor


***暫時關閉防火牆,之後再追加啟動開放連線***





D啟動dnsmasq(daemon mode)
平常我們在windows啟動軟件,就時雙按圖標,出現程式介面或出現小圖示在時間旁邊。以Tiny Pxe server作例:

相信大家也不陌生了。但有否留意HTTPd/DNSd最後為何有個d字?
沒錯,這就是我上面的標題—daemon mode。意思是類似背境長駐程式。

在Linux中deamon是—「程式/命令(在背境)執行/啟動伺服的方式」。
在M$中就類似在時間邊的最小化圖示。

還是實際點不扯太遠,看看如何啟動dnsmasq作一個pxe伺服「環境」。
因應預設定檔是/etc/dnsmasq.conf,所以會馬上根據預設定檔來啟動。
RH/DB: sudo systemctl start dnsmasq
TC: sudo dnsmasq -9 -d


PXE環境「硬件」至此已經完成,只欠給客戶機的「軟件」,就是E和F了





E.  Syslinux
原包下載:https://mirrors.edge.kernel.org/ ... x/syslinux-6.03.zip

簡介:Syslinux 提供現成的[pxelinux.0給bios][syslinux.efi給uefi]的網啟軟件,我們只需要在下載,解壓縮至dnsmasq指定的/var/lib/tftpboot/內即可。

RH/DB/TC:
sudo wget https://mirrors.edge.kernel.org/ ... x/syslinux-6.03.zip -O /var/lib/tftpboot/syslinux-6.03.zip #wget=下載至/var/lib/tftpboot/
sudo unzip /var/lib/tftpboot/syslinux-6.03.zip -d /var/lib/tftpboot/ #把syslinux-6.03.zip解壓縮至/var/lib/tftpboot/



放好軟件syslinux了,是時候告訴syslinux的要做什麼工作,就是靠[菜單];告知要chainload 我們的主角ipxe了。

#BIOS版菜單

sudo cat << EOF > /var/lib/tftpboot/bios/core/pxelinux.cfg
DEFAULT menu.c32
LABEL bios
KERNEL undionly.kpxe dhcp && chain http://10.10.10.10/NFW.ipxe
EOF


#UEFI版菜單

sudo cat << EOF > /var/lib/tftpboot/efi64/efi/syslinux.cfg
DEFAULT menu.c32
LABEL uefi
KERNEL ipxe.efi dhcp && chain http://10.10.10.10/NFW.ipxe
EOF


「軟件」的一半—Syslinux 已完成了





F. IPXE
下載bios版ipxe:http://boot.ipxe.org/undionly.kpxe
下載uefi版ipxe:http://boot.ipxe.org/ipxe.efi

又是如法炮製:
RH/DB/TC:
sudo wget http://boot.ipxe.org/undionly.kpxe -O /var/lib/tftpboot/bios/core/undionly.kpxe #下載bios版ipxe至/var/lib/tftpboot/bios/core/
sudo wget http://boot.ipxe.org/ipxe.efi -O /var/lib/tftpboot/efi64/efi/ipxe.efi #下載uefi版ipxe至/var/lib/tftpboot/efi64/efi/


根據上面syslinux賦予ipxe的腳本是http://10.10.10.10/NFW.ipxe。那往後只需修改網頁伺服器內的這個腳本即可。不需要再行編譯了。
除非網頁伺服的ip或script改名改位置,才需要更改TC內syslinux的設定檔了。

「軟件」部份已全部完成。是時候在IPXE的script中發揮你們天賦了。
溫馨提示:如需向「公網」對外開放,請做足防禦。大屁孩小屁孩滿天飛!





G*特別*關於TC儲存回u盤
RH/DB正常都屬於安裝在硬盤的操作系統(Live等版本除外),正常關機下是會回寫數據待下次啟動。
但TC因為本身設定是RamOS,內存特點就是沒電消數據,半點不留人。所以我們需要手工多一步來寫回U盤。寫回「設定、需啟動命令」留待下一次開機自動讀取執行。

TC:sudo filetool.sh -b


是否開始發覺現在用的操作系統完來在背後有很多工作?
這個操作系統彈性十足吧?這其實只是九牛一毛...
回复

使用道具 举报

3#
 楼主| 发表于 2019-7-24 16:18:49 | 显示全部楼层
本帖最后由 hkkitlee 于 2019-7-28 13:33 编辑

即將會是「超級懶人自動執行易改包」....

懶人思路:
雖然我們已經可以用命令來做pxe伺服器了。也已經可以回寫儲存在u盤了。
但我的本意是做一個臨時的pxe;既然是臨時的:[dnsmasq網絡參數]、[httpd ip]等等都可能需要因環境情況而改變喇!

M$當中有種命令檔叫「批次檔」*.bat。Linux也有一種用來存放命令的檔案叫「bash file」 *.sh;
我們大可以把所有命令放在bash檔,一次過執行。

我是一個非常懶、貪方便的人。每次需要改變bash就需要坐在「臨時拉夫」的機器面前:看看看,打打打。
生產環境的惡劣,曾經試過要鍵盤壞幾個鍵,要屏幕不是插頭不對就是色偏又或驅動不對[Linux常見事]沒畫面;但網絡沒問題。既然我只需要Pxe服務......

不如我們*只*設定TC啟動時,*wget下載*我們預先設定好的bash檔再*執行*。那我們就不用再坐在「臨時機」前再「操勞一番」。反正我們都有httpd來存放操作系統文件,加多個bash檔好了!

優點:
1可以避免鍵盤屏幕之類問題。
2連Syslinux的菜單都可以遙距改變!「最主要的是httpd伺服ip啊」!
3避免對u盤有不可逆回的改變!即使誤操作,從新啟動又一條好漢啦!
4更可以多寫幾個不同功能的bash檔,變成不同的多功能伺服器!



綜合以上思路,我們以後只需要更改bash檔及ipxe的script就可以完整控制整個臨時的TC伺服器了!!!

現在首先需要知道如何令TC自動執行第一個bash,翻查官網文件原來位置是 /opt/bootlocal.sh,當系統核心完成啟動並加載好其他模組後即以root身份執行,太好了。

那我們只需修改 /opt/bootlocal.sh令其*wget下載*、*執行*我們自已的bash檔就完成了!

在TC開個terminal:
sudo cat << EOF >  /opt/bootlocal.sh
#繼續假設你httpd地址是http://10.10.10.10/並把bash檔命名為TCbash.sh,放到網頁的根目錄可供下載。
sudo wget http://10.10.10.10/TCbash.sh -O /TCbash.sh #下載並儲存在TC的根目錄。
sudo bash /TCbash.sh #執行就是bash檔前加命令bash。
EOF

sudo filetool.sh -b #馬上寫回u盤了


那bash如何寫!!!2樓綠色的全部就是了!
原文:趕緊把需要的複製粘上吧!
20190727:實測下因為bash檔由{系統}並以{root}執行,而TC是禁止root安裝的。所以安裝dnsmasq時以{tc}執行,而啟動則需要(全路徑)。請看最下文的bash分享。

既然已經「線上引導啟動」那2樓的G—sudo filetool.sh -b還有需要加到bash檔嗎?所以就是紅色了。
又來溫馨提示:bash是有「先後順序」的,即不會「未安裝,就執行」的道理。理解不?


我的成品則會「嘗試」再深一點的改造,並放在編譯/設定ipxe usb UEFI Secure boot/Bios 遠程安裝 / 救援 Linux/Winpe10 +ValdikSS中,用來網啟出另一台Pxe伺服出來。
到時大家可以一個u盤,網啟你們網絡的全部電腦了。

移動pxe完成了,哈哈。有興趣的朋友自己動動手吧。








20190728我的改造如下:
TC的啟動腳本改為在/etc/init.d/dhcp.sh,原因如下:
1我是直接修改iso(Live)的corepure64.gz,啟動時不執行/opt/bootlocal.sh
2啟動過快,有時網卡未初始化完成就執行bash,導致所需的工作失敗(如安裝dnsmasq)。




#由於root禁止安裝,所以用root命令用戶名tc來安裝dnsmasq,如下:
/bin/su tc -c '/usr/bin/tce-load -wi dnsmasq';


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=/var/lib/tftpboot

#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 kkpxe.", 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

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



/usr/local/sbin/dnsmasq -9 &



其中紅色為最有價值分享的資料了。知道是什麼嗎?
回复

使用道具 举报

4#
 楼主| 发表于 2019-7-25 00:09:00 | 显示全部楼层
邪恶海盗 发表于 2019-7-24 22:01
服务端啊,我以为是PXE客户端呢...

客戶端想要寫什麼?
回复

使用道具 举报

5#
 楼主| 发表于 2019-7-28 01:10:46 | 显示全部楼层
本帖最后由 hkkitlee 于 2019-7-28 01:19 编辑

完工了,一個白痴問題卡半天。

最後總大小是16MB,純文字並自動介入~自我感覺良好~
回复

使用道具 举报

6#
 楼主| 发表于 2019-7-28 19:42:14 | 显示全部楼层
江南一根葱 发表于 2019-7-28 19:21
能做成tcz档不,我好无聊时编译成单文件linux

短訊覆你
回复

使用道具 举报

7#
 楼主| 发表于 2019-7-29 14:20:13 | 显示全部楼层
本帖最后由 hkkitlee 于 2019-7-29 14:21 编辑
指南针 发表于 2019-7-29 14:08
看样子是需要额外的httpd放置bash脚本;
利用dnsmasq实现dhcp、tftp服务加载引导文件,也是需要有其他的文 ...


我的版本不用,直接可用

自建那是肯定需要的

要是你不嫌慢也放tftp就不用了
回复

使用道具 举报

8#
 楼主| 发表于 2019-7-29 21:30:15 | 显示全部楼层
江南一根葱 发表于 2019-7-29 19:50
只需要dnsmasq这一个包就行了吗,看来可以做成pxe的tftpboot路径用启动参数来自定义

沒錯, 只需更改(懶人包)中的引導bash(dnsmasq設定)就可以了
回复

使用道具 举报

9#
 楼主| 发表于 2019-7-29 22:36:03 | 显示全部楼层
本帖最后由 hkkitlee 于 2019-7-29 22:37 编辑
江南一根葱 发表于 2019-7-29 21:57
KERNEL ipxe.efi dhcp && chain http://10.10.10.10/NFW.ipxe
这个是能用ipxe.efi启到自定义的ipxe文件去 ...


自訂版建議修改/etc/init.d/dhcp.sh

sleep XX........之後就是我的bash了
有自行編好的ipxe也可直接經dnsmasq引導,不用syslinux了.
回复

使用道具 举报

10#
 楼主| 发表于 2019-7-30 00:59:26 | 显示全部楼层
江南一根葱 发表于 2019-7-29 21:57
KERNEL ipxe.efi dhcp && chain http://10.10.10.10/NFW.ipxe
这个是能用ipxe.efi启到自定义的ipxe文件去 ...

是,chain是核心,initrd是核心參數/環境
回复

使用道具 举报

11#
 楼主| 发表于 2019-7-30 00:59:30 | 显示全部楼层
江南一根葱 发表于 2019-7-29 21:57
KERNEL ipxe.efi dhcp && chain http://10.10.10.10/NFW.ipxe
这个是能用ipxe.efi启到自定义的ipxe文件去 ...

是,chain是核心,initrd是核心參數/環境
回复

使用道具 举报

12#
 楼主| 发表于 2019-7-30 12:47:36 | 显示全部楼层
本帖最后由 hkkitlee 于 2019-7-30 12:49 编辑
江南一根葱 发表于 2019-7-30 11:06
上面的脚本已经折腾好了,tinycore配置http用哪个好


    Three steps are required to install HTTP Serwer:
        1. Download and install (tce-load -w -i busybox-httpd.tcz);
              2. Make it load on the each boot (edit file /opt/bootlocal.sh);
                    3. HTML page to load (index.html).


WEB server (busybox-httpd.tcz). Load / install. Short story, skip the rest.

--- Boot from CF card, Tiny Core already installed, text mode ---

tce-load -wi busybox-httpd.tcz
sudo vi /opt/bootlocal.sh
    Esc, i
    add-> /usr/local/httpd/sbin/httpd -p 80 -h /mnt/sda1/wwwsite
    Esc, :, w, q, Enter
sudo mkdir /mnt/sda1/wwwsite
sudo touch /mnt/sda1/wwwsite/index.html
sudo vi /mnt/sda1/wwwsite/index.html
    Esc, i
    add->   <html>
    add->      <body>
    add->         Web site alive
    add->      </body>
    add->   </html>
    Esc, :, w, q, Enter
filetool.sh -b
sudo reboot

--- OPTIONAL --- DD entire of CF card to file on USB disk ---
--- DONE ---


原文:https://skootsone.yolasite.com/netbox-tcore-web.php
回复

使用道具 举报

13#
 楼主| 发表于 2019-7-30 12:57:21 | 显示全部楼层
江南一根葱 发表于 2019-7-30 08:00
想弄个脚本检测u盘是否存在pxeroot文件夹,存在就挂载到mnt/tftproot下,对应tftp-root,bash一窍不通,还 ...

請教下,掛載後怎用?
回复

使用道具 举报

14#
 楼主| 发表于 2019-7-30 13:49:50 | 显示全部楼层
本帖最后由 hkkitlee 于 2019-7-30 13:54 编辑
江南一根葱 发表于 2019-7-30 13:01
挂载后列出里面指定类型的启动文件(比如包含grldr中的"ldr"或kpxe、efi之类的,) 把这个目录的启动文件添 ...


我理解
1應該只欠dnsmasq.conf中tftp的根路徑設成你掛載的tftp-root
2再根據客戶機回報arch所需的指定啟動文件。

不太肯定你是以什麼方式存放啟動文件(分區/硬碟影像/文件夾),所以估計是否這樣?
回复

使用道具 举报

15#
 楼主| 发表于 2019-7-30 14:13:22 | 显示全部楼层
本帖最后由 hkkitlee 于 2019-7-30 14:15 编辑
江南一根葱 发表于 2019-7-30 14:04
嗯,挂载和http tftp啥的我已经瞎搞了下实现了,
就差列表指定目录的文件为启动文件了,


成功不遠了

溫馨提示:記得dnsmasq內指示啟動文件是以tftp-root作為根!不是系統根目錄作根就可以!
完成發個帖出來分享下~

想問問你動態掛載pxeroot是否為了容易於更新啟動文件?
回复

使用道具 举报

16#
 楼主| 发表于 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
回复

使用道具 举报

17#
 楼主| 发表于 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
回复

使用道具 举报

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

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


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

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


恭喜啟動成功了!
回复

使用道具 举报

19#
 楼主| 发表于 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
回复

使用道具 举报

20#
 楼主| 发表于 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
回复

使用道具 举报

21#
 楼主| 发表于 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
回复

使用道具 举报

22#
 楼主| 发表于 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
回复

使用道具 举报

23#
 楼主| 发表于 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
回复

使用道具 举报

24#
 楼主| 发表于 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
回复

使用道具 举报

25#
 楼主| 发表于 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
回复

使用道具 举报

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

EFI那邊有沒有選擇NBP?

点评

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

使用道具 举报

27#
 楼主| 发表于 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
回复

使用道具 举报

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

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

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

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

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

使用道具 举报

29#
 楼主| 发表于 2019-7-31 22:49:22 | 显示全部楼层
guzhentao 发表于 2019-7-31 22:28
最新的版本是在你的官网上下吗?

哈,官網不敢當,小網站好了
https://hkkitlee.ddns.net:9000/ryan.zip

http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

30#
 楼主| 发表于 2019-7-31 22:55:31 | 显示全部楼层
江南一根葱 发表于 2019-7-31 22:26
还是遇到挺多坑的,在tinypxe里,ipxe收到的是next-server,dnsmasq里就变成dhcp-server了
proxydhcp/next- ...

不是坑
只是專用名詞,多用linux就不陌生

還可以實際點,sudo netstat -tunlp
直接問系統開了什麼端口
Pxe:67,69,4011
Smb:137-139,445
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-9-21 07:56

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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