无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 17291|回复: 8
打印 上一主题 下一主题

Aoe Diskless

[复制链接]
跳转到指定楼层
1#
发表于 2014-4-14 16:08:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2#
 楼主| 发表于 2014-4-14 16:11:00 | 只看该作者
TARGET  WINTARGET AOE SERVER  X86 X64有旧版本的破解,未破解是FREE版,支持1个TARGET
WINAOE 是 open source GPLv3 软件
回复

使用道具 举报

3#
 楼主| 发表于 2014-4-14 16:21:14 | 只看该作者
  http://winaoe.org/download/winaoe-0.97g.zip 压缩包中有aoe.0这个文件,放在TINY PXE SERVER目录下,指定为启动文件,配合option root-path "aoe:e0.0"即dhcp option 17 (0x11)可以Disk less来BOOT了。
回复

使用道具 举报

4#
 楼主| 发表于 2014-4-14 16:22:14 | 只看该作者
以下是winaoe-0.97f.zip包中的内容,在0.97G中是没有的。
WinAoE (http://winaoe.org/)

Diskless AoE Driver for:
Windows 2000
Windows XP
Windows XP 64bit
Windows 2003
Windows 2003 64bit
Windows 2003R2 *
Windows 2003R2 64bit *
Windows Vista
Windows Vista 64bit *
*) Not yet fully tested, should work, but need more confirmation.


This driver and code is free software, released under the GPL v3. See gpl.txt and http://www.gnu.org/ for more information.
This readme.txt is slightly outdated, still need to update it with all new options added after 0.95.
In general, the installing information still is the same though.


This driver will take diskless netbooting and general AoE access to the windows world.
To use this driver you must either image a working installation with the driver installed or use a real hard disk with an installation with the driver installed.
Using the driver in Windows Setup mode is not yet supported (this might change in the future using RIS).


Installing AoE:
For normal AoE disk mounting, you can simply install the AoE driver through "add new hardware -> choose -> scsi" and use the aoe utility to scan and mount available blades.
Run aoe from a command window to see the options.


Installing Diskless AoE:

Server side setup:
To make it all work, you need Etherboot capable NICs, either getting Etherboot over PXE or from another media as a floppy.
We'll take the pure pxe road here, to use another media, you can ignore some setup steps here.
The example here uses an Intel pro 1000 card, change to reflect your own settings where needed.
Also, the example here is mainly based on a Slackware Linux server, but it should be very similar for other distributions.
For windows servers, scroll down.

1. make a tftpboot directory in /, add the aoe.0 file to it and enable the tftp daemon

  mkdir /tftpboot
  cp /path/to/aoe.0 /tftpboot
  add the line "tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot -r blksize" to /etc/inetd.conf
  /etc/rc.d/rc.inetd restart

2.a make  an Etherboot zpxe image for your NIC on http://rom-o-matic.net/
   .. or ..
2.b download and unpack the Etherboot source package, compile the correct zpxe driver for your NIC and add the file to tftpboot

  wget http://heanet.dl.sourceforge.net ... rboot-5.4.2.tar.bz2
  tar xfj etherboot-5.4.2.tar.bz2
  cd etherboot-5.4.2
  make bin/e1000.zpxe
  cp bin/e1000.zpxe /tftpboot

3. edit your dhcp configuration to look like this:

    host Client {
      hardware ethernet 00:01:02:03:04:05;                        # the mac address of your boot NIC
      fixed-address 192.168.0.3;                                # your client's IP
      if substring (option vendor-class-identifier, 0, 9) != "Etherboot" {
        filename "/e1000.zpxe";                                        # the file made in step 2
      } else {
        filename "/aoe.0";                                        # aoe.0 file found in the archive
      }
      # next is root-path, this is dhcp option 17 (0x11) if you have to manually specify it.
      option root-path "aoe:e0.0";                                  # major and minor id of vblade
    }

4. restart dhcpd

  killall -9 dhcpd
  dhcpd


This concludes the server side setup.
The only thing needed besides this the target AoE device, for instance vblade or AoE hardware from http://www.coraid.com/
Vblade is an linux software version of the latter.


Client setup:
On an installed system, install the AoE driver through "add new hardware -> choose -> scsi"
After installing, go in regedit to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
There, search the key for the boot NIC (in the case of an Intel E1000 it would be E1000, the one in VMware is VMXNET) and change the "Start" key to 0 (boot).
The AoE driver will automatically load itself before atapi.sys, but it will only boot from a netboot disk if started from the net through aoe.0.
This means you can, for instance, install on a real hard disk, put the disk in a server or conraid enclosure, netboot from it, and when you want to boot from it in a normal way (attached to the PC itself) you can put it back and let it boot as normal.


Client imaging in vblade:
The image to boot from can be any file or block device on the Linux server.
The driver will take the heads/sectors/cylinders automatically from the partition table, so any real or fake disk image will do (if there is no partition table, it will default to 63 sectors/track, 255 heads).
The easiest way to do get a workable block device is taking a hard disk of an installed system or a Vmware full disk image, but also own made images, partitioned in Linux fdisk, will work.

There are a few ways to make an image, with the easiest being just taking a live working hard disk and using that block device, or making an image (with dd) from a working disk to a file on the Linux server.
Another handy way is to install on a small partition, dd the partition AND the 1st 63 sectors before that patition to a linux block device (raid devices for instance), and lastly use the linux ntfsresize util to expand it to the full device.
This option lets you store a small (4gb) file as a fast way to reinstall, yet have a big raid disk to install to.


Windows server:
All above steps concerning dhcpd and tftp could also be run on a windows server without any problems, check your manual how.However, vblade ofcource does not run on windows, so you must use either conraids enclosures, or find a working AoE windows target.
To counter these issues just use a proper server OS (linux/bsd/other unix like systems).


Compiling:
To compile this you need either MSYS or the windows 2003 DDK, preferably both.
Set the path to the ddk in config.bat and run the bat files makefree or makechecked to build everything but aoe.0.
aoe.0 will not be deleted and is prebuild in the package, so you can get away with only using the ddk.
To build aoe.0 you need msys or a linux box (type make in the pxe.asm or pxe.c dir in linux to compile it).
MSYS can also build the driver itself, but only the 32bit version, and it will not generate windbg symbol files.
Also, the MSYS generated driver has a higher chance of failing, due to compiler bugs.
When compiling the driver with makefree/makechecked or in msys with make, a loader32/64.exe will also be build to quickly install the driver without going through the control panel.
This is mostly usefull in virtual environments (vmware) where the disk is nonpersistant.
With it you can simply reboot the virtual machine to restart anew, and start loader.32 to boot it (using debugview http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx to see debug output)

Lastly, the txtsetup.oem file is not needed as of yet, it is part of the "to be" RIS function (if that will ever work)


TODO's, Notes and known issues:
0. Big TODO... fix this readme.txt (like adding compile information).
1. you CAN NOT change the position of the NIC in the PCI slots! (you should however be able to change nics around by adding a second nic, booting over the first, setting the second to start at boot and then removing the first)
2. There might be ways in the future to install directly to conraid hardware/vblade using RIS, but options are limited and might not work.
3. The driver will not work with the original drive attached. to fix this, either remove the "group" parameter in the service entry in the registry of the driver on which the disk is attached (for atapi this is done on installing the AoE driver, for sata, scsi and others, search the correct service), or zero out the MBR of the drive.
4. adding new pci cards might be slow (need confirmation on this).
5. unstall StarPorts AoE driver for now, they conflict. don't know why (starports fault, that's the one to crash after we have loaded).
6. qemu, virtualbox and in some cases real hardware fails with lots of PacketAllocation errors, unknown cause as of yet (happens in vmware on windows 2000 too).
7. Userfriendlyness is lacking
8. Client trunking and Server trunking is not yet enabled.
9. aoe.0 does not work with Vista yet, use gPXE's AoE support for now.
10. unmounting when multiple disks are mounted may cause a BSOD. unmounting when only a single disk is mounted should be ok.
回复

使用道具 举报

5#
 楼主| 发表于 2014-4-14 16:23:06 | 只看该作者
似乎对网卡的驱动有要求,要求是RIS驱动
回复

使用道具 举报

6#
发表于 2021-5-19 12:10:05 | 只看该作者
有完整使用aoe引导windows方法吗?
回复

使用道具 举报

7#
发表于 2021-10-31 09:36:21 | 只看该作者
我最近使用AoE方案,无盘启动64位Windows 7成功了。

之所以选择AoE,是因为常规的iscsi方案遇到一个莫明其妙的问题。使用iscsi方案的无盘Win7只能在无外网连接的状态启动和使用,一与外网连接,无盘Win7就会死机或无法启动。网上也没有查到其他人遇到类似的问题,实在搞不定,只能选择AoE。

AoE方案其实并不支持Win7,主要是因为其驱动没有签名,无法在Win7中正常安装,解决这个问题的方法就是把Win7置于测试模式启动,然后强制安装AoE驱动。要想用AoE成功启动Win7,有一个“秘决”,就是安装一下遥志CCBoot无盘软件的客户端驱动。尽管CCBoot是基于iscsi的,无AoE毫无关系,但其客户端可能修改了Win7的某些参数,使得AoE也能从中受益。当AoE启动成功后,再把CCBoot的客户端卸掉,仍然可以成功启动,但系统不装一下CCboot客户端好象就是不行,我也说不清其中的原因。

AoE无盘适合小规模使用,不需要商业无盘软件的支持,服务器端建议使用linux系统,我使用的是老旧的centos 6,使用的软件组合是dnsmasq+pxelinux+ipxe+ggaoed,其中ggaoed是高效的AoE服务器,比标准的vblade运行效率高,需要下载源码自己编绎。每个客户机开16G大小的分区,安装64位Win7精简版,并安装好必备的作业软件,提供给客户端无盘启动。装的都是大型的平面设计软件,占用空间比较多,安装完软件剩余空间只有3G左右。如果只使用小软件,8G就够了。如果是XP系统,需要的系统盘空间更少。客户端启动后,所需要的作业文件由samba文件共享提供,在正常使用中,无盘系统并不消耗系统盘的空间。

与iscsi相比,AoE在随机存取方面比iscsi性能好,但在顺序存取方面比iscsi性能差得多。表现为AoE无盘启动速度比iscsi快,但在磁盘分区的网络对拷时,在千兆网络环境中,AoE最多只能达到40M字节每秒,而iscsi则可以达到100M字节每秒以上。

使用无盘系统可以加速老旧的电脑。老旧电脑的速度瓶颈其实主要在硬盘,机械硬盘随机存取的性能很低,大文件拷贝很快,数量多的小文件,拷贝速度就很慢。如果使用无盘系统,可以利用服务器强大的磁盘缓存能力,改变客户端数据存取的性能,操作上感觉更流畅一些。虽然使用固态硬盘可以更好的解决问题,但质量好的固态硬盘价格比较贵,如果电脑的数量多,一起升级到固态硬盘也是一笔不小的投资。无盘方案既节省了硬件成本,又提高了性能,还降低了故障率,是一举多得的好方法。

这两天遇到一个新问题,就是ipxe好象不支持Atheros有线网卡,无法在载有Atheros网卡的主板上使用AoE无盘。使用WinAoE软件包中的aoe.0也没有启动成功,正在设法解决这个问题。

回复

使用道具 举报

8#
发表于 2021-11-2 16:50:51 | 只看该作者
这几天把iscsi协议的WIN7无盘完全弄成功了,关闭WIN7的一些服务,就可以解决WIN7无盘一上网就卡死的问题。具体是哪一个服务有问题并没有完全摸清,反正关掉不少不需要的服务就正常了。现在同一个WIN7镜象,AoE或者iscsi都可以用。AoE启动速度比较快,iscs在操作大文件时性能应该更好一些。ipxe不支持某些型号的网卡问题也解决了,使用undionly.kpxe这个启动模块就行了。

如果电脑本身的性能不高,百兆网卡和千兆网卡速度上的差别并不大。对于老旧电脑来说,系统的负荷主要在执行代码而不是加载数据上面,系统读取网络系统盘的操作并不很密集,流量并不大。千兆网卡只有在密集传输大量数据时,才能体现出速度优势。另外Windows系统有数据缓存能力,第一次打开某个大型软件,百兆网卡可能稍慢,第二次打开,系统就从缓存中读取了,与网卡没有关系了。
回复

使用道具 举报

9#
发表于 2021-11-4 10:15:47 | 只看该作者
目前我的Windows无盘系统服务器端的架构是CentOS6 + dnsmasq + pxelinux + ipxe + ggaoed + cowloop + scsi-target-utils,客户端是winaoe以及Windows7自带的iscsi-initiator-utils。
其中cowloop是linux块设备写时拷贝的内核驱动,用于多个无盘机共享同一镜象,以及回写的撤消。
cowloop是一个很古老的软件,现在的linux版本早就没有这个东西了,类似的功能一般用逻辑卷LVM来实现,我不太喜欢LVM,故选择cowloop。cowloop的缺点是用起来比较麻烦,占用内核空间的内存比较多,以后有功夫的话,想把cowloop的功能集成到ggaoed中。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-1 08:16

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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