|
我也写了一篇,其实这个方案的核心关键是一个可以在andorid下使用的dnsmasq有了它就足够了
记录一下dnsmasq pxe的实现(Android手机)
手机里也有dnsmasq,搜了一下还真有人想实现通过手机进行pxe。
已经找到一篇在手机里使用dnsmasq的文档
http://forum.xda-developers.com/showthread.php?t=995347
前期为了保证成功先用下面的设备先测试了一下。
ASUS RT-N16 刷Tomato v1.28.9054 MIPSR2-beta K26 USB vpn3.6
tftpd32
TL-WR700N通过客户端方式进行pxe连接 成功
pxelinux+grub4dos pxe软件环境
根据dnsmasq提供的dnsmasq.conf.example 可以直接通过dnsmasq内建的tftp server进行pxe,也可以通过连接LAN内的其它pxe server进行pxe。
http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq.conf.example
附加的基本示例
dhcp-option-force=208,f1:00:74:7e
# Configuration file name
dhcp-option-force=209,PXELINUX.CFG/default
# Path prefix
dhcp-option-force=210,/mnt/sda1/pxelinux/
# Reboot time. (Note 'i' to send 32-bit value)
dhcp-option-force=211,30i
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/mnt/sda1/pxelinux
#pxe-prompt="What system shall I netboot?"
#pxe-service=x86PC, "Install Linux", pxelinux
目前直接使用dnsmasq的话都可以直接通过pxelinux或者grub4dos成功引导标准的1.44 2.88M DOS镜像。但是引导winpe遇到ntdetect failed的问题。按网上的文档描述应该是windows 和 unix 路径斜杠导致的问题。
http://www.msfn.org/board/topic/122943-problem-booting-windows-pe-20-over-pxe/
http://community.norton.com/t5/Other-Norton-Products/Ghost-14-Recovery-booting-over-network-PXE/td-p/243523
只是手机里没有tftp-hpa for android port也搜不到有关dnsmasq remap的实现,试了一下整体载入winpe iso倒是成功的。
GRUB4DOS的实现
title WINPE
#find --set-root /A.ISO
map /A.ISO (0xff) || map --mem /A.ISO (0xff)
map --hook
chainloader (0xff)
boot
pxelinux实现
label 1_00
MENU LABEL 0^0 WINPE .
MENU INDENT 2
LINUX /boot/syslinux/memdisk
INITRD A.ISO
APPEND iso raw
耶在motorola 860上测试成功。其实步骤跟在路由里都一样的。只是860内置的dnsmasq精简不支持DHCP和tftp服务。这里有个支持tftp的dnsmasq可以安装在android手机上
http://code.google.com/p/android-wifi-tether/source/browse/trunk/res/raw/dnsmasq?spec=svn120&r=120
1.首先取得系统root权限
motorola官方提供的 2.3.5 android 升级文档 http://www.motorola.com/staticfiles/FileScan-Support/Support/CN-ZH/SDcard/ME860/ME860_upgrade.pdf
使用1-click_exploit .zip取得root权限
[HOWTO] Root the Atrix 2
http://forum.xda-developers.com/showthread.php?t=1327741
2.安装busybox apk软件支持
3.使用gscript加载相应的命令
http://forum.xda-developers.com/showthread.php?t=486486
pxelinux.sh
busybox killall dnsmasq
/da/dnsmasq --conf-file=/sdcard-ext/da/pxelinux.conf
pxelinux.conf
#pid-file=/sdcard-ext/da/dnsmasq.pid
interface=eth0
#listen-address=192.168.12.135
#dhcp-range=192.168.12.1,192.168.12.10,255.255.255.0,120m
# pxe
dhcp-option-force=208,f1:00:74:7e
# Configuration file name
dhcp-option-force=209,PXELINUX.CFG/default
# Path prefix
dhcp-option-force=210,/sdcard-ext/da/pxelinux/
# Reboot time. (Note 'i' to send 32-bit value)
dhcp-option-force=211,30i
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/sdcard-ext/da/pxelinux
好了这样就可以了。使用pxe启动就可以了,只是加载100多M大的winpe通过手机无线(65mbps)整体载入还是远远慢于通过U盘方式(<6.5MB)直接通过rt n16内建的dnsmasq进行传输,有空再测试一下传输最慢是哪个环节。
* 2012年2月28日星期二
- 今天google的时候发现这篇文档被转成了繁体。
- 没事就继续测试motorola 860 android 2.3.5 里的热点部分,这样就少了一个中间连线用的路由。
早先测试时我应该是用/system/bin/dnsmasq加载过一份支持DHCP和tftp的配置文件的当时提示说系统自带的不支持DHCP和TFTP功能的。不知道这个热点的DHCP是如何实现的ps | busybox dnsmasq。然后原想系统已经起了一个dnsmasq进程,我再运行一个支持tftp功能的dnsmasq,结果没有配置成功或者说不知道怎么让第二个dnsmasq不支持DHCP功能。后来只能用kill消灭 热点 自己加载的dnsmasq结果当时发现那个进程带 Z 标记怎么也消灭不了。后来不断的反复操作,也不知道怎么回事系统自带的dnsmasq又变成S标记。哎由于过程不可重现就不再讨论。热点模式下识别为54mbps,不知道怎么搭建平台来测试连线速度就不出数据了。
热点时用ifconfig来获得接口为 interface=wl0.1
用来鉴别用的脚本
kill -9 `ps | busybox grep "/bin/dnsmasq" | busybox awk '{print $2}'` #这里都有点差别最先看到的是Z dnsmasq后来不知道为什么又变了。。。
kill -9 `ps | busybox grep "/da/dnsmasq" | busybox awk '{print $2}'`
/data/da/dnsmasq --conf-file=/sdcard-ext/da/pxelinux.conf
- 以后基本不再对这篇文档进行更新。意义不大,当时专门花了两倍价钱去买了张class 10甚至支持UHS的业界最快的MicroSD卡结果就算USB拷贝原先最高还见过13mb/s,今天最高只见到5mb/s。商品标记最高速度 读40mb/s 写20mb/s。无语。受制于这个可怜的传输速度,只能通过这篇文档来感受一下Android的可玩性。
* 2012年2月14日星期二
- 完成手机测试
- 通过查询http://www.syslinux.org/wiki/index.php/MEMDISK#ISO_images
/ pxelinux也可以正常的以ISO方式加载winpe
需要追加raw参数不然在hasee hp520仍然会出现加载到菜单启动界面时直接重启。
APPEND iso raw |
|