Monday, October 3, 2016

netboot solaris 10 via ubuntu 14 using RARP

   
 I did something bad and my Sun T1000 decided to stop booting due to the most 
recent patchset.  
 Luckily ALOM was installed and I could ssh in and see:  
   
 Cross trap sync timeout: at cpu_sync.xword[1]: 0x1010  
   
 Flow across the console.  
   
 This is firmware issue as:  
    
 sc> showhost  
 SPARC-Enterprise-T1000 System Firmware 6.3.10 2007/12/08 15:48  
 Host flash versions:  
   Hypervisor 1.3.4 2007/03/28 06:03  
   OBP 4.25.11 2007/12/07 23:44  
   POST 4.25.11 2007/12/08 00:10   
     
 The patchset is for 6.4. Of course.  
   
 Happily the T1000 lacks an optical drive nor any means of connecting one. 
No USB either Great.  
 The next option was to do a network boot. Oh boy.  
   
 I didn't feel like messing with my production Solaris systems, so I installed Ubuntu 14 
 with all the preqs for an old-stype Jumpstart server:  
   
 * TFTP  
 * Bootparamd  
 * NFSv4  
 * RARP  
 * Solaris 10 SPARC DVD (here: /opt/sol-10-u9-sparc.iso)  
 * Solaris Firmware 6.7.13 patch 139435-10 (here: /opt/solaris10.patches/139435-10.zip)  
   
 The reason why I am doing RARP is due to the fact that my network already 
 has a DHCPvM$ server.  
 RARP uses reverse ARP to receive its IP address. So, by sending out RARP packets, my 
 Solaris system is able to get an address and not rely on DHCP. Neat? Yeah.  
   
 My systems for this exercise are:  
   
 netboot  
 10.97.32.186  
   
 hostnix01 10.97.32.166  
 0A6120A6 (IP as hex)  
 00:14:4f:e5:f7:9a  
   
 ..........................................  
 netboot  
 ..........................................  
   
 packages:  
 # apt-get install rarpd tftpd-hpa bootparamd nfs-kernel-server  
   
 rarpd:  
 # vi /etc/default/rarpd  
   
 Change the last line to match the tftpd-hpa directory and the NIC name:  
   
 OPTS="-v -b /var/lib/tftpboot/ eth0"  
   
 iso mount:  
 # mount -o loop /opt/sol-10-u9-sparc.iso /media/solaris10/  
   
 nfsd:  
 # mkdir -p /media/solaris10  
 # mkdir -p /opt/solaris10.patches  
   
 Define a share in NFS for this mount point as this mount will be used to serve 
 the patches. Open the following file:  
   
 # vi /etc/exports  
   
 Add the following entries:  
   
 /media/solaris10/ *(insecure,rw,no_root_squash,no_subtree_check,sync)  
 /opt/solaris10.patches/ *(insecure,rw,no_root_squash,no_subtree_check,sync)  
   
 bootparamd:  
   
 # vi /etc/bootparams  
   
 sunfire root=netboot:/media/solaris10/Solaris_10/Tools/Boot install=netboot:/media/solaris10 boottype=:in  
   
 per URL: Some explanation for the above: This defines which host gets the specified 
 NFS share. NFS4 uses relative pathnames, but I am not using this, so therefore I’ve 
 specified the absolute path. Note that server: is the hostname of the server running 
 the NFS service and was mentioned in my post earlier as my server is originally named 
 "netboot". The name used is the hostname of your server, substitute it to the correct name.  
   
 rarpd:  
   
 # vi /etc/hosts  
   
 Add the following entry:  
   
 10.97.32.166 hostnix01  
   
 Create the ethers file:  
   
 vi /etc/ethers  
   
 Add the following entry:  
   
 00:14:4f:e5:f7:9a hostnix01  
   
 per URL: Replace the MAC address with the MAC of your Sun server. You can change the 
 hostname as well, but needs to be the same everywhere!  
   
 tftpd:  
   
 vi /etc/default/tftpd-hpa  
   
 Change the TFTP_ADDRESS line to the following:  
   
 TFTP_ADDRESS=":69"  
   
 per URL: The configuration of the server is now complete One last step we need to do is 
 to copy the netboot kernel for the Sun server. This resides on the mounted Solaris 
 install image. By default OpenBoot will look for a kernel using TFTP when using network 
 boot. Based on it’s IP-address it will look for a matching HEX filename. We can find out 
 which filename that would be by running the following:  
   
 # printf "%02X%02X%02X%02X" 10 97 32 166  
   
 This will result in the following (for my IP-address):  
   
 0A6120A6   
   
 The above will be the netboot kernel for the Sun server. Place the netboot kernel in place:  
   
 # cp /media/solaris10/Solaris_10/Tools/Boot/platform/sun4u/inetboot /var/lib/tftpboot/C0A800E6  
   
 restart the services in order  
   
 service tftpd-hpa restart  
 service bootparamd restart  
 service nfs-kernel-server restart  
 service rarpd restart  
   
 ..........................................  
 hostnix01  
 ..........................................  
   
 # ssh admin@hostnix01-alom (remote management shell)  
   
 sc> poweron  
 sc> console -f  
   
 When you see mac address, get into openboot  
   
 #.  
   
 sc> break -y  
   
 Switch back to console and netboot the kernel  
   
 sc> console -f  
 ok > boot net:rarp -avs  
   
 * https://docs.oracle.com/cd/E19455-01/805-7228/hbsparcboot-60/index.html  
 * interactive, verbose, single user mode (does not include install flag)  
   
 After waiting next to forever...  
   
 # mkdir /tmp/mount  
 # mount -F nfs 10.97.32.186:/opt/solaris10.patches /tmp/mount  
 # cd /tmp/mount  
 # unzip 139435-10.zip  
 # cd 139435-10  
 # ./sysfwdownload /pwd/patch.bin  
   
 Run patching command via sysfwdownload. If you see:  
 "sysfwdownload: file could not be opened"  
 that means the installer requires the full path; e.g.:  
   
 /tmp/mount/139435-10/Firmware/SPARC_Enterprise_T1000/Sun_System_Firmware-6_7_13-SPARC_Enterprise_T1000.bin  
   
 # ./sysfwdownload Sun_System_Firmware-6_7_13-SPARC_Enterprise_T1000.bin   
  .......... (10%).......... (20%).......... (30%).......... (41%)..........    
  (51%).......... (61%).......... (71%).......... (82%).......... (92%)........ (100%)   
  Download completed successfully   
   
  # init 0   
   
 Now you should be back at the 'ok' prompt. Now on the ALOM:  
   
 sc> poweroff   
 SC Alert: SC Request to Power Off Host.   
    
 SC Alert: Host system has shut down.   
     
 sc> setkeyswitch -y normal   
 sc> flashupdate -s 127.0.0.1   
 sc> resetsc   
   
 Your ssh console will be terminated due to a broken pipe.  
   
 ssh back in and issue:  
   
 sc> poweron  
 sc> console -f  
   
 And you're back!  
   
 verify:  
   
 SPARC Enterprise T1000, No Keyboard  
 Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.  
 OpenBoot 4.30.4.e, 3968 MB memory available, Serial #82179994.  
 Ethernet address 0:14:4f:e5:f7:9a, Host ID: 84e5f79a.  
   
 Boot device: disk File and args:  
 ufs-file-system  
 Loading: /platform/SUNW,SPARC-Enterprise-T1000/boot_archive  
 ramdisk-root hsfs-file-system  
 Loading: /platform/SUNW,SPARC-Enterprise-T1000/kernel/sparcv9/unix  
 SunOS Release 5.10 Version Generic_150400-38 64-bit  
 Copyright (c) 1983, 2016, Oracle and/or its affiliates. All rights reserved.  
 os-io WARNING: failed to resolve 'scsa,probe' driver alias, defaulting to 'nulldriver'  
 WARNING: failed to resolve 'scsa,nodev' driver alias, defaulting to 'nulldriver'  
 Hostname: hostnix01  
 Configuring devices.  
 LDAP NIS domain name is  
   
 No panics. Yay!   
   
 #.  
   
 sc> showhost  
 SPARC-Enterprise-T1000 System Firmware 6.7.13 2013/09/24 08:10  
   
 Host flash versions:  
   OBP 4.30.4.e 2013/09/23 16:06  
   Hypervisor 1.7.3.d 2013/09/24 07:19  
   POST 4.30.4.b 2010/07/09 14:25  
   
 All is as it should be.    

....
 some of this was lifted from here:  
 https://www.arm-blog.com/installing-solaris-10-on-a-sunfire-v210-via-network/   
   

No comments: