shuimuyq 发表于 2012-12-06 13:32

搭建PXE服务器相关问题

有几个问题:

1:如果局域网内有多台DHCP服务器,PXE-client还能正常网络安装吗??
2:怎么设置PXE-server让PXE-client可以选择不安装而只是网络启动
3:能详细解释下PXE-client的启动流程吗?
比如PXE-client从tftp服务器下载什么文件到本地内存中运行。就像grub的引导启动似的。怎么加载内核等等,越详细越好。

多谢多谢!!!

q1208c 发表于 2012-12-08 21:12

兄弟, 你这东西写全了, 够半本书了.

简单的说, PXE是根据 DHCP 送过来的 nextserver 和 file 选项的参数来 tftp 文件. 一般是 pxelinux.0

pxelinux.0 会根据配置文件 pxelinux.cfg/xxx 来选择下一步的加载项的. 这个xxx的取值分几种情况.

一种是什么都没有, 只有一个 default, 一种是 mac, 一种是 ip, mac 和 ip是 通配方式 的. 优先匹配最多的, 然后一层层少, 直到什么都没有, 匹配 default.

配置文件里可以配置为加载 diskless client 还是 pxeboot install.

更详细的, 你得 google 一下 diskless linux 或 pxe linux install 了.

shuimuyq 发表于 2012-12-08 22:28

PXE-client从DHCP-server那里获取ip和tftp-server的ip(具体细节忽略)
接着从tftp-server里下载pxelinux.0(引导文件)
接着加载vmlinuz(内核文件)initrd.img(根文件系统)//这里的vmlinuz到底是什么东西,大概3M左右大小。我都晕了 到底什么是内核
而且不是系统只要有内核了,加载到内存运行就是一个最最基础的操作系统了吗?回复 2# q1208c


   

q1208c 发表于 2012-12-10 19:40

回复 3# shuimuyq


vmlinuz 就是 压缩过的 linux的 kernel了.

只有内核, 并不能运行, 原因很简单, kernel 需要跟 硬件通信, 而这些硬件各不相同, kernel不可能内置每一种硬件的driver, 因为那样太大了. 所以, 在initrd.img 里有 这些 driver 的 mod . 当然, 有些特别的,针对特定硬件定制的kernel可能不需要initrd就可以运行, 但我没有试过. 具体要看这个 vmlinuz 解开后的代码的执行情况了.

不知道兄弟你要了解这个过程做什么呢?

有些事, 未必知道的越细越好. 尤其是在你对它还不太了解的时候.

如果一开始就追求细节, 你可能会走不下去的.

shuimuyq 发表于 2012-12-11 20:36

说来也只是纯粹对启动模块感兴趣。
之前也了解了一些grub引导启动问题。
其实我自己对硬件也不了解。确实有点走偏了。
多谢前辈!!!回复 4# q1208c


   

action08 发表于 2012-12-12 09:39

q1208c 发表于 2012-12-10 19:40 static/image/common/back.gif
回复 3# shuimuyq




所以名校追求让大师授课的价值就可以出来做到补充了{:3_200:}
页: [1]
查看完整版本: 搭建PXE服务器相关问题