TCL/Expect Reset Server and Load Solaris

Hello!

I'm having issues getting Solaris to install on a T2000 using an expect script. The jumpstart server works fine to manually issue the commands and we have done many installs this way. I'm lazy and want to reset the OBP password, install Solaris, log in after install, and run some other commands - all using Expect. Basically, plug in console, start the expect script, and plug in power, then do something else. After a couple of hours...badda bing.

Problem is, when I test the expect script, it bombs out during boot net - install when the process gets to bootparamd. On the jumpstart server, a "get file failed" error is generated. After the error, I connect using minicom and issue the boot net command and the install goes ok without an issue. I'm not sure what the script is doing to conflict with bootparamd

Regarding the MMU error, I have swapped out memory twice and installed successfully manually using both sets of memory.

portion of the script in question:

....
set timeout -1

exp_internal 1

# boot system to install
expect {
    "* ok *" { send "boot net - install\r" }
}

# after install is complete, log in
expect {
    "*console login*" {
         send "username\r"
         sleep 1
         send "password\r"
    }
}

exp_internal 0
.....

The error (truncated):

---------- Post updated at 06:47 PM ---------- Previous update was at 05:47 PM ----------

After some more digging, it looks like a NFS issue. Not quite sure how, or if, this correlates with the overall issue.

Try another version of NFS on your jumpstart server, especially if it's server NFSv4. In that case, cap it at v3 in /etc/default/nfs.

Thanks for the reply.

I'm a little confused on setting up nfsv3. The current setup looks to be v4. My NFS knowledge is limited only to what I have read and it's been a while....googled a few pages as well. The jumpstart process seems to be a little picky on the setup of the nfs server - only reads ro mounts - now that my memory is kicking in during the initial setup.

current setup:

/home/jumpstart/install  *(ro,fsid=0,no_root_squash,sync,no_subtree_check)

tried this:

/home/jumpstart/install  *(ro,sync,all_squash,anonuid=65534,anongid=65534)

Using the updated config above, I get a boot failed error:

The bootparamd is looking for "rootopts" instead of "install"

/etc/bootparams:

t2000-3 root=192.168.200.1:/Solaris_10/Tools/Boot \
   install=192.168.200.1:/ \
   sysid_config=192.168.200.2:/Clients/t2000-3 \
   install_config=192.168.200.1:/ \
   boottype=192.168.200.1:in \
   rootopts=192.168.200.1:/=vers=3:rsize=8192

I have fiddled with rootopts and still no luck. Removed rootopts all together, didn't matter. What other options are available? Haven't found anything of use from google.

Assuming you're running a Solaris 10 NFS server, go to your NFS server, check /etc/default/nfs for the "NFS_SERVER_VERSMAX" and "NFS_SERVER_VERSMIN" parameters. Set them both to 3, and make sure they're both uncommented. Then "svcadm restart nfs/server" should do it.

You can check after by using "nfsstat". If you run "nfsstat -z" after restarting the NFS server service, you should see nothing but zeros in all but NFSv3 stats.

NFSv4 has some real strict and IMO downright quirky security rules, and I'd bet an older server like your T2000 has problems with it.

And if you're running a Linux NFS server, Linux NFSv4 implementations are even quirkier. IMO Sun (now Oracle) has pretty much been the gold-standard of NFS implemenations. Not surprising, since they invented it....