Author

Topic: Mixed operating system PXE booting (Read 1830 times)

sr. member
Activity: 658
Merit: 250
April 26, 2012, 09:16:07 AM
#6
I have tried to get Windows PXE booting to work for other reasons, but it was really problematic. The best I could do was boot a custom Windows PE (Preboot Environment) image, which was fully loaded to memory from a TFTP/HTTP server. I have no idea how I would configure a true installation to use a ramdisk as its system disk. iSCSI is one possible way to network boot Windows 7, and that could be done by installing straight to an iSCSI target and then booting from there (this is the better way, if you get the iSCSI target to show up during installation), or trying to convert an existing installation to an iSCSI target image. I tried both a few times, unsuccessfully. I managed to get a converted image to boot, but it just gave the BSOD for missing system disk. Is it actually possible to run a full-blown Windows 7 image downloaded from network without using iSCSI?

I don't need lecturing for PXE booting in general, but any Windows-specific information would be helpful.
hero member
Activity: 546
Merit: 500
April 24, 2012, 01:47:05 PM
#5
You might be able to write a script that pulls a unique identifier from the machine, usually MAC address, upon starting. Then, the script would contact a local web server using the unique identifier as a GET or POST argument, which would then either reply with static files, or would reply with config files that are generated on the fly.

So for example, you could say that MAC addresses a, b, c, and d all need to mine on a different pool for a day or 2, so you would poke that into a (php?) web server config/script, and then reboot the miners. When they boot, they will get the alternate config. Now obviously changing the values on the fly is more ideal and should be used, but you could combine both to have quick and easy recovery from crashes.

EDIT: Obviously, the most ideal situation would be to provide only a bare minimum of config on boot, and do the rest after boot to give you the best flexibility. Also, a good DHCP router  server can be told to reserve an IP for a specific MAC so everything can be configured based on IP address.

I hadn't thought about using a web server as a way to request a config file.  That's quite clever.

I think I'm getting some ideas of how this might work.  Next step might be to try testing it out and see how easy it is to implement and use.
rjk
sr. member
Activity: 448
Merit: 250
1ngldh
April 24, 2012, 01:36:05 PM
#4
Thanks Marked!

This is really helpful.

In this case I have one kind of board with dual NICs, but the other has only one NIC.  I'm not sure what you do in that case.

I'm thinking that maybe the way to do it would be to change the image on the tftp server and then restart each machine

One question: How would persistence work for each rig?  For example, let's say each rig has a different config file that it needs for its specific config.
You might be able to write a script that pulls a unique identifier from the machine, usually MAC address, upon starting. Then, the script would contact a local web server using the unique identifier as a GET or POST argument, which would then either reply with static files, or would reply with config files that are generated on the fly.

So for example, you could say that MAC addresses a, b, c, and d all need to mine on a different pool for a day or 2, so you would poke that into a (php?) web server config/script, and then reboot the miners. When they boot, they will get the alternate config. Now obviously changing the values on the fly is more ideal and should be used, but you could combine both to have quick and easy recovery from crashes.

EDIT: Obviously, the most ideal situation would be to provide only a bare minimum of config on boot, and do the rest after boot to give you the best flexibility. Also, a good DHCP router  server can be told to reserve an IP for a specific MAC so everything can be configured based on IP address.
hero member
Activity: 546
Merit: 500
April 24, 2012, 10:13:54 AM
#3
Thanks Marked!

This is really helpful.

In this case I have one kind of board with dual NICs, but the other has only one NIC.  I'm not sure what you do in that case.

I'm thinking that maybe the way to do it would be to change the image on the tftp server and then restart each machine

One question: How would persistence work for each rig?  For example, let's say each rig has a different config file that it needs for its specific config.
full member
Activity: 168
Merit: 100
April 24, 2012, 06:40:02 AM
#2
I could use some advice from anyone who has had some experience with various PXE configurations.

Here's what I want to do.  I have a few machines that mostly mine using BAMT.  But on occasion I want them to load a Windows image for some Windows-only software.

Is there a way for this to be done? If so, how?
Does the board have more than one nic and can boot from them? if so assign a mac address to an ip in the dhcp server, and then assign images to ip pools.

Then just swap the cable and reboot.

or just swap ip addresses between pools that have images associated with them.

ie. 192.168.0.1-192.168.0.15 = /pxe/boot/windows.img
    192.168.0.32-192.168.0.63  = /pxe/boot/bamt.img

depending on the tftp server, you may need to just swap .cnf.


Quote
Also, can I centrally reboot these machines and have them restart with a different image?  For example, let's say a rig is running a BAMT image now but I want it to switch over to Windows.  Can I tell the rig to reboot and load the Windows image from a central point?

that would probably require a script to alter the ip address(es) within dhcp then issue a remote login using ssh to reboot.

A windows reboot can also do the same by using from another windows machine "shutdown -m \\

marked
hero member
Activity: 546
Merit: 500
April 23, 2012, 05:32:29 PM
#1
I could use some advice from anyone who has had some experience with various PXE configurations.

Here's what I want to do.  I have a few machines that mostly mine using BAMT.  But on occasion I want them to load a Windows image for some Windows-only software.

Is there a way for this to be done? If so, how?

Also, can I centrally reboot these machines and have them restart with a different image?  For example, let's say a rig is running a BAMT image now but I want it to switch over to Windows.  Can I tell the rig to reboot and load the Windows image from a central point?
Jump to: