[Solaris x86 FAQ] 5. Installation (Solaris x86 FAQ)


(5.1) How long does the install take?

It depends on the CD-ROM and hard disk speed. On a 300 MHz Pentium with a multispeed SCSI CDROM, from the time "Initial Install" starts, it only takes about a half hour. Add another half hour for initial probes and configuration menus. Add a lot more if you have problems, of course. Upgrades take about 3 hours or more. This is because the system must determine what critical configuration data must be saved and replace it on a "per-package basis".

I'm the impatient type and given up totally on system upgrades. Now I have a separate disk drive which I use for initial installs because it goes so much faster. With the typical SCSI drives costing in the $200 range it just isn't worth it anymore to do upgrades. But this is my opinion so take it for what it is worth. I just save the /etc, /opt, /local, and /export/home directories and selectively restore rather than upgrade.

Below is typically what I save before doing an initial upgrade. Don't take this for the ultimate system definition of what you should save, but it works for my system. Your system may be designed very differently. The first thing I do is mount the filesystem that has a home directory with the below critical files and copy them to the appropriate directories. I'm sure it could be automated but. . . What the advantage of this process is that I can do an initial install in about an hour. My home directories are always on another disk partition.

Install_Notes   My own release notes
default route   If you have one for routing to a DNS server.
df              Save the output of df to keep an idea of my disk usage
dfstab          /etc/dfs/dfstab for shared file systems
passwd          /etc/passwd file
shadow          /etc/shadow file
vfstab          /etc/vfstab filesystems

[Modified from Bob Palowoda's Solaris 2.4 x86 FAQ]

(5.2) My ATAPI CD-ROM or DVD isn't recognized during install of Solaris and it's not in the HCL. What can I do?

This used to occur with older versions of Solaris (2.5.1). The workarounds were to connect the CD-ROM to the primary ATAPI (not secondary and not the sound card), to disable DMA for the CD-ROM, or to use a SCSI CD-ROM.

[Thanks to L. E. "MadHat" Heath and others]

(5.3) What kind of problems might I encounter installing my SCSI system?

Typical problems with SCSI drives are termination and SCSI IDs. You'll have flakey behavior if there's no termination resistor on the drive at the end of a SCSI "chain". Worse are double termination resistors. Some people mistakenly leave a resistor jumper on a drive when it's not at the end of a SCSI "chain." This also makes the system flakey. Carefully read your SCSI adapter manual on termination if you're unsure about it. A SCSI drive can run for hours with no problems--then boom, you get a panic. Always check cabling, pins, and connections and use the *shortest* cable possible. The first thing I do when I have a problem with a SCSI device is to reseat the SCSI cables (with the machine powered off).

With SCSI IDs, a common problem is that the IDs on the drive, usually set with dip switches or a button, don't match the settings with your software (Solaris) or it's a duplicate ID. Check the IDs carefully when adding or upgrading SCSI devices. The boot drive must be ID 0.

Other more obscure problems are setting the BIOS address space for the disk controller the same as the network card address space, and the PCI video card address conflicting with PCI SCSI disk controller BIOS address space. SCSI ISA adapter support has been removed in Solaris 8--use PCI.

[Adapted from Bob Palowoda's Solaris 2.4 x86 FAQ]

(5.4) What do I do when the install hangs/panics?

One of the most common problems with some mother boards is handling DMA during the install. Usually, that's the case if you get a hang right around configuring /dev/devices. Try turning off the caching--external and internal. Slow the system speed down if it allows you to do this in the BIOS or through the front panel switch. Leave these settings ONLY for the install: kick it back up after the install.

Warning: If you already have a OS installed on your hard drive (and that's most of you), the Webstart "Installation" disk will most likely not work. Use type 4, "Solaris Interactive Text (Console session)," for Solaris 10 and the "Software 1 of 2" CD for Solaris 8 or 9.

If you still have problems, you can run Solaris boot in debug mode to help isolate the problem. When asked to make a selection, 1 - 4, type instead "b -kv" (without the quotes)

Another common problem is support for new devices. Use the latest driver update boot and distribution diskettes, especially with newly-supported hardware. Carefully check the HCL to verify your cards are listed. Try removing/replacing suspected troublesome cards to isolate the problem.

Sun gives these tips for handling hardware incompatibilities during installation (see http://access1.Sun.COM/cgi-bin/rinfo2html?115502.faq ):

". . . Disable external cache, . disable synchronous negotiation on the CD ROM, and disable ROM BIOS shadowing. These may be re-enabled after installation. Also, if using an un-supported or clone motherboard, slowing the system clock or changing from a double- clocked processor to a single-clocked one may help. Say, for example, a 486DX-50 as opposed to a 486-250 or 486-66."
I would also add (temporary) disabling of these BIOS settings to this list: video cache, BIOS virus detection (boot block writes), UDMA mode, and, most importantly, "OS supports PnP" (Plug and Play). Disabling these settings may not be required for your hardware and BIOS, but it has helped for some hardware setups. Remember to reenable these after you installed Solaris.

Here's a checklist of typical causes of hangs during installation:

"Appendix A Troubleshooting" in the Solaris Installation Guide: Custom JumpStart and Advanced Installations has more tips and extensive documentation on several installation error messages. These errors can occur with any installation, despite the title. The appendix was based on problems discovered from actual support calls and is very helpful.

[Thanks to Bob Palowoda and Jürgen Keil]

(5.5) I'm trying to install Solaris/x86 on my ATAPI drive. However, the installation program says the root partition must end within the first 1023 cylinders of the disk. What can I do?

The root filesystem must be below 1024 cylinders of your disk The number of cylinders has nothing to do with the size of the disk. So it is possible to have 1.5GB partitions below 1024 cylinders on some disks (with more MB per cylinder) and not on others. Newer BIOSes support LBA, Logical Block Addressing. The BIOS may have to be edited on bootup to enable the LBA option. This bumps the HD limit to 8GB. With LBA, Solaris/x86 and other operating systems can be placed anywhere you want. For older BIOSes, the 1024 cylinder limit translates to the first 512 MB on ATAPI.

Be sure that the root and the boot slice of the Solaris partition are within the 1024 cylinder boundary using the BIOS geometry reported for your disk and you should be fine. That is the cause of the "slice extends beyond end of disk" message -- exceeding 1024 cylinders.

If you're having problems, simply make the root filesystem smaller and create an additional /usr filesystem (and, e. g., /var, /opt, . . .). For reliability, the root filesystem should be small (say 64 MB) with large filesystems mounted on it.

I have seen problems with fdisk as well. In those cases I used a disk editor to adjust the partition so it started and ended on cylinder boundaries. This seems to happen when Solaris uses the actual geometry of a disk, as seen by Solaris at runtime, vs. the geometry reported by a controller to allow DOS to think it has no more than 1024 cylinders. Partition Magic reported problems with that partition when I tried it on systems with Solaris partitions that weren't aligned with the other partitions correctly.

Update: Solaris 8 has removed this size restriction for ATAPI drives. One must reinstall Solaris, not upgrade, to take advantage of this. SCSI drives have never had the partition size restriction, although the boot code in the root / filesystem had to be under the 1024 cylinder limit.

[Thanks to Ronald Kuehn and Mike Riley]

(5.6) Does Solaris x86 prefer to have the motherboard BIOS set to NORMAL or LBA for ATAPI disks?

In theory, both work. Leave it up to the BIOS' auto-detect, just as the Configuration Guide advises.

[Thanks to Randy J. Parker]

(5.7) Why does a Solaris install to a disk with valid, pre-existing fdisk partitions sometimes fail?

There is a well known bug that sometimes prevents Solaris from installing into an existing partition. Its cause has never been identified, or its existence officially acknowledged by filling out a bug report. It is secretly well known only to Sun's Installation Support team in Chelmsford, MA., who claim that the workaround is apparent from the message "slice extends beyond end of disk".

I agree that the workaround is simple, but I think some kind of document explaining the workaround should be referenced. Better yet, the error message could actually describe the error! Or, how about identifying and fixing the bug so it never happens to begin with?

For those of you too "stupid" :-) to read the error message, I'll decode it:

slice   = "disk"
extends = "is full of fdisk partitions"
beyond  = "before"
end     = "installation."
of      = "Please"
disk    = "delete at least one of 'em, and try again"

For example: If a disk has three partitions with the following: 1) FAT, 2) no filesystem yet, 3) NTFS, the installation might fail in some poorly understood cases, with the misleading error message.

The workaround is to delete the unused partition, leaving a "hole" between the flanking partitions. The install fdisk, Partition Magic, or any other fdisk will now see only two partitions: FAT and NTFS. There will obviously be lots of cylinders between the end of the first, and the beginning of the second. The Solaris install will spot the hole, and create a partition according to its own mysterious specifications. Somehow, this new partition is acceptable, even though a seemingly identical one created by a different fdisk isn't. Perhaps the bug is in *when* it was created: if previous, sometimes balk. Perhaps NORMAL / LBA is relevant at this point - - it did make a difference in at least one case I tested. Oddly, I have also had cases where the offending procedure of creating the partitions before beginning to install Solaris worked fine.

However, I once had a case where the Solaris install created a partition that left gaps of a few cylinders before and after. I am wary that it could err on the other side of the boundary, and damage a flanking filesystem by encroaching across the pre-existing boundary. The safest approach when dealing with a squirrelly fdisk is to use the dangerous one *first*. Install Solaris before the other partitions get used, if possible. Hopefully the other fdisk-type programs will recognize such corruption and allow the encroached-upon partitions to be deleted and re-created, without hurting the Solaris partition.

At any rate, the most-likely-to-succeed procedure is to install into a hole, or onto an empty disk with no partitions.

Thanks to Super-User (, who pointed out cases involving modern BIOS' auto-detecting ATAPI disks as NORMAL. Alan Thomas prefers always to set disks to NORMAL, and once had trouble with a disk that was set to LBA.

[Thanks to Randy J. Parker]

(5.8) How do I add a 8 GB or greater ATAPI drive to Solaris 7 or earlier?

Solaris 8 has support for large ATAPI drives built-in. For SCSI drives, there's no such restriction. However, if you have Solaris 7 or earlier, there's an 8 GB restriction on large hard drives, even in LBA mode. There is a workaround for this limit however, by following these instructions:

To add a drive for Solaris 7, you need a BIOS that supports drives greater than 8.4GB in LBA mode. Check with the computer manufacturer. BIOS upgrades may also be available if your system currently does not support large drives.

You also need to find out the total number of sectors available on the drive. Solaris 7 or earlier cannot read the extended information on the drive, so the information will need to be obtained from the manufacturer. If the manufacturer only provides the total number of bytes, then divide that number by 512 to obtain the total number of sectors. NOTE: Ignore the 16383x16x63 (or whatever) listed on the drive -- this equates to an 8.4GB drive and is not applicable to large drives.

To configure the drive:

  1. Set the drive mode to LBA in the BIOS setup.
  2. Boot Solaris.
    WARNING! Continuing will destroy any partitions that are on this drive.
  3. Create a disk geometry file for Solaris.

    Our formula: x * y * z = s. Where x is the number of cylinders (x cannot exceed (2**14) - 1 = 16383), y is the number of heads, z is the number of sectors per track, and s is the total number of sectors available on the drive. By setting y = 1, we get the following:
    x * 1 * z = s, or x * z = s. By further setting x = 16383, we get: 16383 * z = s.

    Solve for z (number of sectors per track): z = s / 16383. For example:
    Western Digital AC 418000 (18.2GB) - Total sectors = 35,239,680. 35,239,680 / 16383 = 2150.99 = 2150
    NOTE: All results must be rounded down. Solaris reserves three cylinders, so making x smaller would end up wasting space.

    Create a file called "geometry" like the following (using our example above) where NSECT is the value solved for z (2150):

    * Label geometry for device /dev/rdsk/c0d0p0
      16383    16383     2        0        1     2150 512
  4. Run fdisk in Solaris using the new geometry file:
    fdisk -S geometry -I /dev/rdsk/c1d0p0
    Replace "/dev/rdsk/c1d0p0" with your raw disk device (The trick is to let fdisk ignore the geometry reported by the BIOS and use the geometry specified in file "geometry" instead).
  5. From here on, you can format, partition, and make filesystems on the drive in the usual manner.

For details see the fdisk(1M), prtvtoc(1M), and fmthard(1M) man page.

[Thanks to Pete Howell and Jürgen Marenda]

(5.9) How do I install or use the "2 of 2" installation CD?

For Solaris 8 or 9, the "2 of 2" CD has the "man" pages and less frequently installed packages than the "1 of 2" CD. The "2 of 2" CD is not bootable. During installation, leave the "1 of 2" CD in the tray and switch the BIOS from CD to HD during reboot. The WebStart progress meter is inaccurate and can catch you unprepared if you are using auto-reboot (I recommend to not use the WebStart CD and install with the "1 of 2" CD). The ASCII progress meter, from the "1 of 2" CD is fine. After rebooting, if the "1 of 2" CD is in the tray then the system will eject it and ask for "2 of 2" CD. Otherwise use the trivial manual installation procedure given in the "Release Notes", the little white book that came with the CD's. Or use /usr/sbin/pkgadd to install individual packages.

Solaris 10 uses a different method. Use type 4, "Solaris Interactive Text (Console session)."

[Thanks to Paul Karagianis]

(5.10) How do I install or use the documentation CD?

The AnswerBook documentation CD that comes with Solaris is is very useful. To use it with Solaris 8, you have to run the Answer Book 2 Server cd. To do this, run the ab2cd script on the CD as root. For example: cd /cdrom/sol_8_doc/; ./ab2cd Then open your browser and enter the URL http://localhost:8888/
[Thanks to Daniel Chirillo & Dave Uhring]

(5.11) Help! I get a "No VTOC" or cannot mount error installing Solaris.

"VTOC" is a disk volume table of contents. That is, it describes Solaris disk slices and, for Solaris x86, resides at the start of the Solaris fdisk partition. The VTOC contains information on Solaris slices within the Solaris fdisk partition.

If you get a message similar to one of these: "Can't open -- No VTOC" or "can't open - no hsfs VTOC" you've probably told the install program the wrong location of the installation CD. A common error during installation is answering this question wrong: "Select one of the identified devices to boot the Solaris kernel." What it's really asking is the location of the Solaris installation CD, not where you're planning on installing Solaris on the hard disk.

Also, make sure to remove the CD before rebooting.

For other installation hints, see
[Thanks to Keith Parkansky]

(5.12) Help! Install hangs at "Discovering additional network configuration"

Solaris 10 appears to be looking for some a Solaris JumpStart server, which isn't there. It appears to "hang" forever if it can't find one. One possible cause is if there is another NIC present, with the wrong NIC being used in booting. The workaround is to remove or disable all NICs except the one being used to install (including NICs integrated in the motherboard).

Another workaround is to wait around for the "Accept Initial Configuration" screen. Before it times out in 30 seconds, select "Edit the Configuration," even if you're not making any changes, and save the configuration. Do not "test" the configuration--that may hang. Run kdmconfig after Solaris is installed to get X working. The installation may continue.

A last workaround is to install using type 4, "Solaris Interactive Text (Console session)". This option does not start X, so avoids any X mis-configuration problems. Use kdmconfig after installation to get X working or to change configurations.

(5.13) Can I just buy a Solaris x86 system instead of installing it myself?

Yes, of course—Sun will gladly sell you hardware. It will save you time, at the expense of money. I suggest a Sun Java Workstation with a AMD Opteron 64-bit processor and Java Desktop System software as an entry-level system. Currently, it's under $2000 US. Server blades are also available. See for details.

(5.14) What's the difference between a Solaris HW and Update release?

A HW release (for example Solaris 10 HW2) only adds support for specific hardware platforms. They are only fully tested for the new platforms that's being supported. A Update release (for example Solaris 10 06/06) contains hardware updates along with bug fixes and new features. If you only want recommended and security fixes, use the Recommended and Security Patch cluster (which requires a service contract) or download individual patches (free).

[Thanks to Alan Coopersmith]

(5.15) How can I use GRUB to boot Solaris/x86?

Starting with Solaris 10 06/06, Solaris uses GRUB to boot directly. That means you can have multiple instances of Solaris and other operating systems. Note that Linux GRUB cannot yet boot directly to Solaris (although Linux GRUB can chainload to Solaris GRUB). Also, Solaris GRUB can boot to Solaris or non-Solaris operating systems. For more info, see the Solaris GRUB FAQ at

Here's an example for GRUB's, a GNU bootloader popular with Linux. To use, add something like this to file /boot/grub/grub.conf:

# Solaris 10 FCS, or Solaris 9 or earlier:
title Chainload from Linux to Solaris
	rootnoverify (hd0,1)
	chainloader +1

With Solaris 10 Update 1, GRUB is integrated int Solaris x86. Grub is configured during installation or by bootadm. The following /boot/grub/menu.lst entry can be used with Solaris GRUB, but not Linux grub (until it's updated with the new Solaris-specific stuff):

# Solaris 10 U1 or later:
title Solaris 10U1
	root (hd0,2,d)
	kernel /platform/i86pc/multiboot
        module /platform/i86pc/boot_archive
Numbers are relative to zero for GRUB. That means "hd0, 1" is the first hard disk's second partition. Use "hd0, 0" for the 1st partition, "hd0, 2" for 3rd, and "hd0, 3" for 4th. "makeactive" tells GRUB to make the Solaris partition active before booting, as Solaris won't boot if its partition isn't the active partition (don't use "makeactive" with MS Windows, as it will then only boot MS Windows).

If the GRUB loader isn't installed or if it's removed after installing another OS (such as Solaris or MS Windows), run /sbin/grub-install on your boot disk (e.g., /sbin/grub-install /dev/hda ).

[Thanks to Mariusz Zynel and BigAdmin]

(5.16) How can I use GRUB to boot multiple instances of Solaris/x86? *

First, you can install Solaris on multiple times on a Solaris partition. Each time, use a different slice. You can have up to 9 slices, 0 - 9 (or a - j). Slice 0 (a) is traditionally used for root, 1 (b) for swap space, 2 (c) is reserved for the entire Solaris partition, and 7 (i) is typically for /export/home. So, that leaves slices 3 (d) - 6 (h), 8 (j), and 9 (k). After installing Solaris in another slice, add entries similar to the following (depending on the slice(s) you've used). Change (hd0,0,a) as appropriate: change hd0 to hd1 if this is the second disk, change ",0," to 1-3 if this is the 2nd-4th disk partition, and change "a" to a through i for the Solaris disks slice:

title Solaris Slice 0-A
        root (hd0,0,a)
        kernel$ /platform/i86pc/kernel/$ISADIR/unix
        module$ /platform/i86pc/$ISADIR/boot_archive

title Solaris Slice 3-D
        root (hd0,0,d)
        kernel$ /platform/i86pc/kernel/$ISADIR/unix
        module$ /platform/i86pc/$ISADIR/boot_archive

title Solaris Slice 4-E
        root (hd0,0,e)
        kernel$ /platform/i86pc/kernel/$ISADIR/unix
        module$ /platform/i86pc/$ISADIR/boot_archive
For Solaris 10 (instead of Solaris 11), use these lines instead of kernel$ and module$:
        kernel /platform/i86pc/multiboot
        module /platform/i86pc/boot_archive

(5.17) How do I use Live Upgrade? *

With the lu* commands. Solaris Live Upgrade (LU) allows one to clone the current "Boot Environment" (BE), which in the most simple case is the root filesystem. Then with LU, you can upgrade the cloned BE without rebooting. Only after LU is complete do you need to reboot—reducing downtime. Here's a simple example:

lucreate -m /:/dev/dsk/c0d0s4:ufs -n second_root
luupgrade -u -n second_root -s /media/SOL_11_X86
luactivate second_root
First lucreate clones the root filesystem (current BE) to another slice on c0d0s4. Then luupgrade upgrades the BE "second_root" from a Solaris install DVD. Then luactivate activates it for the next boot, and lustatus shows the current status of the BEs. Before running LU, make sure you're up to date on your Solaris patches. See InfoDoc 72099 at For disaster recovery, copy and print the recovery information printed by the luactivate command and save a copy of the /boot/grub/menu.lst file.

For more information, see:



I Boot OpenSolaris [Blue Ribbon]   This web page is not associated with Oracle Corporation. [Legal Stuff]


If you have questions or comments, please send a message to Dan Anderson.