James Cammarata wrote:
Do you know if all of the windows pxe boot files have to be in the
root
directory of the tftp server? I would like to create subdirectories like
this:
/tftpboot/ris/profiles/$profile_name/startrom.n12 -> /tftpboot/winxp.0
/NTLDR -> /tftpboot/XPLDR
/winnt.sif
/winxp ->
/var/www/cobbler/ks_mirror/winxp
And then the pxeboot line would be:
label winxp
kernel ris/profiles/$profile_name/startrom.n12
label xpsystem1
kernel ris/systems/$system_name/startrom.n12
You can't. startrom will look for a file in the TFTP root; unless you
rewrite the location with tftpd.rules (or the like), it needs to be in
the TFTP root.
That said, when going down the rewrite road to have Windows pick up the
appropriate file(s), it needs to ask for different files to begin with
or the rewrite will cause it to pick up the same file after all.
That said, you can sed -i -e 's/winnt.sif/12345.sif/g' NTLDR to specify
an alternative to "winnt.sif". As such, you can have profiles based on
these three files:
startrom.n12 which points to NTDLR,
NTLDR which points to winnt.sif,
and winnt.sif
Note how the latter two contain 5 chars (excluding the .sif suffix), and
the name of startrom.n12 really doesn't matter.
You could create a:
xp321.0 from startrom.n12,
sed -i -e 's/NTLDR/xp321/g' xp321.0
xp321 from NTLDR,
sed -i -e 's/winnt.sif/xp321.sif/g' xp321
create a xp321.sif file
Note that in this case I use Windows _XP_ _32_-bit Profile #_1_ as the
five chars to use, but those are up to you.
bootfont.bin, ntdetwxp.x86 can just live in the TFTP root since they can
be shared and do not refer to other files.
Now, creating a Cobbler profile or system can grab the originals, copy
them anywhere, replace whatever they want to replace, and as such create
"a unique" unattended installation. With unique filenames per profile
however, you would not necessarily need to create a subdirectory in the
TFTP root however it gets messy fast, so creating one subdirectory
entirely managed by Cobbler probably makes the most sense, provided a
rewrite rule for TFTP.
I'm working on some more documentation about this and more different
Windows unattended installations over the network / using PXE on
http://www.kanarip.com/courses/ClassRoomManual-WindowsInstallationsOverTh...
The problem will arise if Windows expects the winnt.sif file to be in
the
root of the tftp server, and not in the same directory as the startrom.n12
file. We may be able to get around this by adding a rewrite rule for tftp
(as part of the cobbler sync process the rules file would be regenerated
and tftpd would be HUP'd), so that it hides the fact that things are not
all in the tftp root.
re-writing "/winnt.sif" to anything else will always cause you to
eventually end up with the same file, just from a different location.
Doing it this way, we will be able to have custom .sif's for
each
system/profile that is created. Otherwise, we will have to come up with
some way to modify the binaries in a unique way for each system, which I
really don't want.
Modifying binaries is all you can do when all you get is binaries.
For systems (and profiles), referring to one or the other startrom.n12
file would suffice to differentiate. The NTLDR and .sif used from that
point can be set with a simple sed command like the few in my examples.
This of course could also be done on-the-fly, possibly by Cobbler.
Note that for Windows XP, using the startrom.n12 from Windows 2003 is
basically your only option or it won't ever find txtsetup.sif although
the error message will be garbled beyond recognition.
The entire profile/system directory may be a link to
another folder somewhere in /var/www/cobbler, just for cleanliness
reasons.
in.tftpd does not handle links very well.
Kind regards,
Jeroen van Meeuwen
-kanarip