|
本帖最后由 510819776 于 2014-11-14 00:33 编辑
如果软件无法使用
就用servers ultimate pro 6.3.10的pxe吧
这货貌似不支持g4d出菜单 不过有人测试可以出菜单 也不知道哪个版本grub4dos 我就挺郁闷了
只用pxelinux或ipxe的同志 这个是不错的选择 兼容性不错
不过自带的http服务不支持ipxe的sanboot
bukerpxelite 原理和我的app一样 核心就是一个dnsmasq 不过它的dnsmasq不集成tftp 所以它弄了一个busybox来提供tftp服务 在我的安卓4.0手机上无法使用
网上能找到一款androidtftp的软件 可以提供tftp服务 不过默认端口是6969 无法用于网络启动
如果有高手能修改这个app 让他直接提供69端口的tftp服务
然后配合servers ultimate的pxe服务 也是个很不错的网络启动方案
servers ultimate集成的tftp服务器 似乎也不给力
如果用完整命令的busybox 也能配置出pxe服务来
但不知是busybox的tftpd功能缺陷还是grub4dos的tftp模块有问题 启动不出菜单
2014年10月17
可自定义pxe的引导文件和tftp目录
直接点击启动pxe 可使用内置g4d
bukerpxe server和我的这个软件原理一致 但tftp服务用的是busybox的
内置的tftp目录位于 手机默认存储pxe文件夹下的tftp目录
默认引导文件g4d.0 支持dhcpproxy
需要ipxe的可以把ipxe文件换成g4d.0 取代即可
http目录默认也是pxe下tftp 修改目录的话修改http.conf即可
想用手机启动ubuntu等linux可以配合内置的nfs来用
windows就不要考虑了 集成核心的网卡驱动比较麻烦
iscsi 服务apk 似乎没人感兴趣
暂时不折腾了 反正我自己用起来也没问题 料想网盘的应该问题不大才是
刚刚测试了一下
2014年10月19号
将软件的调试功能完善了
失败者 直接提供调试信息
便可以对症下药
等bug完善 再加入http和nfs功能
iscsi就算了 真要折腾就用网盘的那个iscsi 的apk 如果不能用 点开那个apk后
自己去超级终端 编写脚本来运行 我就不修改了
我手机运行毫无问题
个人认为要手机网络启动速度快
1.手机路由都至少要支持11n
2.尽量使用lpxelinux.0或ipxe.0 这两个东西都直接支持http ftp协议 配合我的app提供的http服务 载入pe.iso也可以达到6M/s
而且ipxe支持http方式的iso直接启动 和 iscsi cdrom有异曲同工之妙
lpxelinux.0目前没测试过sanboot功能 以后有机会也研究下 哈哈
2014年10月20日最新调试版
名字还是叫dnsmasq
添加http nfs 功能
另外 菜单键可保存配置
本http只作为ipxe或pxelinux以及wimboot的http启动来用 所以和tftp共享目录
另外这个http如果大家直接浏览器输入 手机ip 回车 会看到自己手机的对应http目录文件列表 可以简单的提供文件共享
nfs就不说了 懂linux的都知道 只为折腾linux无盘而生
软件写到这里对我来说就算完美了
如果pxe开启提示权限问题 试试 附加参数填写-g sdcard_rw或-u root -g sdcard_rw试一下
-u 用户名 -g 用户组
常见的用户名root shell system等 用户组的话一般sdcard_r或sdcard_rw 或root/system/shell等 都可以试一下
此软件的编写无java方面的东西 基本都是基于android shel和busybox
就这样吧
如果无法使用 那你们去用servers ultimate吧 对grub4dos支持不好 不过对pxelinux和ipxe应该还不错
已经够用了
折腾好久 看来写安卓软件 当开发者不是轻松的活
当然没有tiny-pxe-server 那么给力
2014年10月21日
因为编写软件已经能在自己手机上成功完美运转
所以不再发布新版本了
如果使用C大或我的app工作不正常的
告诉你们一个曲线救国的方案
其实servers ultimate最新版内置了pxe服务
只不过唯一的遗憾就是此PXE的tftp有些毛病 我测试出不了grub4dos的菜单
而如果是dnsmasq提供的tftp就没有这个问题
至于bukerpxelite原理就是dnsmasq 不过它提供的tftp服务也是稀烂
接下来要讲的就是 如何曲线打造完美的 pxe服务 for androd
过程很是曲线 不过结果却不会太差
手机必须root 是否有busybox不重要
1.安装最新版的servers ultimate 6.3.10吧
2.安装andtftp 1.2
#开启tftp服务
打开andtftp 然后设置下tftp目录 块大小 随意 然后点击启动服务器
#tftp服务配置完毕
重点来了
打开servers ultimate 6.3.10
#添加Port Forwarder服务
切换到rules
添加一个rules
type选择 custom
然后把两个编辑框里面的 21都改成69 2121都改成6969 tcp都改成udp
保存
#port forwarder服务配置完毕
#配置pxe服务
添加dhcp Proxy server
general设置页面勾选 Use root for internal port forward
specific页面填写bootfile
保存
#PXE服务配置完毕}
补上一个 用busybox udhcpd做pxe服务器的配置文件
udhcpd.conf
start 192.168.2.2
end 192.168.2.10 dhcp分配ip
option subnet 255.255.255.0
interface wlan0 手机网卡名
siaddr 192.168.2.162 tftp服务器ip
boot_file g4d.0
option dns 8.8.8.8 114.114.114.114 可以不要
子网
option router 192.168.2.1 可以不要
option domain local 可以不要
option lease 600 可以不要
用法 busybox udhcpd udhcpd.conf启动即可
网上的很多busybox都没有udhcpd命令 去我网盘下载我编译的完整版busybox
tftp就用andtftp即可 别忘了做端口转发 iptables**
如下命令 可以在端口之间进行数据转发
比如 andtftp服务软件 默认端口6969 且无法修改 但是我们想让他作为pxe的tftp服务器 所以必须开放端口69
我的安卓4.0手机内置iptables 安卓2.3也有 其他手机不知道 但是想必也自带吧
#添加端口转发
iptables -A PREROUTING -t nat -p udp --dport 69 -j REDIRECT --to-port 6969
iptables -A INPUT -p udp --dport 69 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
这命令执行会有错误信息 但是不用管他
接下来你会发现用电脑去下载你手机69端口的tftp服务器文件没问题了
当然6969端口也是可以用的
#删除端口转发
iptables -D PREROUTING -t nat -p udp --dport 69 -j REDIRECT --to-port 6969
iptables -D INPUT -p udp --dport 69 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
这货可以让非root的软件使用1024以下端口 当然你手机必须root
这货的tftp服务性能很完美的说
端口转发完毕后 就开启pxe服务就行了 哈哈 设置好启动文件 啥时不管就行了
做个最简单的教程
假设你手机 wifi ip为 192.168.2.162
iptables -A PREROUTING -t nat -p udp --dport 69 -j REDIRECT --to-port 6969
iptables -A INPUT -p udp --dport 69 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
将上面内容保存为69 拷贝到/system/bin/69 用re文件管理器给它 权限
iptables -D PREROUTING -t nat -p udp --dport 69 -j REDIRECT --to-port 6969
iptables -D INPUT -p udp --dport 69 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
将上面内容保存为6969 拷贝到/system/bin/6969 用re文件管理器给它 权限
start 192.168.2.2
end 192.168.2.10
option subnet 255.255.255.0
interface wlan0 一般应该是wlan0吧 特殊的特殊对待 用busybox ifconfig -a 可以看到
siaddr 192.168.2.162 tftp服务器ip 也就是自己的手机wifi ip
boot_file g4d.0 引导文件
将上述内容保存为pxe.conf 放到sdcard目录下
则要开启pxe服务 需要做的事情就是
打开超级终端 输入
su
69
busybox udhcpd /sdcard/pxe.conf
然后把你的andtftp的服务开启
好了 你的手机已经可以网络启动了
关闭pxe功能
关闭andtftp服务
su
6969
killall busybox udhcpd
完毕
就这么简单 明白??
或者弄本帖的dnsmasq
以上方法 可以做到兼容grub4dos
如果不需要grub4dos
可以考虑用servers ultimate
或用上面的busybox 但是不用andtftp 而改用busybox内置的tftpd服务
启动命令如下
busybox udpsvd -E 0.0.0.0 69 tftpd /sdcard/tftpboot
busybox 我网盘有
用busybox安装器安装的 不完整 可能没有udpsvd tftpd httpd udhcpd ftpd等功能
2014年11月10号
公布iscsi target.apk tiny-pxe-server.apk nginx-web-server的源码
还有个vblade 是aoe target 有时间在编写个安卓的图形界面吧
现在发现iscsi其实很给力
启动linux用nfs 没问题
而启动win8pe 就用iscsi或/aoe 都可以
可以把 手机的sd卡 整个共享给 win8pe 这里的共享是基于设备的共享
这样就可以直接用windows系统 通过无线 用磁盘管理或其他分区工具对手机sd卡直接进行分区了
当然也可以用samba 不过速度就慢多了 而且samba是给予文件的共享
而且pxe启动iscsi和aoe都是比较成熟的 速度也不算慢
我目前用的是 第三方的starwin iscsi/aoe initiator客户端 直接在支持网络的win8pe上安装后就能挂载 非常方便 电脑会多出一个物理的硬盘 就是手机的sd卡
因为本人sd卡是hfsx文件系统 导致win8pe无法识别 结果就出了盘符 双击提示 未格式化
不知道哪位大侠知道 怎么给win8pe集成hfsplus支持
如果sd卡是ntfs或vfat 那么直接就出盘了
测试版下载地址是
链接: http://pan.baidu.com/s/1dDtNTOP 密码: 8lks
源码 易安卓3.9/4.0编译
链接:http://pan.baidu.com/s/1dDIRcvZ 密码:4m96
当我以为自己的手机可以开启pxe http iscsi aoe nfs之后就给力无比的时候
我突然发现我的主板居然不支持uefi pxe启动 这不是典型的坑爹么?
这主板uefi启动优盘 硬盘是没有问题的 我还进去过外置的shell
后来再三思考 想到一个问题
我的主板bios 刷过 刷了联想win7三激活
现在突然想到自己的主板无法uefi启动pxe 但是可以普通方式pxe
于是乎推测出大约是 slic 2.2模块把我的uefi bios内置的pxe给替换掉了
这真是坑爹呢 虽然虚拟机vmware10可以测试 不过怎么有真机给力
最后苦思冥想 终于让我的电脑支持了uefi pxe启动
方法也不复杂
bios boot设置
第一启动项是默认的efi/boot/bootx64.efi
同时开启pxe功能 把普通pxe的启动项设置为第二项
第三项禁用
然后开机后会自动 加载bootx64.efi 进入uefi shell 2.31
之后我从官网下载了reltek8168网卡的uefi udi驱动
然后跑去ipxe的定制网站https://rom-o-matic.eu/ 定制了一个64位 ipxe.efirom
注意这个网站需要用到google服务器的js脚本 也就是说要翻墙材可以正常编译
然后呢 在uefi shell输入
load 8168.efi
loadpcirom ipxe.efirom
然后输入exit退出shell
之后会再一次进入uefi shell
就再一次输入exit退出shell
然后uefi pxe启动就正式开始了
我将手机的dnsmasq设置引导文件为bootmgfw.efi 启动一个win8.wim 322M 花了大约三分钟后顺利进入win8 64位的pe桌面
然后把手机的dnsmasq设置引导文件为ipxe.efi 开启http服务 用wimboot方式加载bcd boot.sdi bootmgfw.efi win8.wim 还是322M 用了1分多钟进入了win8pe桌面
到这里 我对手机网络启动 就算是到位了
目前用手机配合无线路由 临时装机最好的方案是
手机启动iscsi服务 http服务 pxe服务 然后通过sanboot http或iscsi 或wimboot方式启动到pe环境
然后 pe下用iscsi发起启连接手机端的iscsi服务 比如iso镜像或整个sd卡都行
当然不弄iscsi的话 直接用http将手机镜像下载到电脑后本地安装一样的效果 就是多浪费点时间
win8x64pe下测试手机iscsi磁盘性能 读取 6.7M/s 非常稳定
测试手机http下载性能 读取7M/s 非常稳定
测试手机aoe服务磁盘性能 读取4.6M/s 速度曲线波动挺大
测试手机samba服务 读取3.8M/s 非常稳定
有个httpdisk 可以把http的iso挂载为光驱 我没测试过性能 谁帮测试下
ubuntu 64位测试手机nfs服务性能 读取接近6M/s 非常稳定
想弄手机pxe装机的可以参考这些数据
手机是135M无线连接 路由150M 有线环境是100M
总之 主板的uefi pxe功能能被我想办法补救回来 我十分开心
只不过uefi pxe启动可选择的引导文件 比较纠结
windows用bootmgfw.efi 或ipxe配合wimboot
syslinux.efi我测试了一下 能出菜单 但是不知道为啥 喜欢卡死
ipxe.efi的kernel和initrd命令似乎不能用来启动linuxmint 17 x64 不然直接死机
所以呢 我现在估计只能弄grub2.efi的uefi pxe启动了
各位如果有uefi pxe的好的引导efi可以推荐下 呵呵
|
|