solaris flash archives served by linux
So here I am trying to get jumpstart flash archives working - but in a somewhat unusual manner. I don't exactly have an extra Sun machine lying around, but I do have a Linux box ("salamander") dedicated to systemimager images with a fair amount of local disk space. It's what I've been putting the Solaris install CD images on.
Now Sun gives you detailed step-by-step instructions on how to jumpstart off of a Solaris server, but they don't for a Linux box. It's all open protocols, though, right? (RARP/BOOTP/TFTP/NFS/HTTP) So it should be easy to get jumpstart working from a Linux server.
I couldn't get the sparc boot prom to boot off of a Linux NFS server - something about the order of the packets that the linux box returns to the NFS request confusing the boot prom. So, the actual miniroot has to be served off of a real Solaris machine. No big deal, the miniroot isn't that big, and I can just stick it on the webservers and have them serve it out. The Solaris 9 install media is quite a bit larger (1.2 GB), but the miniroot can NFS mount from linux no problem, so that'll live on salamander.
So that's working fine, and I'm doing unattended network installs of Solaris 9 from a Linux machine, which makes me very happy. The next step is to actually automate the installation of a flash archive from a Linux machine.
No problem, I can just serve that out from NFS too, right?
Hmm, slight problem here:
[root@salamander flars]# ls -lh orbweaver.uvm.edu.050128-1621.flar
-rw-r--r-- 1 root bin 4.5G Jan 28 16:38 orbweaver.uvm.edu.050128-1621.flar
Well, ext3 handles the large file fine... but the Linux NFS server seems mightily confused by that file. It could be because the Solaris miniroot is trying to NFS mount the file itself, and the file is just too big:
Jan 28 17:03:10 salamander rpc.mountd: can't stat exported dir /solaris-install/flars/orbweaver.uvm.edu.050128-1621.flar: Value too large for defined data type
OK, well, I'll stick apache on there and serve the flar up from HTTP. I can just sidestep the whole NFS issue.
httpd error_log: [Sat Jan 29 10:46:30 2005] [error] [client 132.198.101.50] (75)Value too large for defined data type: access to /solaris-install/flars/orbweaver.uvm.edu.050128-1621.flar failed
OK, now I'm starting to get a bit chafed. Redhat didn't distribute their Apache builds with -D_FILE_OFFSET_BITS=64? So basically, the largest filesize Redhat's (RHEL3 specifically) httpd can serve up is 2GB. That's going to put quite a crimp into things.
I try building a new httpd that supports 64-bit file offsets, but no dice. It could be that RHEL3's libc or kernel just doesn't support it. My Debian testing/sarge machine (32-bit AMD) at home seems to support it fine (one more reason to run Debian, I guess...) Perhaps I should try Fedora Core 3 on salamander? Maybe I really need a 64-bit machine (AMD, probably) to serve up flash archives?
Or maybe since Sun just wants me to buy an install server from them, I should give in...
More on this later...