Jump to content











Photo
- - - - -

Network booting questions


  • Please log in to reply
17 replies to this topic

#1 Andrew L.

Andrew L.
  • Members
  • 6 posts
  •  
    Slovenia

Posted 30 April 2011 - 11:53 AM

Hello everyone this is my first post.

I have a couple of questions. But first I will explain my setup.

I'm running Windows Server 2008 R2 with File services role (for NFS sharing), Tftpd64 and Microsoft iscsi target. On my DD-WRT router I've added a DNSMasq with the following entry dhcp-boot=gpxelinux.0,,192.168.1.123 so that I can use the DHCP on my router and don't have to setup a whole new network with it's own DHCP. I've successfully booted Windows 7 from the iscsi target and an Ubuntu live CD from the NFS share with gPXE.

My questions:
*Does Windows Server 2008 R2 have an integrated TFTP role ?
*Is it possible to boot multiple clients from one virtual disk on the Microsoft iscsi target ?
*Is it possible to make the iscsi target nonpersistent ?
*Is it possible to make the network boot of an Ubuntu live CD form the NFS share persistent ?

And here are the two entries from menu.conf:

LABEL Windows 7 x86
kernel sanboot.c32
append iscsi:192.168.1.123:tcp:3260:0:iqn.1991-05.com.microsoft:test-serv-test2-target


LABEL Ubuntu 10.10
kernel Ubuntu_10.10/vmlinuz
APPEND root=/dev/nfs initrd=Ubuntu_10.10/initrd.gz boot=casper netboot=nfs nfsroot=192.168.1.123:/Ubuntu_10.10

Thanks in advance. :)

Edited by Andrew L., 30 April 2011 - 11:54 AM.


#2 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1,676 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 30 April 2011 - 04:47 PM

My questions:
*Does Windows Server 2008 R2 have an integrated TFTP role ?

I don't know this Windows version. Sorry.

*Is it possible to boot multiple clients from one virtual disk on the Microsoft iscsi target ?

I know that there is a MS iSCSI initiator, but are you suggesting that they have a target product/feature? If so, that product's/feature's documentation should have the answer to this one.

Normally, booting multiple clients from one disk is a no-no. Why? Because unless a multi-client filesystem is being used, each client will be ignorant of the others and assumes full control over FS structures; corruption ensues.

If the filesystem is only accessed in a read-only fashion or if the filesystem is a multi-client filesystem, then yes, it would be safe to boot multiple clients from it. The most useful kind of case I can think of would be:

  • iSCSI disk has one partition
  • Partition has a .VHD file on it
  • We boot from the .VHD
  • Post-kernel time, iSCSI disk is re-attached
  • But now we establish a client-specific delta .VHD some place else, whose parent .VHD is the one on the iSCSI disk's partition
  • This way, the shared iSCSI disk (and the .VHD on its partition) is always accessed read-only

*Is it possible to make the iscsi target nonpersistent ?

Last I checked, there was a control panel for that.

*Is it possible to make the network boot of an Ubuntu live CD form the NFS share persistent ?

What do you mean? Save your data?

#3 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 10,848 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 30 April 2011 - 04:51 PM

My questions:
*Does Windows Server 2008 R2 have an integrated TFTP role ?

Sure :), it's part of WDS:
http://technet.micro...631(WS.10).aspx

:cheers:
Wonko

#4 Andrew L.

Andrew L.
  • Members
  • 6 posts
  •  
    Slovenia

Posted 30 April 2011 - 05:16 PM

Sure :), it's part of WDS:
http://technet.micro...631(WS.10).aspx

:cheers:
Wonko

That I know, but how do I initialize it ?
Apparently you have to be part of an active directory to do that.
Is it possible to use the TFTP without being part of an active directory?

I know that there is a MS iSCSI initiator, but are you suggesting that they have a target product/feature? If so, that product's/feature's documentation should have the answer to this one.

Normally, booting multiple clients from one disk is a no-no. Why? Because unless a multi-client filesystem is being used, each client will be ignorant of the others and assumes full control over FS structures; corruption ensues.

If the filesystem is only accessed in a read-only fashion or if the filesystem is a multi-client filesystem, then yes, it would be safe to boot multiple clients from it. The most useful kind of case I can think of would be:

  • iSCSI disk has one partition
  • Partition has a .VHD file on it
  • We boot from the .VHD
  • Post-kernel time, iSCSI disk is re-attached
  • But now we establish a client-specific delta .VHD some place else, whose parent .VHD is the one on the iSCSI disk's partition
  • This way, the shared iSCSI disk (and the .VHD on its partition) is always accessed read-only

Posted Image

Here is the screenshot of the Microsoft iscsi target.

Last I checked, there was a control panel for that.

Does anyone know how to boot multiple clients form one target and make it nonpersistent?
I know that this is possible with iSCSI Cake (http://www.iscsicake.com/), but is it also possible with MS iSCSI target ?


What do you mean? Save your data?

What I mean is, I would like to make it persistent so that I can install programs and then when all the programs are installed I would like to make it nonpersistent for the users.

#5 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1,676 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 30 April 2011 - 06:05 PM

Here is the screenshot of the Microsoft iscsi target.

Does anyone know how to boot multiple clients form one target and make it nonpersistent?

Aha. Use of the term "persistent" is confusing me. With MS iSCSI initiators, "persistent" is referring to a connection which will be established every time the driver is invoked. It appears that you are referring to disk data persistence. Sorry about that; the control panel suggestion was in regards to the former usage.

Your screen-shot includes "snapshots," which seems to me like differencing logic of some sort is likely included.

...is it also possible with MS iSCSI target ?

So assuming you are asking about discardable, client-specific deltas from some master disk: Even if it isn't natively supported, you could potentially use differencing .VHDs to achieve your goal, as suggested earlier.

Is there documentation for the MS iSCSI target?

What I mean is, I would like to make it persistent so that I can install programs and then when all the programs are installed I would like to make it nonpersistent for the users.

After you have your master state ready, if you make the NFS read-only and have the clients mount it and then union over top of it with a RAM-backed filesystem, that should be sufficient. All changes would be written to the RAM-backed FS and obviously discarded upon reboot.

#6 Andrew L.

Andrew L.
  • Members
  • 6 posts
  •  
    Slovenia

Posted 01 May 2011 - 11:53 AM

Aha. Use of the term "persistent" is confusing me. With MS iSCSI initiators, "persistent" is referring to a connection which will be established every time the driver is invoked. It appears that you are referring to disk data persistence. Sorry about that; the control panel suggestion was in regards to the former usage.

Your screen-shot includes "snapshots," which seems to me like differencing logic of some sort is likely included.

The snapshots are only used to rollback changes that were made to the disk image. Just like VMware Workstation snapshots. So that doesn't help me much.

So assuming you are asking about discardable, client-specific deltas from some master disk: Even if it isn't natively supported, you could potentially use differencing .VHDs to achieve your goal, as suggested earlier.

Is there documentation for the MS iSCSI target?

What are discardable, client-specific deltas? Sorry but I'm not familiar with those terms.
And yes there is documentation on MS iSCSI target, about 300 pages. :)

After you have your master state ready, if you make the NFS read-only and have the clients mount it and then union over top of it with a RAM-backed filesystem, that should be sufficient. All changes would be written to the RAM-backed FS and obviously discarded upon reboot.

I've thought of that. But that would mean that I would have to install a whole operating system on a physical or virtual machine, install all the programs and then make an image of it.
The problem is that Windows server 2008 R2 doesn't know how to read a disk image of an ext4, ext3 or ext2 filesystem or am I missing something?
Or are there any attributes that I can add to

# Ubuntu 11.04
LABEL Ubuntu 11.04
kernel /Ubuntu_11.04/vmlinuz
APPEND root=/dev/nfs initrd=/Ubuntu_11.04/initrd.lz boot=casper netboot=nfs nfsroot=192.168.1.123:/Ubuntu_11.04

so that it will load the files form casper-rw, where the changes are stored.

#7 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1,676 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 01 May 2011 - 03:05 PM

The snapshots are only used to rollback changes that were made to the disk image. Just like VMware Workstation snapshots. So that doesn't help me much.

Well that's too bad if they don't use the same logic in order to support per-client snap-shots.

What are discardable, client-specific deltas? Sorry but I'm not familiar with those terms.
And yes there is documentation on MS iSCSI target, about 300 pages. :)

Discardable: Can be thrown away.
Client-specific: Particular to each different client.
Delta: Difference.

It seems that you are interested in having a master SAN, right? And then multiple clients will boot from that SAN, but you do not want their disk writes to affect the master SAN, right? Instead you want those client-specific differences to be stored some place else, and discarded after a reboot, right? Or do you?

I've thought of that. But that would mean that I would have to install a whole operating system on a physical or virtual machine, install all the programs and then make an image of it.

I don't see why... Where is the NFS share stored? On the Internet or on your own server?

Can you not install your programs while booted via NFS, and that will actually affect the NFS share? That's what I'm used to.

The problem is that Windows server 2008 R2 doesn't know how to read a disk image of an ext4, ext3 or ext2 filesystem or am I missing something?

Well there was an EXT2 driver that works on Windows XP and Windows Server 2003. Maybe it'd be worth looking into seeing if it's known to work on this Windows version. But I think you might be confusing block devices with filesystems.

Block device: Like an HDD, CD/DVD, floppy disk, or image file of one of these.
Filesystem: Like FAT, EXT2, NTFS.
Block protocol: Like SCSI, ATA, iSCSI and AoE.
File protocol: Like TFTP, NFS, HTTP.

Since NFS is a file protocol, it's likely that the NFS share is a shared branch of a filesystem, not a disk image. The NFS service ought to support what you need, such as permissions and ownership. Does Windows Server 2008 offer an NFS service? Does "Services for UNIX" exist for this version? Could you create an Ubuntu_11.04\ directory and share it as the NFS root?

Or are there any attributes that I can add to

# Ubuntu 11.04
LABEL Ubuntu 11.04
kernel /Ubuntu_11.04/vmlinuz
APPEND root=/dev/nfs initrd=/Ubuntu_11.04/initrd.lz boot=casper netboot=nfs nfsroot=192.168.1.123:/Ubuntu_11.04

so that it will load the files form casper-rw, where the changes are stored.

I don't know, as each Linux distribution is different. Is that what you currently use? Does that mean that you already extracted some files and shared a directory via NFS?

#8 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 10,848 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 01 May 2011 - 04:36 PM

That I know, but how do I initialize it ?
Apparently you have to be part of an active directory to do that.
Is it possible to use the TFTP without being part of an active directory?


Broken google? :) :mellow:

I guess this is it :cheers::
http://certcollectio...standalone-wds/
http://www.deployvis...US/Default.aspx

:ranting2:
Wonko

#9 Andrew L.

Andrew L.
  • Members
  • 6 posts
  •  
    Slovenia

Posted 01 May 2011 - 06:17 PM

It seems that you are interested in having a master SAN, right? And then multiple clients will boot from that SAN, but you do not want their disk writes to affect the master SAN, right? Instead you want those client-specific differences to be stored some place else, and discarded after a reboot, right? Or do you?


That is exactly what I want. :mellow:
I just have to figure out a way to make it work.

I don't see why... Where is the NFS share stored? On the Internet or on your own server?
Can you not install your programs while booted via NFS, and that will actually affect the NFS share? That's what I'm used to.

No I can't because it is on a windows NFS share on an NTFS patrition.

Well there was an EXT2 driver that works on Windows XP and Windows Server 2003. Maybe it'd be worth looking into seeing if it's known to work on this Windows version. But I think you might be confusing block devices with filesystems.

Block device: Like an HDD, CD/DVD, floppy disk, or image file of one of these.
Filesystem: Like FAT, EXT2, NTFS.
Block protocol: Like SCSI, ATA, iSCSI and AoE.
File protocol: Like TFTP, NFS, HTTP.

Since NFS is a file protocol, it's likely that the NFS share is a shared branch of a filesystem, not a disk image. The NFS service ought to support what you need, such as permissions and ownership. Does Windows Server 2008 offer an NFS service? Does "Services for UNIX" exist for this version? Could you create an Ubuntu_11.04\ directory and share it as the NFS root?

I've tried the EXT2 driver, but when I try to make a NFS share I get an error that Windows Server 2008 R2 is able to NFS share only those folders that are on a NTFS file system.
Below is a picture of a NFS shared folder (Ubuntu_11.04\) from which I've successfully network booted an Ubuntu live CD.

Posted Image

I don't know, as each Linux distribution is different. Is that what you currently use? Does that mean that you already extracted some files and shared a directory via NFS?

Yes (read reply below quote above).

Broken google? :) :cheers:

I guess this is it :ranting2::
http://certcollectio...standalone-wds/
http://www.deployvis...US/Default.aspx

:ranting2:
Wonko


Thanks a lot I will look into that.

Edited by Andrew L., 01 May 2011 - 06:22 PM.


#10 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1,676 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 01 May 2011 - 07:27 PM

That is exactly what I want. :)
I just have to figure out a way to make it work.

I wish the .VHD approach would work for you, but your SAN's partition's FS would be corrupted by the multiple clients writing to the filesystem as they write to their own .VHD file (which would be a "child" to a master "parent" .VHD file). That's too bad.

No I can't because it is on a windows NFS share on an NTFS patrition.

I don't understand. Why are you thinking that you need EXT2? NFS is NFS. Whatever filesystem the share exposes, what does it matter? A client doesn't know the backing filesystem of an NFS share, do they? Don't they just see "NFS"?

I've tried the EXT2 driver, but when I try to make a NFS share I get an error that Windows Server 2008 R2 is able to NFS share only those folders that are on a NTFS file system.

But you'd only need EXT2 if... You need EXT2. Do you?

Below is a picture of a NFS shared folder (Ubuntu_11.04\) from which I've successfully network booted an Ubuntu live CD.

Aha. It looks like your clients include the following sequence of events:
  • Load kernel and initramfs-style initrd
  • The initramfs init will execute some initramfs scripts
  • The initramfs scripts will parse the kernel command-line and know to use NFS
  • The initramfs scripts will load the appropriate network interface drivers
  • The initramfs scripts will mount the NFS share
  • The initramfs scripts will attach the casper-rw image as a loop-back block device
  • The initramfs scripts will mount the filesystem on the casper-rw loop-back block device
  • The initramfs scripts will switch to using that filesystem as the root filesystem
So you could modify the initramfs and cause them to mount the filesystem found on the casper-rw loop-back device as read-only, and then to "over-mount" a RAM-backed filesystem on top of it. Thus all changes would be made to the RAM-backed FS, and would not persist past a reboot. That's what I was trying to suggest earlier, but before knowing about the casper-rw middle-man; I thought you had straight NFS.

#11 Andrew L.

Andrew L.
  • Members
  • 6 posts
  •  
    Slovenia

Posted 01 May 2011 - 09:11 PM

I wish the .VHD approach would work for you, but your SAN's partition's FS would be corrupted by the multiple clients writing to the filesystem as they write to their own .VHD file (which would be a "child" to a master "parent" .VHD file). That's too bad.


I don't understand. Why are you thinking that you need EXT2? NFS is NFS. Whatever filesystem the share exposes, what does it matter? A client doesn't know the backing filesystem of an NFS share, do they? Don't they just see "NFS"?


But you'd only need EXT2 if... You need EXT2. Do you?


Aha. It looks like your clients include the following sequence of events:

  • Load kernel and initramfs-style initrd
  • The initramfs init will execute some initramfs scripts
  • The initramfs scripts will parse the kernel command-line and know to use NFS
  • The initramfs scripts will load the appropriate network interface drivers
  • The initramfs scripts will mount the NFS share
  • The initramfs scripts will attach the casper-rw image as a loop-back block device
  • The initramfs scripts will mount the filesystem on the casper-rw loop-back block device
  • The initramfs scripts will switch to using that filesystem as the root filesystem
So you could modify the initramfs and cause them to mount the filesystem found on the casper-rw loop-back device as read-only, and then to "over-mount" a RAM-backed filesystem on top of it. Thus all changes would be made to the RAM-backed FS, and would not persist past a reboot. That's what I was trying to suggest earlier, but before knowing about the casper-rw middle-man; I thought you had straight NFS.


I've solved the Ubuntu problem.
I've made a new virtual machine and installed a fresh installation of Ubuntu with all the programs that I need.
Then I've mounted that disk in another Ubuntu virtual machine and used the command "mksquashfs /mounted_disk/ filesystem.squashfs", to convert the mounted disk to a squashfs.
And thed simply replaced the Ubuntu live Cd filesystem.squashfs in the folder casper with the one that I created.
And it worked.:dubbio:

Now how to fix the Windows problem ? :sos:

#12 Andrew L.

Andrew L.
  • Members
  • 6 posts
  •  
    Slovenia

Posted 03 May 2011 - 12:43 PM

What about OS Streaming ?
Has anyone tried anything like this ?


#13 jiggy

jiggy
  • Members
  • 4 posts
  •  
    South Africa

Posted 02 August 2011 - 08:13 AM

hi all

i would like to set up a pc that has all my Windows files on it ( XP all flavors; vista all flavors and win7 all flavors) and when i have a pc i need to reload i can boot it off the lan and select which windows i want and carry on.

the problem i have encountered is that i managed to get it working once with set backs, i had to have the cd in the drive off the "server pc" and i had to have it on a different network to our office which was a pain as i had to swop for internet access. when i join the two i could not find a boot image.

My server is set up as a file server only, the router does dhcp; i would like if possible to use the server to host the images of the files oppose to me setting up another pc to that and id like to intergrate it into my current network if possible.

server is running server 2008 R2

please could someone help me

i have searched and i have found some posts,but it does not really help me like i explained above.

thank you in advance

#14 steve6375

steve6375

    Platinum Member

  • Developer
  • 5,340 posts
  • Location:UK
  • Interests:computers (!), programming (masm,vb6,C,vbs), OSes, photography,TV,films,guitars
  •  
    United Kingdom

Posted 02 August 2011 - 08:59 AM

Your server needs to do DHCP not the router for PXE booting. You need to set up WDS which is quite easy on Server 2008 R2.
I would suggest that you boot to WinPE v3 (WIn7 WinPE) from a USB drive or DVD/CD first. Then when you have that working you can set up a PXE boot server (if you really want to). Server 2008 R2 supports WDS and PXE booting, so you can add an WinPE boot image in easily.

You can make a WinPE boot image using the MS WAIK. Add (win7) network drivers for each h/w platform. Edit boot.wim \windows\system32\startnet.cmd so that it does a NET USE to your server and runs a CMD file located on the server.

The CMD file on the server can then be edited to load a menu, the user can select any image they want and then your cmd script can use DISKPART and IMAGEX to prepare the hard drive and apply the image. For XP images you also need to run bootsect /nt52 to it has the NTLDR bootloader.

You can even write a .hta file if you want a fancy user front end GUI to select your image from.

Alternatively, once you have WinPE running you can use a different tool (e.g. Ghost32, GImageX, etc.).

HTH
S

#15 jiggy

jiggy
  • Members
  • 4 posts
  •  
    South Africa

Posted 02 August 2011 - 09:37 AM

Thanks Steve

all that is abit confusing for me, ok so ill do some research on what you said and how to do it and ill let you know how i go.

i can set my server as dhcp, thats easy part lol.

i made a pxe boot server before on a separate pc, but ill see how to get it going on server using a app i found on this site.

#16 steve6375

steve6375

    Platinum Member

  • Developer
  • 5,340 posts
  • Location:UK
  • Interests:computers (!), programming (masm,vb6,C,vbs), OSes, photography,TV,films,guitars
  •  
    United Kingdom

Posted 02 August 2011 - 11:28 AM

http://www.infotechg...er2008/wds.html may help

#17 jiggy

jiggy
  • Members
  • 4 posts
  •  
    South Africa

Posted 15 August 2011 - 10:30 AM

Hi steve

Thanks for the post was really help full, i got it all up and running, but i do have 1 problem, i cannot get internet with a client computer.

the server has a static ip and is connected. it has AD DS; File Server;DHCP Server;DNS Server and WDS.

if i connect a computer to the network i can boot and install windows via WDS, i can view files on the server, how ever i fail to browse the internet, my skype connects and i can chat, but that is the only internet i get. i can how ever manually put in the dns and default gateway and i connect. on the client pc.

i know i have something wrong and it is most probably so obvious but i cannot find anything relating to my problem.

i have even reinstalled server just to figure it out.
this is just a test server till i get it work then i will integrate it with the real one.

thank you in advance for the help.

#18 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1,676 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 15 August 2011 - 01:47 PM

i know i have something wrong and it is most probably so obvious but i cannot find anything relating to my problem.

Please check that your DHCP Options on the server include gateway and DNS. The clients will need these, if they need Internet access.