Solaris tricks

From WTFwiki
Revision as of 21:24, 11 December 2008 by Andrew (talk | contribs)
Jump to navigation Jump to search

Page containing various magical things that we've learned about Solaris and OpenSolaris.

Writing a Sun disk label to a hard drive

The solaris installer will crash and burn if the disks you're installing to don't have a valid sun disk label. To ensure you have one, get to a command prompt from the solaris installer (right click the desktop in the graphical installer and select program->terminal).

# format -e

Pick the disk you want to label, it will ask you if you want to label it. Say 'y'. This should fix things. Select any additional disks with the 'disk' command, then 'quit'.

Sometimes this isn't enough, though! For some reason there are two types of labels, SMI and EFI, and other operating systems sometimes use EFI which Solaris pretends to understand but doesn't. So before quitting, type "label" again, whether or not it made a label automatically, and choose the SMI label. Default through any follow-up questions.

Setting a Static IP

This is way more cumbersome than you'd expect:

  • Edit /etc/nodename and /etc/hostname.<mymaininterfacename> (probably hme0) and put the hostname in the file
  • Delete /etc/dhcp.<mymaininterfacename> if it exists
  • Edit /etc/hosts and /etc/inet/ipnodes and put in the IP address and the hostname
  • Edit /etc/defaultdomain and add your FQDN
  • If you're not using a normal subnet, edit /etc/inet/netmasks and add your own custom one
  • Reboot (I have no idea how to restart the appropriate services)
  • Fume at the ridiculousness of solaris

Making Alt-Tab (and other mod1 related bindings) work

I use x2x to send keyboard input to my opensolaris box. It's an Ultra 80 with a Sun Type 4 keyboard. However, the machine I x2x from is a PC with an IBM Type-M keyboard. By default, any shortcuts using the alt key don't work. However, if on the PC you run the following command:

 xmodmap -e "keysym Alt_L = Meta_L Alt_L"

It should fix the issues with shortcuts using alt. This works better than using xmodmap on the sun machine. I'm not sure why but I'm not gonna argue.

Using the xterm-color terminfo file

The xterm that comes with solaris, like so many of the bundled applications, sucks. I've installed a better version from pkgsrc. To get solaris to find the terminfo file for xterm-color I've added the following to my ~/.zshrclocal (a file I use for per-machine shell configuration/overrides):

 export TERMINFO=/usr/pkg/share/lib/terminfo
if [ $TERM = xterm ]; then export TERM=xterm-color fi

PATH, MANPATH, man(1), etc

Change pager to GNU less (comes with Solaris in /usr/sfw/bin, or install from pkgsrc), and:

alias more=less
PAGER=less

Suggestion for MANPATH:

MANPATH=/opt/SUNWspro/man:/usr/share/man:/usr/local/man:/usr/perl5/man:\
        /usr/local/share/man:/opt/csw/share/man:/usr/pkg/man

Suggestion for PATH, as Solaris puts things in a bazillion different places you'll be lost without something like this:

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/ucb:/usr/sfw/bin:\
     /usr/ccs/bin:/usr/dt/bin:/opt/SUNWspro/bin:/usr/openwin/bin:\
     /usr/perl5/bin:/usr/local/bin:/opt/csw/bin:$HOME/bin

export PAGER MANPATH PATH

Getting a locate command on the system

Install sysutils/findutils. Edit root's crontab (sudo crontab -e root or whatever)

 1 3 * * * /usr/pkg/bin/gupdatedb

Then:

 alias locate=glocate

Either wait for 3am to roll around or run that gupdatedb command as root. It runs as the daemon user by default for security purposes (it won't index your 0600 chmodded pr0n).

Top alternative

prstat

Cleaning up a default Solaris install

Uninstalling unnecessary software

Use pkginfo to list all the installed packages and pkgrm to remove them. Be careful in removing things though as I don't think the solaris package manager does dependancy tracking.

Disabling services

Use svcs to list the services enabled on the machine. To disable a service do svcadm disable <service>. To list all services, even disabled ones; svcs -a.