Installing Solaris on a large harddrive

Because of the storms a couple of weeks ago, the harddrives in my one solaris box had failed. I bought a couple of new 500gb harddrives to replace the 80 that was in it. So I downloaded the newest update of Solaris 10 (update 7) and did the install. Everything worked perfect, then it rebooted. All I got was the “grub>” prompt. Nothing would let me boot it. I booted back off of the cdrom and updated the boot-archive, everything seemed fine, but it still would not boot off of the harddrive. So I tried to do it by hand at the grub> prompt:

grub> kernel /platform/i86pc/multiboot
Error 18: selected cylinder exceeds maximum supported by bios

Great.. now what. It appears that you have to have the boot info in the first 1023 cylinders of the harddrive. Well this big 500GB harddrive has over 60,000+ cylinders on it. Guess what, the Solaris installer put the swap on 3-263 and then put the root on 58884 – some high number.. So obviously grub is going to have a problem.

So how do you fix this. There is 2 possible ways that I can think of and possibly a third.

The first would be for Sun to change the installer to not automatically place root at the end of the disk.

The second is when you are getting ready to do the install, pre-layout the disks using format from the command line.

The third is what I am trying, since the remaining of the disk has not been used yet, I am going to move the partitions around with dd. The first thing I did was delete the swap partition on slice 1. The second was to create a new temp partition on slice 3 that is the exact same size as slice 0. Now using dd I did the following:

dd if=/dev/dsk/c0d0s0 of=/dev/dsk/c0d0s3 bs=4096k

Hopefully this won’t take too long as the partition is only 15gb in size. You could have done the same thing with tar and have both partitions mounted. Once the dd finishes. I will delete the slice 0 and recreate it starting at cylinder 3 and give it the same size as it was before, and then dd the info back. Once that is done, delete the temp slice and recreate a swap partition. Hopefully this works.

Increase in Solaris patch cluster size

Justin pointed out to me tonight that the new Recommended and Security patch clusters for Solaris 10 were quite large. And right he was.. It seems that in the last month or so the 10 Recommended patch cluster has grown from 400meg to over 1GB in size now. (not to mention that he said you need almost 2.5 gig of space to unzip it.)

Looking at the cluster readme, I can take a guess as to why it is so large, there are multiple kernel patches. There are also updates to Firefox, Thunderbird, Adobe Acrobat Reader, Adobe Flash plugin, multiple Java Updates and a patch for the defunct Mozilla 1.7 browser (which in my opinion should just be removed completely).

The interesting part is that the X86 patch cluster is over 300Meg smaller than the sparc one. The only major difference that I can think of is that X86 doesn’t have Adobe Acrobat Reader yet.

I wish Sun would just offer a ISO download of all the patches now (sort of like the EIS dvd) for the public.  Also need to find a faster way to download the patches.

Sun Stuff

So I get poked fun of at work any time I wear a Sun shirt.(And no I don’t have Sun Underwear, or Sun Socks, or anything with a Sun logo that is below the belt.).. When I first started I pretty much wore a Sun logo’d item every day… (I have enough, more on that later).  I have cut back some (have to dress up a little more now.) So I decided tonight to start going through the house to find all of my Sun stuff. So far this is what I have found:

  1. Numerous ink pens. Everything from the pen/highlighters from classes, to some more expensive ones that are engraved/etched.
  2. Sun Mints (got to say one of the weirdest)
  3. Sun Sun Glasses
  4. Various Sun Hardware, from Servers to workstations. (SPARC2, 5, and Ultra 5)
  5. Broke Sun Ray 1 (the caps in it were from the bad caps era)
  6. 3 Sun Binders
  7. 1 Sun Leather notebook
  8. 4 Sun ceramic mugs
  9. 2 Sun mugs
  10. 1 Sun Water bottle
  11. 3 Sun book bags
  12. 2 Sun Jackets
  13. 1 Sun folding Camp stool
  14. 7 Sun Polo Shirts
  15. 1 Sun long Sleeve dress shirt
  16. 10 Sun T-Shirts
  17. 3 or 4 Sun Mouse pads, both cloth and the old hashed ones for the original optical mouse
  18. 3 Sun lapel pins for Certifications that I have earned.
  19. 3 Sun “business cards” for certifications that I have earned
  20. Sun microphone
  21. Sun Java Cup Coaster
  22. Sun Stop Watch
  23. Wireless Sun laptop mouse
  24. 1 Sun CoolThreads niagra CPU
  25. Various Sun Java Cards from the EBC
  26. Copies of SunOS 4
  27. Copies of Solaris for SPARC and Intel from Solaris 2.5 up to and including Solaris 10
  28. Copy of OpenSolaris 2005.08
  29. Various Sun brochures, pictures and marketing items
  30. little Java Duke squeeze toy
  31. Sun Monitor Duster
  32. Very old Sun Frisbee
  33. 3 Sun baseball hats
  34. Sun Type 4 keyboard
  35. Sun Type 5 keyboard
  36. Sun Type 6 keyboard

This is just what I have found in the couple of hours I looked briefly through the house.  And for the proof here are some pics.  So as you can see I am a “Sun Geek”.

Decoding Sun Fire 25K IO boat locations

Here is how to decode the Sun Fire E25K IO Boat locations. This is useful if you are trying to jumpstart a domain that has multiple ethernet cards in it. (Note even if you only have 1 physical card, there are other “ethernet” devices on the back side for the MAN and I2 networks).

So lets take this example. Here is the out put of show-nets from a domain.

{80} ok show-nets
a) /pci@bd,700000/network@1
b) /pci@bc,700000/network@3,1
c) /pci@bc,700000/pci@1/network@1
d) /pci@bc,700000/pci@1/network@0
e) /pci@9d,700000/network@1
f) /pci@9c,700000/network@3,1
g) /pci@9c,700000/pci@1/network@1
h) /pci@9c,700000/pci@1/network@0

The first step is to convert the hexadecimal agent id into binary. The agent id in the above example (line h for reference) is 9c. So 9c in binary is 00 1001 1100. The last 5 bits identify the IOC chip. A value of 0x1c is IOC0, whereas 0x1d is IOC1. So in the above, the last 5 bits is 11100 = 1c. The remaining first 5 bits of the agent id converted from binary to decimal will tell you the expander board. So 00 100 = 4 in decimal. So from this we can tell that the network card is in Expander 4 and IOC 0.

Next is to identify the bus, that is the part after the , in the above example they are all 700000, which is bus B. Whereas 600000 is bus A.

Bus A is the 33/66-MHz, where as Bus B is the 33MHz.

So as you are looking at an IO expander the B bus is the top 2 slots, and the A bus is the bottom 2 slots. The IO bridge 0 is the right and the IO bridge 1 is the left side.

So in our example this Card is in the Top Right slot of the IO boat in expander board 4. Next since this card has 2 ports, you will see a network@0, and network@1. Which correspond to the port 0 and 1 on the card (which happens to be a dual port ethernet/scsi card).

Now that I have explained how it works, here is a quick cheat sheet:

Device Agent ID Expander board
1c 0
3c 1
5c 2
7c 3
9c 4
bc 5
dc 6
fc 7
11c 8
13c 9
15c 10
17c 11
19c 12
1bc 13
1dc 14
1fc 15
21c 16
23c 17