[Solaris x86 FAQ] Solaris x86 FAQ

English ENGLISH (below)
Russian / RusskayaRUSSKAYA / RUSSIAN

From: Dan Anderson <>
Newsgroups: alt.solaris.x86,comp.unix.solaris,alt.answers,comp.answers,news.answers
Subject: Solaris x86 FAQ
Approved: news-answers-request@MIT.EDU
Summary: This posting answers frequently-asked questions from the
         alt.solaris.x86 newsgroup that aren't already covered in the
         Solaris 2 FAQ.  It should be read by anyone who wishes to
         post Solaris x86 questions to the alt.solaris.x86 or
         comp.unix.solaris newsgroups.
Followup-To: alt.solaris.x86

Archive-name: Solaris2/x86/FAQ
Posting-Frequency: quarterly
Last-modified: 2011/10/12
Version: 2.30
Maintainer: Dan Anderson <>, San Diego, California, USA





(3.1) + What web and FTP sites do I need to know about?
(3.2) + How do I subscribe to the Solaris/x86 mailing list?
(3.3) + Where can I obtain Solaris 2/x86 maintenance updates?
(3.4) + Where can I obtain Solaris 2/x86 patches?
(3.5) How can I obtain freeware, shareware, and GNU software on a CD-ROM?
(3.6) What UNIX-like operating systems are available on x86?
(3.7) + What books are available on Solaris x86?
(3.8) What magazine articles are available on Solaris x86?
(3.9) + What's new for Solaris 10 x86?

(4.1) What information should I have before an install?
(4.2) + What hardware is supported by Solaris 2.x for Intel?
(4.3) + What size disks and partitions should I have?
(4.4) What are SCSI IDs expected by Solaris x86?
(4.5) What video card/monitor combination works best?
(4.6) Is Plug-and-Play (PNP) supported by Solaris/x86?
(4.7) Is Advanced Power Management (APM) supported by Solaris/x86?
(4.8) Are "floppy tape" devices supported by Solaris x86?
(4.9) + How can I get a "free" copy of Solaris?
(4.10) What's missing from the "free" copy of Solaris that's in the commercial version?
(4.11) How do you create a Device Configuration Assistant (DCA) Diskette in DOS/Windows?
(4.12) How can I get Solaris to see the third ATAPI controller?
(4.13) Are Ultra DMA (UDMA) drives supported?
(4.14) + Are Universal Serial Bus (USB) devices supported?
(4.15) + Is the scroll wheel on the mouse supported?
(4.16) What's the difference between Solaris x86 Server and Solaris x86 Desktop?
(4.18) + Is Solaris x86 64-bit aware?
(4.19) What's the difference between partitions and slices?
(4.20) I already used the 4 primary fdisk partition table entries. Can I create a partition for Solaris within my extended partition?
(4.21) What are the IRQ assignments?
(4.22) + Are Laptops supported for Solaris x86?
(4.23) Is Serial ATA (SATA) supported for Solaris x86?

(5.1) How long does the install take?
(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?
(5.3) What kind of problems might I encounter installing my SCSI system?
(5.4) + What do I do when the install hangs/panics?
(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?
(5.6) Does Solaris x86 prefer to have the motherboard BIOS set to NORMAL or LBA for ATAPI disks?
(5.7) Why does a Solaris install to a disk with valid, pre-existing fdisk partitions sometimes fail?
(5.8) How do I add a 8 GB or greater ATAPI drive to Solaris 7 or earlier?
(5.9) + How do I install or use the "2 of 2" installation CD?
(5.10) How do I install or use the documentation CD?
(5.11) Help! I get a "VTOC" or cannot mount error installing Solaris.
(5.12) * Help! Install hangs at "Discovering additional network configuration"
(5.13) * Can I just buy a Solaris x86 system instead of installing it myself?
(5.14) * What's the difference between a Solaris HW and Update release?
(5.15) * How can I use GRUB to boot Solaris/x86? *
(5.16) * How can I use GRUB to boot multiple instances of Solaris/x86?
(5.17) * How do I use Live Upgrade?

(6.1) How do I add additional drives?
(6.2) + How do I add or configure users, printers, serial ports, software, etc.?
(6.3) + How do I suppress the banner page on my printer?
(6.4) + How do I set up an HP-compatible printer to print PostScript files?
(6.5) + How can I improve disk and graphic performance?
(6.7) + How do I get Solaris to recognize generic network cards with well-known chipsets?
(6.8) + How do I change the IP address or hostname or both on Solaris/x86?
(6.9) How do I configure another serial port, /dev/ttyb-ttyd (COM2-4)?
(6.10) How do I disable Solaris/x86 from probing the UPS on COM2?
(6.11) * How to I boot into 32-bit mode on AMD64 or Intel 64?
(6.12) * How to I set the time zone?
(6.13) + How do I configure Dynamic IP Addresses (DHCP)?
(6.14) + How do I configure my SoundBlaster or other sound card?
(6.15) + How do I enable the audio output from my CDROM to my SBPRO card?
(6.16) Can I use Solaris/x86 to setup a "headless" server?
(6.17) Can I get a Sun-style keyboard (Ctrl & Caps Lock reversed) for S/x86?
(6.18) + Can I run multiple terminals on the console of Solaris x86 like those supported on Linux, FreeBSD, Interactive Unix, and SCO?
(6.19) How do I upgrade my video graphics card?
(6.20) + How do I burn a CD or DVD with Solaris?
(6.21) Is IPv6 available for Solaris/x86?
(6.22) Is IPsec available for Solaris/x86?
(6.23) Is Kerberos 5 available for Solaris/x86?
(6.24) Does Solaris x86 support multiple processors?
(6.25) How do I uncompress a .gz file?
(6.26) + Why doesn't /usr/bin/cc work?
(6.27) How do you connect Solaris to my cable modem?
(6.28) How do you setup Solaris to use Time Warner's RoadRunner cable modem service?
(6.29) How do I force the speed and/or duplex of my network interfaces (ndd(1M) doesn't work)?
(6.30) Why can't I create a home directory under /home?
(6.31) Is Symantec Veritas file system available for Solaris x86?
(6.32) * How to I find the battery status for a laptop under Solaris?
(6.33) How do I use Linux NIC drivers for Solaris x86?
(6.34) How do I add color to "ls" or "vi"?
(6.35) + How do I move the disk containing Solaris from the ATAPI primary master controller to the secondary controller or slave connector (or both)?
(6.36) + I've installed Solaris using Sun's brain-dead disk slice defaults. How do I modify my slices?
(6.37) How do I mirror root with Disksuite when /boot is a separate fdisk partition?
(6.38) Is ISDN supported for Solaris x86?
(6.39) Is there a substitute available for PRNG /dev/random for Solaris x86?
(6.40) What are some good, easy-to-use printing solutions for Solaris?
(6.41) + What is the Solaris Data Encryption Kit?
(6.42) How do you mount a Solaris ISO image (with UFS filesystems) in Solaris?
(6.43) + Is noexec_user_stack supported in Solaris x86?
(6.44) * How do I setup zones with Solaris?
(6.45) How to change the audio beep frequency?
(6.46) + Is Adobe Acrobat Reader available for Solaris x86?
(6.47) * Are RealPlayer and other audio and video players available for Solaris x86?

(7.1) What can I do if Solaris won't boot?
(7.2) How do I restore the Solaris boot block without reinstalling?
(7.3) + What can I do during the Solaris/x86 booting sequence?
(7.4) + How do I logon as root if the password doesn't work anymore?
(7.5) My licensed software fails because the host ID is 0. What's wrong?
(7.6) How can I fix Netscape Communicator to render fonts correctly on S/x86?
(7.7) Why doesn't Netscape run as root?
(7.8) I moved my PCI host adapter to another slot and the system won't boot!
(7.9) Why is Solaris always booting into the Device Configuration Assistant (DCA)?
(7.10) What is the equivalent of STOP-A for Solaris x86?
(7.11) + How can I reboot Solaris x86 without it asking me to "press a key" before rebooting?
(7.12) Help! I'm stuck in the "Boot Assistant" and can't boot. What do I do?
(7.13) Help! I get error 2 or error 8 while applying patches. What do I do?
(7.14) How do I prevent kdmconfig from running on boot up when I know my keyboard, display, and mouse configuration has not changed?
(7.15) * I get this error message: "can't get local host's domain name" or "The local host's domain name hasn't been set." What do I do?
(7.16) My system doesn't boot due to superblock problems with the root filesystem. What do I do?
(7.17) My system doesn't boot because the boot archive is corrupt. What do I do?

(8.1) + How do I find a Solaris video driver for my graphics card?
(8.2) + How do I install the Xorg video drivers?
(8.3) + How do I configure Xorg on Solaris?
(8.4) + How do I configure 64K colors for XSun/CDE?
(8.5) + How do I Add KDE, FVWM, or other non-CDE/GNOME Window Mangers to the dtlogin screen?
(8.6) + Where can I get GNOME or KDE packages for Solaris/x86?
(8.7) After upgrading to Solaris 9 or installing GNOME, GNOME does not appear in the dtlogin menu. How can I fix this?
(8.8) Are TrueType fonts supported in Solaris?
(8.9) After installing and booting Solaris I get this message: "The X-server can not be started on display :0"
(8.10) How do I disable CDE auto-start upon booting multi-user?
(8.11) + How do I su(1) to another user and run an X application?
(8.12) + Does Solaris x86 support multiple heads?
(8.13) How do I get my 2-button mouse to emulate 3 buttons?
(8.14) How do I get some older Solaris GUI's to run with Xorg?
(8.15) * Can I use an old Sun monitor with a 13W3 connector with a VGA adaptor card?

(9.1) + Can I install Solaris x86 on a system that already has MS Windows 9x/ME/NT/2K/XP (among other systems)?
(9.2) How can I use MS Windows' NT/2K Loader to boot Solaris/x86?
(9.3) * Can I mount Solaris ZFS filesystems on Linux or Mac?
(9.4) * How can I mount MS Windows NTFS filesystems in Solaris?
(9.5) + Can I install Linux and Solaris on the same drive?
(9.6) * Help! Mount of a Linux NSFv4 fails with "Not owner"
(9.7) Empty
(9.8) Empty
(9.9) + How can I boot both Solaris/x86 and Win XP/2000/NT on the same disk?
(9.10) + How do I mount a DOS partition from the hard drive?
(9.11) + Does PartitionMagic and BootMagic understand Solaris partitions?
(9.12) How do I access a DOS-format diskette from Solaris?
(9.13) Does Solaris mount and recognize MS Windows partitions with long file names (VFAT)?
(9.14) + How can I make my Solaris files easily available to MS Windows on a network?
(9.15) * How can I access files on a remote MS Windows, SMB, or SAMBA share?
(9.16) How can I make my Solaris files easily available to an Apple Macintosh on a network?
(9.17) Can I use SunPCi on Solaris/x86?
(9.18) + Will Linux programs run on Solaris 2/x86?
(9.19) How can I get the DOS and UNIX clock to agree on Solaris/x86?
(9.20) + Is Solaris x86 able to execute Solaris SPARC applications?
(9.21) Will my old applications from SVR3 or SCO run on Solaris 2/x86?
(9.22) Will my application from Solaris/SPARC work on Solaris/x86? I have the source.
(9.23) Can I access Solaris/x86 partitions from Linux?
(9.24) + Can I access Linux (ext2/ext3) partitions from Solaris?
(9.25) + What are some books on Windows NT/Solaris integration?
(9.26) + How can I view MS Word files in Solaris?
(9.27) Where can I get Mozilla Firefox, or another web browser for Solaris x86?
(9.28) How do I setup Xprint for Mozilla?
(9.29) Can I mount other ufs disks, say from BSDi/FreeBSD, and vice versa?
(9.30) How can I use a disk partition on Solaris 2.x which was previously dedicated to MS Windows 9x/ME/NT/2K/XP (or other OS) as dual boot?
(9.31) How can I convert a DOS/Windows text file to a Unix text file?
(9.32) Can VMWare be used with Solaris x86?
(9.33) Is Solaris on Intel really "Slowaris"--slower than other Intel-based operating systems?
(9.34) How can I remove (uninstall) Solaris from my hard drive?
(9.35) I can install Linux on a system with Solaris x86, but why can't I boot it?
(9.36) Empty
(9.37) What are the /dev/dsk/ disk naming conventions for x86 disks?
(9.38) * What is OpenSolaris and what distributions are available?
(9.39) * How do I compile Abiword for Solaris?

*New question.
+Significantly revised answer.


The Solaris x86 FAQ: Frequently-asked Questions about Solaris x86.

This posting contains frequently-asked questions, with answers, about the Sun Solaris 2 Operating System on the Intel Platform (x86) found in the alt.solaris.x86 and comp.unix.solaris USENET newsgroups. The alt.solaris.x86 newsgroup covers Solaris on the Intel platform, for version 2.5 and higher. The most up-to-date copy of this FAQ is at

The comp.unix.solaris newsgroup is for Solaris on all platforms-- Sparc or Intel. Please also consult Casper Dik's excellent FAQ on Solaris 2, which mostly applies to Solaris x86 too. It's at: and elsewhere. Solaris 11 is also known as Solaris Nevada or OpenSolaris, with a 5.11 revision string. Solaris 7, 8, 9, and 10 are also known as SunOS 5.7, 5.8, 5.9, and 5.10. Solaris 2.x is also known as SunOS 5.x.

For earlier versions of Solaris/x86, please see the (somewhat dated) "Solaris 2.4 x86 FAQ" by Bob Palowoda archived at various dusty corners on the net. The (mostly historical) Sun 386i (Roadrunner) is covered in Ralph Neill's (hard to find) FAQ.

If you post questions to alt.solaris.x86 or comp.unix.solaris, please be sure to indicate:

I'm doing this on my own time as a public service. The views expressed on this blog are those of the author and do not necessarily reflect the views of my employer.

I don't have the time to diagnose individual Solaris problems, and I probably don't know the answer either :-). Many experienced and knowledgeable people read the newsgroup. Post your question there. However, answers, corrections, and comments should be directed to me.

No FAQ is the work of one person, but is a USENET community effort. This material was "snarfed" from other FAQs, USENET newsgroup postings, mailing lists, and personal knowledge. Generally the source is noted at the end of each question. Most answers have been reworded, or expanded, or updated. Thanks to everyone who contributed directly or indirectly. Please send any corrections or additions to me.

This faq may be freely redistributed in its entirety provided that this copyright notice is preserved. Permission is expressly granted for this document to be made available for file transfer from installations offering unrestricted anonymous file transfer on the Internet.


Sun, Oracle, Java, and Oracle Solaris are trademarks or registered trademarks of Oracle Corporation. SPARC is a registered trademark of SPARC International, Inc. in the United States and other countries. Products bearing the SPARC trademarks are based on an architecture developed by Sun Microsystems, Inc. Adobe and PostScript are registered trademarks of Adobe Systems Incorporated. HP is a trademark of Hewlett-Packard Company. IBM is a registered trademark of International Business Machines Corporation. Intel and Pentium are registered trademarks of Intel Corporation. Pentium® II Xeon is a trademark of Intel Corporation. Linux is a registered trademark of Linus Torvalds. Microsoft, MS, MS-DOS, MS Windows, and Windows NT are registered trademarks of Microsoft Corp. Netscape is a trademark of Netscape Communications Corp. Netscape® Communicator is a trademark of Netscape Communications Corp. Open Source is a registered certification mark of Open Source Initiative. UNIX is a registered trademark of The Open Group. All other product names mentioned herein are the trademarks of their respective owners.

-Dan Anderson
alt.solaris.x86 FAQ Maintainer
San Diego, California, USA

(3.0) RESOURCES (3.1) What web and FTP sites do I need to know about?
The latest version of this FAQ is always at this URL. It's available in text and HTML formats. This FAQ also appears in the alt.solaris.x86 or comp.unix.solaris newsgroups and on various FAQ archives. Check the date at the top of this FAQ to make sure you have a recent version. If you don't have USENET news access, you can search past postings and post your own messages at
Sun's web site for Solaris on x86, contains pointers to Solaris x86 product information, updates, resources, news, etc.
BigAdmin is Sun's System Administration Support and Education website. Has Solaris knowledge base, Hardware Compatibility List (HCL), device drivers, patches, and Device Configuration Assistant (DCA) boot diskette images. Links to drivers for Solaris x86 are at
http://sunsolve.Sun.COM/ site.
Sun's download website for patches and various technical documents. Public patches are at http://sunsolve.Sun.COM/ Patch clusters require a service contract. Sun also has another Solaris x86 FAQ at
Update: you basically need a service contract to access this information. A volunteer-led, unofficial website has an incomplete list of patches and bugs at
Sun documentation on-line. Includes manuals, guides, answerbooks, and man pages in HTML format. Especially useful for configuring new hardware and new systems is the Information Library for Solaris (Intel Platform Edition).
Stokely Consulting's list of FAQs has lots of pointers resources, not only for Solaris x86, but UNIX System Administration in general.
Steven Christensen's Solaris Freeware Page. Pointers to LOTS of x86 pre-packaged GNU and other open-source software. Download from web or use pkg-get.
Pointers to many Solaris viewers, players, and Netscape plug-ins. Includes sample media files.
A website with tutorials and news on Solaris x86.
CDE (Common Desktop Environment) FAQ and
Both sites provide community-built packages for Solaris x86.
Selected Solaris x86 binaries conveniently packaged in pkgadd format at the University of North Carolina (formerly Sunsite).
Joe Shamblin's annotated collection of Solaris x86 open source, with pointers to documentation, make it good for open source browsing. This site appears to be dormant (last updated circa 1998).
My Solaris x86 Webpage contains the latest version of this FAQ.
Good overview on installing Solaris/x86 for your desktop workstation, including frequently-used add-ons such as Open Office. Lots of good pointers. Article published 2003.
Phil Brown's Solaris tips, packages, and drivers. (includes packages and drivers he wrote). Lots of useful information.
Last, but not least, Casper Dik's thorough FAQ on Solaris 2. This entire FAQ is available as one file at:

(3.2) How do I subscribe to the Solaris/x86 mailing list?

Subscribe by sending an e-mail message to <> or visit Yahoo Groups' Solaris x86 web page at You DON'T have to register to join the list, but you do have to register to read the list archives on the web (sorted by thread and date)

Sun maintains a similar "Solaris on Intel" discussion forum. To access it, go to and select "Solaris x86 Platform Edition".

A web-based forum, covering SPARC and x86, is at

(3.3) Where can I obtain Solaris 2/x86 maintenance updates?

Starting with Solaris 7, Sun includes the drivers in the Maintenance Updates (MUs) and updated versions of the OS.

[Thanks to Alan Coopersmith]

(3.4) Where can I obtain Solaris x86 patches?

The Solaris x86 driver updates can be obtained by HTTP from: ftp://sunsolve.Sun.COM/

A listing sorted by release is available by clicking on "Patches" at the SunSolve web page, http://sunsolve.Sun.COM/

Pointers to patches, including one huge *_x86_Recommended.tar.Z file for each release. This directory is publicly accessible--it doesn't require you to be a contract customer. Patches are also available locally at many SunSites.

The "showrev -p" command shows what patches you have installed.

All files replaced by a patch are saved under /var/sadm/patch/ or /var/sadm/pkg/

For Solaris 10, consider using "Sun Update Connection." It's a GUI that manages your patches (similar to MS Windows and Linux update managers). Once installed, just click on the GUI or run "/usr/bin/updatemanager from the command line. It's available for free download from You need to be registered (free), and security and public patches are free. Other patches require a service contract. Currently, Sun Update Connection is available only for Solaris 10, but if not patched it doesn't work (hangs) with Solaris zones (bug). I recommend only applying critical security patches and patches for specific problems you've had. Don't blindly apply all patches.

(3.5) How can I obtain freeware, shareware, and GNU software on a CD-ROM?

Solaris 8 comes with some GNU utilities, such as gzip and less. More binary packages for GNU and other Open Source software are in a separate CD. The CD is installed after Solaris is installed. The packages on the CD all start with "SFW" (SFW stands for "Sun Freeware").

For older versions of Solaris, Micromata of Kassel, Germany offers its "Summertime" CD with precompiled software for Solaris SPARC and Intel,

See question 3.1 above for FTP and web software sites.

(3.6) What UNIX-like operating systems are available on x86?

Note that the open source versions can also be purchased on CD-ROM, which is a convenient way to get it. For Linux, there are multiple vendors selling CD-ROMs (e.g., RedHat, Other systems are over the horizon, in beta, or for teaching/research. E.g., GNU's HURD, Tanenbaum's Minix, or Lucent/Bell Labs' Plan 9,

(3.7) What books are available on Solaris x86?

(3.8) What magazine articles are available on Solaris x86?

"Sun injects Solaris X86 with new life as it makes its way to 64 bits" Sun World. Feb. 1997 by Rick Cook. http://www.Sun.COM/sunworldonline/swol-02-1997/swol-02-solarisX86.html

Note: please send other submissions to Dan Anderson at

(3.9) What's new for Solaris 10?

Solaris 10 for x86 was released in 2005. Solaris 10 features include: an improved TCP/IP stack ("Fire Engine"), "Solaris Zones" (partitioning software that's sort of like an enhanced chroot jail--one kernel, many OS instances), "ZFS" Dynamic File System, (mirroring, volume management, performance, scalability, and reliability improvements) "FMA/Greenline" with self-healing features and fault management, NFS v4, Gnome 2, DTrace diagnostic software, AMD64 support, and Linux binary support.

Solaris 10 06/06 now uses GRUB for x86 booting, along with support for ZFS (Zettabyte 128-bit Filesystem), and lxrun (to run Linux binaries).

Solaris 10 x86 is available at


(4.1) What information should I have before an install?

The size of your disk determines what cluster you are going to install on your system. I.e., an End User cluster, a Developers Cluster or the Complete Cluster. See references to how to size your OS when installing.

The Ethernet hardware address from your Ethernet card would be helpful if you're on a NIS net and your going to do net installs. You would like to have the Ethernet address in the /etc/ethers map file before you do an install. Usually the manufacturer of an Ethernet card will have some software that you can run under DOS to display this number or sometimes you can find the Ethernet number on a sticker right on the Ethernet card. If this is on a standalone network you probably don't need to know the Ethernet hardware address. Don't confuse this with the software IP address.

Bandwidth of your monitor and video card are important. During the install the install process is going to ask you for the size of your monitor and what vertical resolution you want to drive the monitor at. Note that in the update disk documentation they give a handy dandy monitor resolution bandwidth for monitors in the appendix. You may want to check this out. See other references on video cards and monitors throughout the FAQ.

The install process will ask you about your mouse type.

[From Bob Palowoda's Solaris 2.4 x86 FAQ]

(4.2) What hardware is supported by Solaris for Intel?

Solaris x86 is the version that runs on Intel-based PCs and servers. Requirements vary to release, but generally a Pentium-class processor or better from Intel or AMD, a PCI bus, 256 MB of memory, and 20 GB Disk. Solaris base and Java Desktop System takes about 5GB. Add Java Enterprise System (not needed except for servers), for a full install takes about 11GB. Add in swap and free space, so you should have, say, a 10 or 20 GB disk or larger. Many multi-processor boards and multi-processor cores are supported. You must have a CD-ROM drive or access to NFS or a boot server over the network to install. A DVD drive is better, as it's fewer disks to swap.

The Solaris x86 Hardware Compatibility List (HCL) lists the tested hardware. However, not all hardware combinations will work. Also, hardware not listed may work, but are not guaranteed or supported. The HCL is at: After installing Solaris, please submit your own configuration at the "Submit System" form to let others know that your hardware is compatible.

For troublesome devices and cards, I find System Administration Guide: Devices and File Systems at useful.

A downloadable Java JNLP application is available to detect what hardware support is available for your computer. This app is runs on Linux or Windows and is a great preview of support. I don't need to check my Athlon 64 desktop, as it has Solaris. My IBM Thinkpad has everything but WiFi support (it's coming) and the internal modem.

[Updated from Casper Dik's Solaris 2 FAQ]

(4.3) What size disks and partitions should I have?

Solaris base and Java Desktop System takes about 5GB. Add Java Enterprise System (not needed except for servers), for a full install takes about 11GB. Add in swap and free space, so you should have, say, a 10 or 20 GB disk or larger. This can be pared down, but with today's large disks, I usually install all of Solaris.

Solaris uses a tmpfs where both the swap area and /tmp share a common disk space. Configure about 512MB - 1GB of swap space on a single user system. Many programs use the tmpfs for speeding up applications. My swap file is usually 1.5 times my physical memory.

Solaris installation usually suggests several filesystems. However, for workstations, I recommend a simple layout with just two slices in the Solaris partition: root (/) and swap (/tmp). and everything else goes in the root (/) filesystem. If you're expecting a lot of overflow from /var (usually on servers), consider creating a separate /var filesystem (say 200 MB or more, depending on your needs).

During installation, you will be asked to select the boot disk to use. Next, you will be asked if you want to "Preserve Data?" Answer "yes" if you have unused disk space and want to keep your existing operating system (e.g., Linux or Windows). Answer "no" if you want remove all existing partitions on the disk and use the all or part of the disk for Solaris.

If you are installing Solaris 9 or earlier on a disk with Linux, be especially careful not to use the Linux swap partition for Solaris if installing Solaris or vice versa installing Linux. They both use the same partition ID, 0x82. For Solaris 10 this is no longer true--Solaris 10 uses ID 0xBF, which does not conflict with Linux Swap partitions (0x82). For more information, see the question later in this FAQ, Can I install Linux and Solaris on the same drive?

(4.4) What are SCSI IDs expected by Solaris x86?

These are the typical values for SCSI devices. For tape and CD-ROM, these are the defaults used in the /etc/vold.conf file for controlling the vold mounter. You can set them to other ID's but remember to adjust the vold.conf file to the new values.

Boot drive      	ID 0
Second drive    	ID 1
Third drive    		ID 2
Reserved by Solaris	ID 3
Tape            	ID 4
CDROM           	ID 6
SCSI controller 	ID 7

[From Bob Palowoda's Solaris 2.4 x86 FAQ]

(4.5) What video card/monitor combination works best?

Some questions will arise when trying to configure your video card and monitor size. The most critical area is when you do the install and answer the questions about the vertical HZ, screen size 14, 15, 17, 21-inch, etc. If you get it wrong you get the squiggles.

First, find your video card manual. Ha! I can hear the laughs from across the world. What manual? If this is the case just select the slowest vertical HZ. You can always change it later after the system is up with kdmconfig.

Resolution: be safe and just use 1024x768 or smaller the first time through the install. Latter, boost it up to 16 million colors and specify a bigger monitor size.

Screen size should be easy. Measure diagonally: [\] about that big.

If you don't know the video card type just select the standard vga8 to do the install. Hopefully when your system boots it displays what video card you have in it.

A good video card combination such as the ATI and Sony 17sei can allow you to drive it at 76Hz vertical 1280x1024 on a 17-inch screen.

Hint: Look in the update readme files and at the end in one of the appendices you'll find a chart of monitors and their scan rates. It's usually good to refer to before you buy the monitor and video card combination. You could have a very nice high bandwidth monitor and a lousy video card that can't drive it hard enough. Or visa versa, a good video card that can drive a high bandwidth but the monitor just can't handle it.

Another Hint: Even though there's no 14-inch monitor on the configuration menu you can select the 15-inch setting. If the 14-inch monitor has a good bandwidth it will sync up.

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

(4.6) Is Plug-and-Play (PNP) supported by Solaris/x86?

Yes, with Solaris 2.6 and latter. Sun FAQ 2234-02 at http://access1.Sun.COM/cgi-bin/rinfo2html?223402.faq has instructions for configuring Solaris to recognize specific PNP devices. See the System Administration Guide: Devices and File Systems at for details on each device (and see the Driver Update Guide when using updates).

Personally, I find it a lot easier to disable PNP on cards that have that option. Boot into DOS or Windows (with a diskette if you have to) and run your card manufacturer's utility or configuration or diagnostic program. I also disable the BIOS setting "OS supports PNP". PNP can be tricky with Solaris sometimes.

To display your current system configuration run "prtconf -pv"

The following is from Sun FAQ 2234-02, which has instructions for configuring Solaris to recognize specific PNP devices:

You have a device that is "Plug and Play" (PnP), but Solaris doesn't recognize it. Yet it seems that it is generic enough, like a modem, that it should be recognized or it is listed by name in the Hardware Compatibility List (HCL).

Devices are recognized by matching their device id with entries in the boot system's "master" file. This file is on both the boot diskette and on the root in /platform/i86pc/boot/solaris/devicedb of an existing Solaris 2.6 system.

First, be sure you are using the latest Driver Update (DU) for your version of Solaris. Your device may already have been added to that since the 2.6 CD was released. This can save you a lot of trouble. Be sure to read the documentation that comes with that DU to see if it describes your specific device.

To have the system recognize a device as an asy compatible device, of which a modem is a good example, the user needs to find out the ID of the particular device. This can be accomplished by looking at the output of a "prtconf -pv" on an existing Solaris 2! .6 system with the device installed. The node that is the one for the Plug and Play card will have a name property of the form "pnpXXX,DDDD", where the XXX is three letters and "DDDD" is four digits.

If one constructs a PnP ID by concatenating XXXDDDD, this will be the ID for the Plug and Play card. To have the system recognize this card as an asy device, the line in the above mentioned master file that contains the driver name "asy" as its second field should be edited to have the constructed ID as one of the IDs listed in the first field. As in the example below:

USR0006|USR0002|SUP1381 asy com pnpisa none "Serial port w/ built in modem"


XXXDDDD|USR0006|USR0002|SUP1381 asy com pnpisa none "Serial port w/built in modem"

NOTE: One should be very careful editing this file since if it is trashed, the system may no longer be able to boot. When changing the floppy, be sure to change a duplicate of the floppy—not the original! When changing the file on you Solaris boot drive, be sure to save the original as master.OLD or some such name.

After making this change to the master file on an existing system, the user should do a "touch /reconfigure; /usr/sbin/shutdown -i6" to reboot/reconfigure the system. If you are changing a copy of the floppy just boot from the changed floppy. The device will be recognized as the desired type and should automatically have the proper driver attached.

This procedure may work for other drivers that are compatible with various devices, but whose Plug and Play ids are not in the master file. For example, the sbpro driver can drive many PnP sound cards that look like a Soundblaster PnP 16.

Only add IDs to existing lines. Do not create new lines by yourself. If you truly have a new device then please submit a "Driver Request Form" to have it supported. If you look where you download the latest Driver Update you should find a link to it there.

(4.7) Is Advanced Power Management (APM) supported by Solaris/x86?

APM isn't really supported on x86. Solaris is "APM tolerant" which means that if APM can do everything transparently to Solaris, it will work. If it isn't transparent, Solaris gets confused.

So, SPARC has power management in the OS but x86 does not.

[Thanks to Doug McCallum]

(4.8) Are "floppy tape" devices supported by Solaris x86?

No. You have to use a SCSI tape backup device. Other options include purchasing a zip drive, which is supported (except on the parallel port), or backing-up your files to a MS-DOS/MS Windows partition and back it up from MS DOS/MS Windows or some other operating system.

(4.9) How can I get a "free" copy of Solaris?

A "free" copy of Solaris x86 (where "free" means the download and license is free. You pay media, shipping, and handling cost if you don't want to download.) is available from There are CPU and commercial use restrictions on this free license. The Solaris media kit (DVD and CDROMs) costs US $50 or free to download.

The download version includes everything but the Open Source "Software Companion" CD, and the Star Office CD (the latter is available for download separately or you can use Open Office).

If you download and have problems, make sure you download in "binary" mode (check that the file size matches exactly). Some CD burning software (especially for Windoze) requires the downloaded files be renamed to have a ".iso" extension. Please verify the CD or DVD you burned, if the software has that option. I recommend using "Easy CD Creator" software if you are using Windows machines (see ). Some people like Nero Burning ROM software, but I have no experience with it. In any case, make sure you burn as a "Disk Image" or "Existing Project", otherwise, the *.iso file will be burned as just a file on the CD/DVD, instead of burning the exact image of the *.iso file.

Keep in mind that the CD uses Solaris (long) filenames, not DOS 8.3 filenames. So if you do a DIR on the cd, don't be alarmed if you don't see everything. Also MS Windows does not recognize the industry-standard "Rock Ridge" format for long filenames (in characteristic fashion, MS Windows uses their proprietary "Joliet" format).

For Solaris and other flavors of UNIX, several CD burning utilities are available, such as cdrecord (CLI) at, BurnIt (Java GUI front end to cdrecord) at, or X-CD-Roast (Linux GUI) at

Educational users .EDU-affiliated individuals can obtain Solaris and a number of other software packages via the EduSoft program for free. See "Individuals" at

[Thanks to Sun Microsystems, Alan Coopersmith, John Groenveld, and Toby McLaughlin]

(4.10) What's missing from the "free" copy of Solaris that's in the commercial version?

The following CD is supplied with the commercial version but not with the free version: Software Supplement for Solaris 7. The latter contains SunVTS, ODBC Driver Manager, Solaris on Sun Hardware AnswerBook, PC file viewer, ShowMe, and SunFDDI. OpenGL is provided with Solaris only for the commercial Sparc version (Xi Graphics "Summit" software supports OpenGL 1.2.1 for Solaris x86; XFree86 has OpenGL but doesn't support it for Solaris).

[Thanks to Mike Mann and Alan Coopersmith]

(4.11) How do you create a Device Configuration Assistant (DCA) Diskette in DOS/Windows?

The DCA diskette is used for booting, in lieu of booting from CDROM or hard disk. The DCA diskette comes with the Solaris media, but you need to "roll your own" if you downloaded Solaris or if your DCA diskette becomes corrupted. To create the diskette, follow these steps:

  1. Download DOS program dd.exe, which is used to write the DCA image, from or (Example: dd S8_1001.3 a:) You can also use the DOS rawrite.exe utility provided with Linux distributions (usually under the boot diskette directory).
  2. Download the DCA diskette image for the Solaris x86 version that you want to install (for example, S8_0101.3) from A DCA boot floppy image is also on the "Software 2 of 2" CD, in the Solaris_9/Tools subdirectory.
  3. Run dd.exe to copy the image to the floppy diskette: dd.exe <filename> a:

You have now created a (bootable) Solaris DCA diskette.

[Thanks to Sean G.W. Graham]

(4.12) How can I get Solaris to see the third ATAPI controller?

Solaris 7 can be configured to support any ATAPI compliant controller which doesn't conflict with any existing device. The key factor is that its interfaces must be complaint with the ATAPI specs. In other words, you need two ranges of non-conflicting I/O ports, and an free IRQ, and hardware that's compliant with at least the ATA-2 and SFF-8020 specs. If it's a legacy-ISA ATA controller than you'll have to manually configure everything via the Device Configuration Assistant (DCA) menus because the DCA only automatically probes for ISA-IDE devices at the two standard address ranges. If you're adding a compliant PnP-ISA ATAPI controller or a compliant PCI-IDE controller then the DCA should automatically configure everything for you because all PnP-ISA-IDE and PCI-IDE devices are self-identifying devices.

The problem you're likely to encounter is there aren't many compliant add-in ATAPI controllers available. Most of them want to do revolting things like share ISA IRQs 14 or 15, or advertise the wrong range of I/O ports or don't specify the right PCI-IDE class bytes. In particular most SoundBlaster-IDE cards have a broken Alternate-Status register. The Solaris 7 ata driver assumes that the Alternate-Status register works as specified in the ATA-2 spec. Unlike the other non-compliant hardware problems, there's a trivial workaround for the SB-IDE hardware bug (i.e., don't use the Alt-Status register) but I've no idea whether anyone at Sun has spent the 15 minutes it would take to apply the fix to Solaris 8.

If you've got an add-in ATAPI controller card that doesn't come with specs that clearly spell out that it won't conflict with your existing controllers, or if it requires you to disable any built-in controllers, then that's almost certainly one of those bogus controllers that isn't fully compliant with the ATAPI specs. I haven't yet found a legacy-ISA ATAPI card that works correctly (they all want seem to want to share IRQ 14 or 15), but people persist in telling me they exist. If you do find a compliant one then the Solaris 7 ata driver will work with it just fine.

[Save yourself some trouble and use a SCSI controller and disks. - ed.]

[Thanks to Bruce Adler]

(4.13) Are Ultra DMA (UDMA) drives supported?

Solaris 7 or later recognizes UDMA drives in native mode. They are not supported in Solaris 2.6 or older, although they are recognized in its compatibility mode as regular ATAPI drives.

During installation, you may want to disable UDMA mode if your install hangs during recognition of hard drives (which occurs shortly after the Solaris copyright line is displayed).

For Solaris 8, DMA is disabled for ATAPI devices, as it caused installs to fail for several BIOSes. For Solaris 10, it is enabled, at least for me. It can be enabled with the "ata-dma-enabled" property from the GRUB menu (-B ata-dma-enabled=1) See the question on "How can I improve disk and graphic performance?" for details.

[Thanks to Christopher Arnold and Steve]

(4.14) Are Universal Serial Bus (USB) devices supported?

Solaris 8 supports USB, including Plug and Play. However, not all devices attached to USB are supported. The HCL lists supported devices (see the answer about the HCL, above).

Also, there are three different types of USB host controllers, and Solaris x86 (8 or 9) supports only one:

Run the command "prtconf -pv | grep 000c03". If there's no output from that command, your machine dosn't have USB :-(. If there's a "class-code: 000c0300" line, you have UHCI USB and it should be possible to use USB devices under Solaris x86. If there's a "class-code: 000c0310" line you have an OHCI USB controller, which is not supported with Solaris x86. And "class-code: 000c0320" is an EHCI (USB 2.0) controller.

So, if your USB controller is UHCI, your USB keyboard/mouse should be detected and should be usable as USB devices under Solaris x/9 x86. If your system has an OHCI USB controller, you cannot use USB under Solaris x86. Your only option is to enable "USB legacy support" for the keyboard and mouse in the system's BIOS, and the BIOS will emulate a PS/2 keyboard and PS/2 mouse from the USB peripherals. In this case, in kdmconfig, you have to tell the system to use the (emulated) PS/2 mouse; the USB mouse pointer entry won't work!

USB memory drives will appear as /dev/rdsk/c1t?d? If formatted as DOS, mount as type pcfs. For example, mount -F pcfs /dev/dsk/clt0d0 /mnt

Drivers for some USB devices are available from Philip Brown at For information on Solaris USB support, see Sun's USB FAQ and whitepaper at The FAQ has up-to-date information on USB 2 devices.

(4.15) Is the scroll wheel on the mouse supported?

Yes, with Solaris 9 or 10. It is autodetected and enabled by default.

If you use Xorg instead of Xsun graphics drivers, make sure you enable it when running xorgconfig. Or you can edit the Mouse section in file /etc/X11/xorg.conf Change "PS/2" to "IMPS/2" and add to it:
Option "ZAxisMapping" "4 5"

XSun, XFree86/Xorg, and Xi Graphics X Windows graphics card server software all support wheel mice. For earlier releases, use for PS/2 and for USB mice.

[Thanks to Jürgen Keil, Alan Orndorff, and Alan Coopersmith]

(4.16) What's difference between Solaris x86 Server and Solaris x86 Desktop?

There is absolutely no difference, other than what you are licensed to do with it. You get exactly the same software with the two products. (This is not the case with Sparc server, where the server product contains more CDs with some additional software. If you want something like Solstice AdminSuite, you have to order it separately.

The Solaris desktop license restricts you from using the system as "any type of server" (other than print or NIS). or supporting more than two continuous users. Read your license for details. A Server Upgrade License is available.

[Thanks to Andrew Gabriel]

[Thanks to EB]

(4.18) Is Solaris x86 64-bit aware?

Yes. Solaris 10 is 64-bit processor aware. You can run 32- or 64-bit binaries on a 64-bit kernel (but drivers must be 64-bit). Supported CPUs are AMDs Opteron and Athlon 64. Use the isainfo command to display the current kernel's 32-/64-bit capabilities. To compile 64-bit binaries with GNU gcc, use "gcc -m64" (or add "-m64" to CFLAGS and CXXFLAGS). To compile with Oracle Solaris Studio (Sun Studio) use "-m64" For older versions of Oracle Solaris Studio, use "-xtarget=generic64"

Solaris will also support the new 128-bit ZFS filesystem, which supports 16 million million times the storage of a 64-bit filesystem. Solaris 10 x86 supports EFI labels as well as the new UFS format that allows filesystems over 1 terrabyte. 128-bit ZFS files are still limited to 64-bit access until 128-bit processors and Solaris support are available.

However, if Solaris is installed on a 32-bit processor, these filesystem features are not available, due to the underlying Intel chip architecture. However, Solaris x86 on 32-bit processors still support large files up to 1 Terrabyte for 32-bit processors. In practice, the limit is 860 Gigabytes. For example:

$ ls -l /work/BackUp
total 13239792
-rw-r--r--   1 root     other    6775454208 Dec 11 00:47 csdb_nfs1.tar

[Thanks to Niklas Zackrisson, Alexander Zinkov, and Merle Ilgenfritz]

(4.19) What's the difference between partitions and slices?

In the UNIX world, partitions and slices are often used interchangeably. In the x86 world, partitions usually refer to fdisk partitions. To avoid confusion, it's preferable to refer to "partitions" as "fdisk partitions." (e.g., you can only have four primary fdisk partitions in a x86 fdisk table.) In the Solaris x86 world, the term "slice" should be used to refer to slices which are within the Solaris fdisk partition (e.g., "root" (/) and "swap" slices.)

[Thanks to John Groenveld]

(4.20) I already used the 4 primary fdisk partition table entries. Can I create a partition for Solaris within my extended partition?

You can't because Solaris requires a *primary* partition table entry in the fdisk table and doesn't support placing the Solaris Partition within a DOS Extended Partition.

[Thanks to Bruce Adler]

(4.21) What are the IRQ assignments?

IRQs, Interrupt Request Registers, numbered 0 to 15, handle interrupts from various internal and external hardware devices. Multiple ISA devices can't share a IRQ, but multiple PCI devices can share.

Here's a chart:

*IRQs 0, 1, 2, 8, and 13 are not on the bus connectors and are not available to I/O adapter cards.

[Thanks to Jorgen Moquist and other sources]

(4.22) Are Laptops supported for Solaris x86?

No, not anymore. There's just too many and they tend to have strange hardware. That being said, many happen to work. Also, old drivers or desktop drivers sometimes function for laptop hardware. For a list of known laptops compatible with Solaris x86, see Philip Brown's "Solaris x86 Laptop List" at

Experimental wireless networking support is available with drivers from

If you want more than VGA resolution, you can try installing XFree86. See section 8 of the faq on X Windows for more information.

Evan Rudderow points out that the simplest way to run Solaris x86 on laptops is to run it under VMWare.

If it's only Solaris you need on a laptop, and you don't mind coughing up $$$$, you can get SPARC laptops from and

(4.23) Is Serial ATA (SATA) supported for Solaris x86?

Yes. The following chipsets are supported: ICH (ICH5, ICH5R, ICH6, ICH6R), SiliconImage (Sil 3112, 3114, 3512), and nVIDIA (nForce4). Personally, I have a MCS Athlon 64 motherboard with a nForce4 chipset and it works fine. RAID support, if any, is handled by a Solaris driver (such as Solaris Volume Manager).


(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:


(6.1) How do I add additional drives?

First, you must have Solaris scan for the new drive. Become root and type: "touch /reconfigure; /usr/sbin/shutdown -i6" This rebuilds the /devices/ and /dev/ directories.

ATAPI and SCSI the drives are already low-level formatted. If you wish to format a SCSI you can use /usr/sbin/format that comes with Solaris. A second drive install would use format.

To create and use a filesystem:

[Thanks to Bob Palowoda's FAQ and Sonny Leman]

(6.2) + How do I add or configure users, printers, serial ports, software, etc.?

For Solaris 11 use the System-->Preferences and System-->Administration menu options in GNOME.

For Solaris 10 use Solaris Management Console (/usr/sadm/lib/smc/bin/smc) from X Windows. An alternative are several command line programs in /usr/sbin such as lpadmin, stty, and useradd.

(6.3) How do I suppress the banner page on my printer?

To disable the banner pages permanently perform one of the following steps:

[Thanks to Norm Jacobs]

(6.4) How do I set up an HP-compatible printer to print PostScript files?

Solaris 8 has this ability with Print Manager, /usr/sadm/admin/bin/printmgr, Note that higher-end HP printers (e.g., LaserJet IV) support PostScript directly. Also, Michael Riley reminds us that EPP and ECP printer modes are unsupported.

Before you do any of this, try printing a plain text file (such as /etc/motd) to the printer.

John Groenveld provides the following instructions for Solaris 8. It assumes you have a working Ghostscript with a driver for your printer and that it's attached to /dev/lp1 (/dev/lp0 on some systems). With Solaris 8, USB printers are assigned logical device names /dev/printers/[0..N] The printer queue in the example below is called "lj6l_ps"

# Test your driver:
# (gs may be in /usr/csw/bin/gs, /usr/local/bin, or /opt/gnu/bin, depending
# on who built the Solaris package)
/usr/csw/bin/gs -q -dSAFER -dBATCH -dNOPAUSE -sDEVICE=laserjet \
        -sOutputFile=/dev/lp1 /opt/csw/share/ghostscript/examples/

# Create the printer filter definition
# (the "Command:" line is 1 line--it may be broken up below):
cat > /etc/lp/fd/laserjet.fd <<eof
Input types: postscript
Output types: laserjet
Printer types: any
Printers: any
Filter type: fast
Command: /opt/csw/bin/gs -q -dSAFER -dBATCH -dNOPAUSE -sDEVICE=laserjet
-sOutputFile=- -

# Test:
/usr/ucb/lpr -Plj6l_ps -h /opt/csw/share/ghostscript/examples/

# Add the filter name to the filter table:
chown lp:lp /etc/lp/fd/laserjet.fd
chmod 664 /etc/lp/fd/laserjet.fd
lpfilter -f laserjet -F /etc/lp/fd/laserjet.fd

# Configure the printer to use the LaserJet filter:
lpadmin -p lj6l_ps -I laserjet

# Stop the data stream to the printer from being modified:
lpadmin -p lj6l_ps -o stty="-opost"

# Enable the printer to accept jobs:
accept lj6l_ps
enable lj6l_ps

# Retry (if needed):
# If something goes wrong (such as using an incorrect command path
# in laserjet.fd), try deleting the printer destination and starting over
# after making your corrections:
lpadmin -x lj6l_ps
lpadmin -p lj6l_ps -v /dev/lp1 -o nobanner

After it's working you may want to set the default printer with the LPDEST and PRINTER environment variables in your startup script (~/.login or ~/.profile) and with "lpadmin -d"

Update: Norm Jacobs adds: Solaris 9u6 and later contain a number of open source packages including Foomatic, Ghostscript, gimp-print, hpijs, and some changes to the printmgr to make this considerably easier. If you turn on "command logging", in the tool from the file menu, you can see the lpadmin command that is used.

Another solution is Common UNIX Printing System (CUPS), which implements the Internet Printing Protocol (IPP), RFC 1179. IPP standardizes printing of multiple document formats. CUPS provides System V and BSD (lp & lpr) interfaces and supports PostScript with a modified version of Ghostscript. For Solaris x86 binaries and documentation, see See also the question below in this section on easy-to-use printing solutions. For configuring and enabling CUPS with Solaris 10, see my blog article at

[Thanks for additional comments from Mark Francis Villa]

(6.5) How can I improve disk and graphic performance?

Disk Performance (iozone)

A typical iozone test with 10 to 20 MB sequential file will give about 2 MB/sec. read/write on a 50 MHz ESIA system on a Maxtor 540SL (8.5 ms) drive with an Adaptec 2740 controller. You'll get a little better performance from a 90 MHz Pentium system. A fully thrashed system will see writes down to about 1 MB/sec. I noticed that the NCR 810/825, etc., seem a little more peaky in the performance specially on the PCI bus.

If you're using a fast wide SCSI controller such as the Adaptec 2940, use a wide SCSI drive for the system drive. These drives usually have double the throughput of the normal 8-bit drives, according to the iozone benchmark results, and they make the tmpfs fly.

Note: If you're using high speed spindle drivers for your boot driver, like 5400 and 7200 RPM drives, you may want to use "set maxpgio=60" for the 5400 RPM drive or "set maxpgio=80" for the 7200 RPM drives in your /etc/system file. This causes the schedpaging to be more efficient. Enable by typing "touch /reconfigure; /usr/sbin/shutdown -i6"

[Andrew Gabriel adds for ATAPI: Read about drive0_block_factor and drive1_block_factor in /platform/i86pc/kernel/drv/ata.conf (man -s 7D ata). Even my oldest ATAPI drives support drive0_block_factor=0x10 without any trouble.]

Starting with Solaris 8, DMA is disabled for ATAPI devices, as it caused installs to fail for several BIOSes. For Solaris 10, it is enabled, at least for me. It can be enabled with the "ata-dma-enabled" property from the GRUB menu (-B ata-dma-enabled=1) After installation, you can also change this line in file /boot/solaris/bootenv.rc:
setprop ata-dma-enabled '1'
If you do this and you have a buggy motherboard chipset, your system won't boot. This happened to me. You can recover by booting in recovery mode and mounting the root filesystem (see the answer in this FAQ about recovering from forgotten root passwords). Buggy chipsets include those with the VIA chipset and ASUS PA5 motherboards. For more details, see the Solaris 8 Intel Release Notes.

Graphic Performance (xstone) Xstones is a little more of a subjective measurement of graphics performance. The comp.unix.x.i386 newsgroup keeps up on the latest xstone performance on graphics cards for PC's.

[From Bob Palowoda's Solaris 2.4 x86 FAQ]

(6.7) How do I get Solaris to recognize generic network cards with well-known chipsets?

There are many new ethernet cards available at major retailers for under $20 using well-supported chipsets. Unfortunately, the cards on the Solaris HCL have been out of production for quite some time -- particularly the Intel cards. I was amazed how difficult it is to find hardware on the Solaris HCL.

First, save yourself a lot of trouble and see if there's a driver for your card somewhere. See if the card is listed on the Hardware Compatibility List (HCL) for the latest Solaris Maintenance Update (MU). The HCL is at I've had good luck with Intel NICs. Check for new and third-party drivers at http://www.Sun.COM/io_technologies/. Also check to see if there's a patch supporting your card.

A list of third-party drivers (mostly from hardware vendors) for Solaris x86 is at

If you have a Linksys LNE100TX or other NIC card, it may be supported by one of Garrett D'Amore's Ethernet drivers. See

More free Solaris NIC drivers are provided by Masayuki Murayama at,

If there's no driver found above, here's what to do:

  1. Install the card and watch the computer boot. Look for the list of devices in the BIOS summary screen. Write down the two 4-digit numbers. For the Intel card it was 8086 1030, the PCI/PnP vendor and device ID for the InBusiness card.
  2. Boot into Solaris. Open the /boot/solaris/devicedb/master file and look for the vendor ID you wrote down. In this example, the vendor ID is 8086 for Intel. Look through the file for devices that closely fit the description of your device under the vendor ID. One of them for this card happens to be iprb for the Intel 82559 chipset which is listed as:
    pci8086,1029 pc8086,1029 net pci iprb.bef "Intel Pro 100/B Fast Ethernet"
  3. If you're confident that you have a reasonable match, add a new line to this file that uses the vendor ID and device that you wrote down: pci8086,1030 pc8086,1030 net pci iprb.bef "Intel 82559 You Bonehead"
  4. Open the /etc/driver_aliases file and add a line for the card:
    iprb "pci8086,1030"
  5. Type "devlinks". Type "touch /reconfigure". Restart. Hit ESC in the the Device Configuration Assistant phase of the boot process and ask it to scan for new devices. It should find your device and display the name you typed in in step (3) above. This step is crucial--the DCA step in the boot process is where some important magic happens.
  6. Once the system is finished booting, note the magic appearance of /dev/iprb (or whatever your device is called) and experience joy. Type "ifconfig iprb0 plumb" to wake it up. Edit a file called /etc/hostname.iprb0 and put your hostname into it. (if you use IPv6, also add /etc/hostname6.iprb0). Type "touch /reconfigure" just for good measure and restart a final time. If you are using Solaris 11, /etc/hostname.* files are ignored (use netcfg(1M) and netadm(1M instead).

As another example, these entries (in /etc/driver_aliases and /boot/solaris/devicedb/master) support both the 905C and 3C980 card, using the elxl driver:

elxl "pci10b7,9200" elxl "pci10b7,9800"
pci10b7,9200 pci10b7,9200 net pci elxl.bef "3Com 3C905C-TX-M El XL 10/100"
pci10b7,9800 pci10b7,9800 net pci elxl.bef "3Com 3C980-TX El Server 10/100"

Finally, here's a partial list of the sub-$20 cards and their chipsets, but I am still looking for the proper driver for the super-cheap 100baseT chipsets from Realtek and Macronix as used by some Dlink, Hawking, Netgear, and Linksys cards.

Another good set of instructions, particularly for newer generations of supported NICs, is at which is based on Keith Parkansky's

[Thanks to Casper Dik, Bruce Adler, and Kriston]

(6.8) How do I change the IP address or hostname or both on Solaris/x86?

See the instructions in "man sys-unconfig" Basically, sys-unconfig unconfigures the machine to make it ready to be configured again on reboot. It's a lot easier and less error prone than the usual dozen or so steps required to purge the old IP address.

For the thrill-seekers among us, you can also do it "by-hand" by editing these files (possibly more?) with your fav. editor:

/etc/nodename          Solaris 10: Update if the hostname changed. Use command
                       "hostname" to set hostname until the next reboot.
                       Solaris 11: To set:
                       svccfg -s identity:node setprop config/nodename="newname"
                       svcadm restart identity:node
/etc/defaultdomain     Solaris 10: Set the default NIS domain name, if any
                       Solaris 11: Use netcfg.
/etc/defaultrouter     Solaris 10: Set the default router's IP address if different
                       For Solaris 11 use netcfg (example below) or
                       "route -p add default"
                       (change to your default router IP address)
/etc/hostname.le0      (change le0) Update if the hostname changed.
                       For Solaris 11 use netcfg or ipadm (examples below).
/etc/hostname6.le0     (change le0) Ditto, if you use IPv6.
                       For Solaris 11 use netcfg or ipadm (examples below).
/etc/dhcp.le0          (change le0) Touch if using DHCP or remove if not using
                       For Solaris 11 use netcfg or ipadm (examples below).
/etc/hostname6.ip.tun0 Update if you use a IPv4/IPv6 tunnel (e.g., 6bone)
                       For Solaris 11 use netcfg or ipadm (examples below).
/etc/nsswitch.conf     Update if your name resolution method/order changed.
                       Copy /etc/nsswitch.dns to /etc/nsswitch.conf if you
                       use DNS instead of (rarely used) NIS.
                       For Solaris 11, make this persistent by typing:
                       nscfg import -f name-service/switch
                       svcadm refresh name-service/switch
/etc/resolv.conf       Update if your name servers/domain changed (DNS only).
                       For Solaris 11, make this persistent by typing:
                       nscfg import -f dns/client
                       svcadm refresh dns/client
/etc/inet/hosts        Make sure your IP address is updated or added here.
                       List your FQDN is first, before the short hostname.
                       E.g., " foo"
/etc/inet/netmasks     Set your network number & netmask, if it changed.
/etc/inet/networks     Set your network name, if it changed.

Obsolete Files
/etc/net/ticlts/hosts, /etc/net/ticots/hosts, /etc/net/ticotsord/hosts
                       Solaris 10: For streams-level loopback interface.
                       For Solaris 11, /etc/net/tic* files are no longer used.
/etc/inet/ipnodes      Solaris 8 & 9: IPv6 version of hosts file
                       For Solaris 10+ use /etc/inet/hosts

By default, DHCP is used to get the IP address and other networking information. Here's how to set a static IP address, if desired, using netcfg(1M) or ipcfg(1M) in Solaris 11.

# netcfg
netcfg> create -t automatic ncp myncp
netcfg:ncp:myncp> list
	phys	net0
	ip	net0
netcfg:ncp:myncp> select ncu ip net0
netcfg:ncp:myncp:ncu:net0> list
	type            	interface
	class           	ip
	parent          	"myncp"
	enabled         	true
	ip-version      	ipv4,ipv6
	ipv4-addrsrc    	dhcp
	ipv6-addrsrc    	dhcp,autoconf
netcfg:ncp:myncp:ncu:net0> set ipv4-addrsrc=static
netcfg:ncp:myncp:ncu:net0> set ipv4-addr=
netcfg:ncp:myncp:ncu:net0> set ipv4-default-route=
netcfg:ncp:myncp:ncu:net0> end
Committed changes
netcfg:ncp:myncp> end
netcfg> end
# netadm enable myncp
Enable ncp 'myncp'

Here's another way to set a static IP address "Automatic" configuration

# netadm enable -p ncp defaultfixed
# ipadm show-if
# ipadm create-ip net0
# ipadm create-addr -T static -a local= net0/v4static1

(6.9) How do I configure another serial port, /dev/ttyb-ttyd (COM2-4)?

Solaris 2.6 and above configures the second serial port automatically. If you just added a serial port type the following:
touch /reconfigure; /usr/sbin/shutdown -i6

If the serial port isn't present after rebooting, follow these instructions:

For Solaris 10+, use sacadm. For Solaris 7 - 9, use admintool and select "Browse-->Serial Ports."

If the steps above don't work, perform the following as root to add the second serial port. For other serial ports and internal modems follow the same steps but change the appropriate line in the /kernel/drv/asy.conf file.

[Modified from Bruce Riddle's Solarisx86 2.5/Dialup PPP Configs FAQ; updates from Michael Wang]

(6.10) How do I disable Solaris/x86 from probing the UPS on COM2?

With the following command, ran as root:

# eeprom com2-noprobe=true

This (undocumented) option to the eeprom command disables boot-up time probing of COM2 (apparently done to detect modems). The eeprom command alters the Solaris boot sector. If the UPS is connected to a serial port during boot-up time, the UPS may go into self-test or shutdown or recalibrate. An alternate solution is to disconnect the serial cable during booting. With the obvious change, this also works for COM1. See also BugID 4038351.

[Thanks to Andy I. McMullin and John D. Groenveld]

(6.11) * How to I boot into 32-bit mode on AMD64 or Intel 64?

Solaris 11 is only available as a 64-bit kernel (although 32-bit binaries and libraries are still supported). For Solaris 10, it normally boots into 64-bit mode on AMD64. You may want 32-bit for, say, a device driver that's 32-bit only. To boot into 32-bit mode, copy the Solaris entry in /boot/grub/menu.lst and add "kernel/unix" as the first argument on the multiboot line. For example:

title Solaris
	root (hd0,2,d)
	kernel /platform/i86pc/multiboot
        module /platform/i86pc/boot_archive

title Solaris 32-bit
	root (hd0,2,d)
	kernel /platform/i86pc/multiboot kernel/unix
        module /platform/i86pc/boot_archive

[Thanks to Casper Dik]

(6.12) How to I set the time zone?

If you don't know your timezone, look in /usr/share/lib/zoneinfo for subdirectories, which are supported timezone strings. The default value is "localtime." In Solaris 11, use (1 line):
svccfg -s system/environment:init setprop environment/TZ="US/Pacific"
Verify the value with
svccfg -s system/environment:init listprop environment/TZ

In Solaris 10 and earlier, edit /etc/default/init (linked to from /etc/TIMEZONE). For example, "TZ=US/Pacific" (without the quotes).

For Solaris x86 (any version), if /etc/rtc_config exists, update the timezone there with the rtc(1M) command. For example,
rtc -z US/pacific
Don't run the rtc command if rtc_config doesn't exist. It's only needed for dual-booted systems that have MS Windows, which set the hardware clock to local time instead of UTC/GMT time.

On a per-user basis the time zone can be set in GNOME under
System-->Administration-->Time & Date.

(6.13) How do I configure Dynamic IP Addresses (DHCP)?

For Solaris 11, DHCP is used automatically. To change that, use netcfg(1M) and netadm(1M). For Solaris 10 and earlier follow these instructions.

Create empty files /etc/hostname.interface and /etc/dhcp.interface (instead of containing the IP address or hostname) where interface where interface is your Ethernet interface (e.g., le0). for example, as root: > /etc/hostname.le0 and > /etc/dhcp.le0).

If you are using PPP, do not specify an IP address in your pppd options file and use ppp0 as the interface.

In addition to the IP address, if you want the DHCP server to supply the hostname (normally not needed, as it should be in /etc/nodename), follow the steps in "DHCP Client Hostnames" in the System Administration Guide mentioned below.

For more information, see "DHCP" in the System Administration Guide "IP Services" chapter at http://docs.Sun.COM/ and

[Thanks to Bruce Riddle, Wyatt Wong, and Ed Ravin]

(6.14) How do I configure my SoundBlaster or other sound card?

If you have a SoundBlaster PCI card, download Jürgen Keil's audio drivers at It includes drivers for Soundblaster, and Intel ICH and VIA AC97 integrated chipsets. I've found it easy to use—just install the packages and reboot. Philip Brown also has a and older version of Soundblaster driver, which he worked on with Jürgen, which supports fewer devices. It's at

A commercial alternative to the above is to use 4Front Technologies' Open Sound System (OSS). It's available for a free trial for about 10 days. After that, it's $30, but well-worth the savings in time. For cards newer than SoundBlaster 16/32/Pro, it's the only choice. To use, download the tar.Z file from, extract, and run the install menu ./oss-install and let it auto-detect the sound card. Reboot (or at least sync), then run "soundon" to enable the driver manually (see file oss/Readme for how to enable automatically). OSS supports the widest variety of sound cards on Solaris. Don't use both Jürgen's driver and OSS at the same time--remove one and reboot before you decide to install the other.

The most difficult procedure is to use the Sun-provided sbpro driver. It works only for old ISA SoundBlaster cards. I recommend not doing this. Instead, buy a sound card supported by Jürgen's, Philip's, or OSS's drivers, instead of wasting your time.

To configure the old Sun sbpro driver become root and type: "touch /reconfigure; /usr/sbin/shutdown -i6". If this works, you should see two links under /dev/sound and be able to play .au files with audiotool

  1. Run "prtconf -pv" to print the current system configuration:

            Node 0xf5a33500
                compatible: 'pnpCTL,00E4,0' + 'sbpro'
                dma-channels:  00000001.00000005
                interrupts:  00000005
                model:  'Audio'
                name:  'pnpCTL,0045'
                pnp-csn:  00000001
                reg:  8e8c00e4.19f815e8.00000000.00000001.00000220.00000010
                unit-address:  'pnpCTL,00E4,19f815e8'

    The device ID I want is CTL0045. This comes from the name line "pnpCTL,0045". There were a couple of other 'pnpXXX,DDDD' devices. This was the only one with the model "Audio".

  2. According to old Sun InfoDoc 15830, I used "CTL,0045" from above and updated /platform/i86pc/boot/solaris/devicedb/master as follows (no comma):

    < CSC0000|PNPB002|PNPB003|CTL0031|ESS1681 sbpro oth all sbpro.bef
     "Sound Blaster"
    - ---
    > CTL0045|CSC0000|PNPB002|PNPB003|CTL0031|ESS1681 sbpro oth all sbpro.bef
     "Sound Blaster"
    This is only an example. For Solaris 10, the CTL0045 entry is now present.

  3. Rebooted and rebuilt my devices:
    # touch /reconfigure; /usr/sbin/shutdown -i6

  4. I also ran the Device Configuration Assistant (DCA) -- press Escape as soon as the machine boots, it will prompt you -- just to verify that the Sound Blaster showed up in the device list. It did as "Sound Blaster." Since I ran the DCA boot will get the -r arg anyways.

  5. When I boot /dev/audio was present. Yeah! I am currently listening to the Sunday Blues on real audio.

  6. For more information, type "man sbpro."

[Thanks to Park Byoung-Gi, Steve Krapp, Chris, Dave, Norma, Jürgen Keil, & Philip Brown]

(6.15) How do I enable the audio output from my CDROM to my SBPRO card?

Start audiocontrol then select "Record." Ha ha, "Record" really means "Sound Source ;-)." In the audiocontrol record window, select "Internal CD" (other choices are Microphone or Line in).

You must have audiocontrol running before starting your favorite CD player application. You can use GNOME, CDE, or open source players, such as xmcd. Robert Muir reports you can use this from the command line (non-X):
audiorecord -p internal-cd /dev/null &

[Thanks to Eugene Bobin and Robert Muir]

(6.16) Can I use Solaris/x86 to setup a "headless" server?

The answer is yes, it can be done, but it's BIOS dependent, since many BIOS chips won't boot up the system without the keyboard and video card. The console can be configured to go to serial ports as described below. Removal of video card is also BIOS dependent. Setup steps:

1. Set the serial line's Carrier Detect (CD) to HIGH and (for 2.6 only) set the serial line's Data Set Ready (DSR) to HIGH. If you don't--it won't boot. This can be done with a NULL modem or with the following 25-pin or 9-pin pinouts:

     DTE A         DTE B
     25 (9)        25 (9)
     ------        ------
FG    1 (-) ------  1 (-) FG
TD*   2 (3) ------  3 (2) RD
RD    3 (2) ------  2 (3) TD*
CTS   5 (8) -+---- 20 (4) DTR*
DSR   6 (6) -|  +-  5 (8) CTS
CD    8 (1) -+  |-  6 (6) DSR
DTR* 20 (4) ----+-  8 (1) CD
SG    7 (5) ------  7 (5) SG
RTS*  4 (7)  (nc)   4 (7) RTS*
RI   22 (9)  (nc)  22 (9) RI
* DTE (terminal/computer) driven
(nc) = no connection

If the NULL modem is "incomplete", the boot process hangs shortly after starting the asy driver (after the message "asy0 is /isa/asy@1,3f8" or similar asy1/2f8 message). For details, see

2. Set your the terminal to (9600 bps,8 bits, No parity, 1 stop bit).

3. Use the eeprom command to specify the console (ttya, ttyb): eeprom input-device=ttya output-device=ttya (just like SPARC? ;-)
Update: Andrew Schwabecher reports that using "ttya" doesn't work. Instead, he adds these entries to /boot/solaris/bootenv.rc:

setprop output-device com1
setprop input-device com1
Update2: David Cocking reports that using "ttya" does work, except with Sun's LX50. For LX50 both ports are set to sense whichever one you attach to under "ttyb".

Steve Rikli adds the following simpler 3-pin alternative, in lieu of the above:

I've found that, while the full NULL modem pinouts work just fine, a simple 3-pin (TD/RD/SG) pinout scheme will also work in Solaris 8 by issuing eeprom commands thusly:

eeprom output-device=ttya
eeprom input-device=ttya
eeprom ttya-ignore-cd=true

The kicker is the "-ignore-cd" variable, which doesn't seem to be present by default on a Solaris x86 install, unlike Solaris for SPARC hardware. But setting it does work and it does persist across reboot/power-cycle. In the absence of "ttya-ignore-cd=true" one does indeed need a full NULL modem pinout.

PC Weasel 2000, at is a PCI board that emulates VGA cards over a serial line. This provides a serial console interface for PC-class computers transparent to the operating system. This is useful for BIOS configuration and the Solaris Device Configuration Assistant (DCA) remotely. Of course, you can't run CDE with it, but once Solaris is up, you can use a regular serial port. Herb Peyerl, one of the company founders, adds: "I've tested this card under 2.8 and it works fine. There isn't a Solaris Watchdog driver for the Weasel yet and sometimes the text attributes are a little funky, but it's certainly usable."

[Thanks to John Weekley, Scott Wedel, Kenneth Wagner, Andy Spitzer, Kai O'Yang, Michael Wang, David Page, Andrew Schwabecher, Steve Rikli, Richard Shuford, and Herb Peyerl]

(6.17) Can I get a Sun-style keyboard (Ctrl & Caps Lock reversed) for S/x86?

Yes, from PFU, now part of Fujitsu, sells it's "Happy Hacking Keyboard" for $69. It's Sun type 5 keyboard with only the essential 60 keys.

You can order a Sun USB keyboard and mouse that works quite well with Solaris x86. They are available from Sun Store,, with the following part numbers:

If you don't want to buy any new hardware, you can use just software to switch Control_L and Caps_Lock keys. Create file $HOME/.xmodmaprc with:

remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L
and add "xmodmap $HOME/.xmodmaprc" to your $HOME/.dtprofile file.

For the adventurous electrician, there's a web page to show how to build and program a PCB to to drive a Sun Type 5/6 keyboard from a PC. This includes a PCB mask, source code, and instructions. See

[Thanks to Don Christensen and Ian Hall-Beyer]

(6.18) Can I run multiple terminals on the console of Solaris x86 like those supported on Linux, FreeBSD, Interactive Unix, and SCO?

Yes, this feature is called Virtual Consoles and this sorely-missed feature is available again in Solaris. They used to be available in Solaris/x86 2.3. In Solaris/x86 2.4, they were no longer configured (1994), and in Solaris 8 the functionality was removed (1998). It's now back in Solaris Express build snv_124 and greater (Oct. 2009).

Virtual consoles are text-oriented 80x25 character text-oriented consoles available on Linux and other Unix-class systems. It's a handy feature for recovery when your X Window GUI console is frozen or otherwise unavailable. Here's a script to enable it (run as root):

#! /bin/ksh
svcadm enable vtdaemon
for i in 2 3 4 5 6 ; do
    svcadm enable console-login:vt$i
svccfg -s vtdaemon setprop options/secure=false
svccfg -s vtdaemon setprop options/hotkeys=true
svcadm refresh vtdaemon; svcadm restart vtdaemon

You can now switch to virtual terminals with ctl-alt-F1 to ctl-alt-F6. Use ctl-alt-F7 to switch to the X Window GUI. For best functionality, log out and log back in X Windows, if X is running. If you want an automatic X screen lock when switching to a virtual terminal (most won't), skip the line above containing "secure=false". For more information, see

(6.19) How do I upgrade my video graphics card?

First see if you have the driver installed. They are listed when you run kdmconfig. If the driver is present, configure with kdmconfig. If it's a new card, see if it's listed in the latest driver updates for your Solaris release on http://access1.Sun.COM/drivers/ If listed, install the update. kdmconfig is ran automatically at the end of the update installation. Before changing cards, choose, from kdmconfig, the 16-color 640x480 VGA setting, which is the lowest-common denominator for VGA video cards. After switching cards and rebooting (verifying the VGA setting works for the new card) choose a higher setting with kdmconfig.

See the Update Guide that comes with the update on specific installation instructions for the update. Generally, it's done as follows: (assuming the image downloaded from access1.Sun.COM is named vdu11image.Z and is in /tmp), type as root:

    # cd /tmp
    # uncompress du11vid2.Z ; cat du11vid1.bin du11vid2 | cpio -icvdum
    # zcat vdu11image.Z | cpio -icvdumB
    # ./

(6.20) How do I burn a CD or DVD with Solaris?

Use cdrecord or GNOME's Brasero to burn or produce CDs and DVDs. Brasero is GUI-based and cdrecord is command-line based. Personally, I find cdrecord more reliable and robust for just burning CDs or DVDs. Both are in Solaris. tend to be better supported than ATAPI drives. For details, see the Sun CD-ROM FAQ at and Jörg Schilling's cdrecord page at:

Here's brief instructions on setting up and using cdrecord. First create a /etc/default/cdrecord file. Here's an example:


Update the last line based on the output of cdrecord -scanbus. Make sure to set CDR_DEVICE to the CD/DVD drive and not a hard drive. For example, here's my output from -scanbus:

	2,0,0	200) 'MATSHITA' 'DVD-RAM UJ-85JS ' 'F100' Removable CD-ROM
	3,0,0	300) 'HITACHI ' 'HUS1514SBSUN146G' 'SA02' Disk

To burn, use a command line such as this:
cdrecord -v solaris-11-live-x86.iso

(6.21) Is IPv6 available for Solaris/x86?

Yes, starting in Solaris 8. It is certified IPv6 ready by the IPv6 Consortium ("AIPv6 Ready Phase-2 Core Approved"). For general IPv6 information, see If you wish to connect to the 6bone, an experimental, mostly tunneled IPv6 network, see

(6.22) Is IPsec available for Solaris/x86?

Yes, for Solaris 8. See volume 3 of the System Administrator's Guide at http://docs.Sun.COM/ for more configuration information. Solaris 8 IPSec supports AH (authentication) and ESP (encryption) headers, and "shared secrets" (manual keying), but not automatic (ISAKMP or IKE) keying. Solaris 9 supports IKE.

Adam Barclay adds these comments:

As a reminder, some countries (e.g., Russia) prohibit the use or possession of encryption software.

(6.23) Is Kerberos 5 available for Solaris/x86?

Yes, for Solaris 8. See volume 3 of the System Administrator's Guide at http://docs.Sun.COM/ for more configuration information. The configuration files reside at /etc/krb5 and /var/krb5 and the binary files at /usr/krb5 and /usr/lib/krb5. Make sure you answer "y" to whether you want Kerberos during your Solaris install. Then, install SEAM (Sun Enterprise Authentication Mechanism, what Solaris calls Kerberos) from the Solaris 8 Admin Pack, freely downloadable from http://www.Sun.COM/software/solaris/easyaccess/sol8.html

(6.24) Does Solaris x86 support multiple processors?

Yes. Solaris x86 automatically detects multiple processors. The limit is at least 8 according to the HCL and by observation. The theoretical kernel limit (_ncp) is 21. Due to bus conflicts, there's diminishing returns as you increase the number of procs. psrinfo(1M) will print the status of your processors, mpstat(1M) will report the CPU usages, and psradm(1M) can be used to take processors offline.

Some people have had problems with Solaris "seeing" the extra processors, with at least one type of motherboard (HP/Compaq?). They had success with going into the BIOS utility and setting OS type to "other" for "Solaris". With most motherboards no special BIOS settings are required. Likewise, Solaris x86 also supports Intel's Hyperthreading (multiple logical processors). This is because most or all of the additional support required is in the motherboard and not Solaris. However, psrinfo -p will still display 1 processor (as it's not true multi-threading).

[Thanks to John Groenveld, Jürgen Keil, Bob Palowoda, Bruce Alder, and Michael VanLoon]

(6.25) How do I uncompress a .gz file?

With "gzip -d" (or gunzip, which is gzip linked to gzip). Solaris 8 has gzip. Solaris 7 or earlier does not come with gzip (it doesn't have zip either--only unzip). Gzip is available as a pre-compiled package from (use "pkgadd -d packageFileName" to install) and also as a tar file (to extract, type "uncompress gzip*Z; tar xvf gzip*.tar") at

(6.26) Why doesn't /usr/bin/cc work?

Because it's just a front-end "stub" for the unbundled C compiler, Oracle Solaris Studio (formerly Sun Studio). However, you can download Oracle Solaris Studio for free. See

You can also get the free GNU C compiler, gcc, in pkgadd format from various locations. It is bundled with Solaris 11. For Solaris 10 and earlier, it is bundled with the the "Solaris Software Companion CD" and can be downloaded from If you install gcc, I recommend that you rename or compress /usr/bin/cc and softlink (ln -s) /usr/local/bin/gcc (or /usr/sfw/bin/gcc or wherever it is) to /usr/bin/cc.

By default, Solaris comes with support tools (such as make and libraries) and header files in /usr/include. If not, add the appropriate packages. For more information, see the "Software Development" section in Casper Dik's Solaris 2 FAQ.

(6.27) How do you connect Solaris to my cable modem?

See also the next question on RoadRunner.

At least for the the East Brunswick, NJ, servers, I had the easiest time with DHCP (not the static setup):

/etc/hosts:    localhost    CCxxxxx-A  # where CCxxxxx-A is your hostname
       24.x.x.x      CCxxxxx-A    loghost   # where 24.x.x.x is your assigned IP

       hosts:        files dns


/etc/dhcp.elx0 (empty file)

/etc/hostname.elxl0 (empty file)
       NOTE: replace "elxl0" with your NIC device name
No /etc/defaultdomain, /etc/defaultrouter, or /etc/netmasks files are used. This info is handled by DHCP. Reboot and you're hooked up. Here's my (partially disguised) netstat -rn and ifconfig -a outputs:
$ netstat -rn
Routing Table:
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
24.x.x.0               24.x.x.x            U      3      2     elxl0            24.x.x.x              U      3      0     elxl0
default              24.x.x.1              UG     0      44               UH     0     236      lo0

$ ifconfig -a
lo0: flags=849<UP,LOOPBACK,RUNNING,MULTICAST> mtu 8232
        inet netmask ff000000
elxl0: flags=4843<UP,BROADCAST,RUNNING,MULTICAST,DHCP> mtu 1500
        inet 24.x.x.x netmask ffffff00 broadcast 24.x.x.255

[Thanks to Alan Lucero.]

(6.28) How do you setup Solaris to use RoadRunner's cable modem service?

RoadRunner uses General Instrument's SURFboard or other cable modem hooked up to a coax cable on one side and a straight-through Ethernet cable on the other side. The real throughput is about 6-MB/sec. on downlinks and 768KB/sec. on uplinks. The cable modem looks like a router to your computer.

RoadRunner configures home systems with Dynamic Host Configuration Protocol (DHCP), which provides the IP address, default route, and name servers. RoadRunner only supports Windows and Macs, but it works fine with Solaris (they just won't help you setup or diagnose Solaris DHCP). You need Solaris 2.6 or higher for DHCP. To set it up for Solaris, follow these steps, as root:

  1. "touch /etc/dhcp.iprb0" (replace the ".iprb0" with whatever the ethernet interface for your system might be, as shown by "ifconfig -a")
  2. "cp /dev/null /etc/hostname.iprb0". You need to make *SURE* that this file is EMPTY - otherwise, DHCP configuration won't work.
  3. Make sure that /etc/inet/hosts only has one line in it, the one containing " localhost". Any other lines will be ignored, and any additional necessary lines will be added by the DHCP client at boot time.
  4. "touch /etc/notrouter" - this creates a file to tell Solaris that your system will not be performing routing or packet-forwarding duties (if that's the case in your situation). If it already exists, good. Leave it be. 8-)
  5. "cp /dev/null /etc/defaultrouter" - since the DHCP client software will automatically put the needed entries in this file, we just need to make sure that it exists as an empty file. If it already exists, rename it and create the empty file in its place.
  6. "cp /dev/null /etc/resolv.conf" - again, the necessary entries will be added by the DHCP client. If you already have this file, rename it and create an empty file in its place.
  7. Copy /etc/nsswitch.dns to /etc/nsswitch.conf to enable your machine to resolve addresses using DNS, the Domain Name System (instead of NIS). Or edit the file /etc/nsswitch.conf, and look at the "hosts:" line. By default, it reads "files"; change it to read "hosts: files dns".
Once you've performed these steps, your machine is ready to get its networking information via DHCP. The easiest way to do this is to reboot your machine. You will see status messages during boot about the DHCP client, this is normal. Once the machine is booted type the "ifconfig -a" command. You will see output similar to this:
	$ ifconfig -a
	lo0: flags=849 mtu 8232
	inet netmask ff000000
	iprb0: flags=4843 mtu 1500
	inet netmask ffffff00 broadcast
	ether 8:0:20:1b:1:72

The entry we're concerned about is iprb0 (lo0 is the dummy loopback interface); just make sure that its configured via DHCP, and that an IP address and broadcast address was assigned. You can also check the /etc/resolv.conf and /etc/defaultrouter files to make sure they were configured by the DHCP client.

Type "nslookup" to test that /etc/nsswitch.conf and /etc/resolv.conf are setup correctly for DNS lookups. If not, they may need to be hand-edited with values provided by your ISP. These files are documented in nsswitch.conf(4) and resolv.conf(4). The resolv.conf needs to have "domain" and "nameserver" lines.

Type "netstat -rn" to see if there's a "default" destination configured in /etc/defaultrouter and type "ping" to verify routing is OK. Use "traceroute" to diagnose routing problems.

Type "hostname" to see if it says "unknown." If so, DHCP did not provide a hostname. One workaround is to edit /etc/init.d/network and replace all occurrences of "unknown" with your real hostname.

This information is adapted from Bill Bradford. Some (older) RoadRunner setups may still require a RoadRunner login program. This is explained in that link.

RoadRunner information is at and help is at The Unofficial RR FAQ is at

For generic cable modem information, see the e-zine article "xDSL and cable modems" referenced in the previous question on @Home service. The article covers instructions on enabling Solaris with a cable ISP.

(6.29) How do I force the speed and/or duplex of my network interfaces (ndd(1M) doesn't work)?

No x86 driver can be interfaced via ndd(1M). The only way to set speed/duplex is via the NIC's driver.conf(4). iprb(7D) on Solaris 8 suggests that you can specify speed/duplex for multiple instances via ForceSpeedDuplex option. For other drivers, you'll need to specify each instance per driver.conf(4). Finally, for most people, auto-negotiating works as expected. Having to hard-code values may indicate cabling or switch problems.

(6.30) Why can't I create a home directory under /home?

For Solaris, /home is not an on-disk file system, it is a file system under the control of the automounter, and only the automounter can create directories/files in it.

If you don't want the automounter to manage /home, then remove the "/home" entry from /etc/auto_master (and issue the command "automount -v" to force the file to be reread, or reboot).

However, the typical setup for Solaris is to locate user's home directories in /export/home.

/home is intended to be where all users' home directories appear regardless of which machine they are really located on--by virtue of the automounter and auto_home map. This makes your home directory always appear in the same place regardless of which machine you login to, and regardless of which server the sysadmin decides to move your home directory.

If you are not part of a network with workstations and servers, this may look strange. If you want to, as a demonstration, you can set up a standalone workstation to operate this way, as follows. (I'm assuming you still have the default setup of /home under the control of the automounter.)

Create a user with a home directory in /export/home, say, /export/home/andrew, so that the directory is correctly created with .profile, .login, etc in it.

Put the following line in /etc/auto_home:

andrew cucumber:/export/home/andrew
(substitute your user name for 'andrew' and your hostname for 'cucumber'). If there is an "+auto_home" entry in there, comment it out. Make the automounter reread the files: "automount -v".

You should now be able to "ls /home/andrew" and see the files there which are in /export/home/andrew.

If you issue the command "/usr/sbin/mount -p", you will see that /export/home/andrew has been mounted on /home/andrew (by the automounter). Normally this would be an NFS mount to a remote server, but in this case the system has spotted that is it attempting to NFS mount itself and uses the loop-back filesystem instead (lofs) which avoids the NFS overhead when the filesystem is on the same machine.

Finally, to complete the use of /home, you should change Andrew's entry in the /etc/passwd file such that the home directory is /home/andrew.

In a networked environment, you also need to add /export/home to the /etc/dfs/dfstab file so that it is available for other clients to mount. Also, the /etc/passwd file and /etc/auto_master file (and much more besides) would be obtained using naming services from a single networked copy, so you would only need to set this up once whatever the size of your network, not once per workstation.

[Thanks to Andrew Gabriel]

(6.31) Is Symantec Veritas file system available for Solaris x86?

Yes. Formerly it was available only through NCR Corporation. But now it is available directly from Symantec:

(6.32) * How to I find the battery status for a laptop under Solaris?

For Solaris 11, it is available as an applet in GNOME. Right click on the GNOME toolbar, select "Add to Panel", and click on "Battery Charge Monitor." The battery status is displayed on the taskbar and you get a pop-up window when the charge goes below 15%.

(6.33) How do I use Linux NIC drivers for Solaris x86?

Sun has released (9/2000) a free network driver porting kit to port Linux PCI-based network drivers to Solaris x86. The kit includes, as examples, ported Linux drivers for the Intel EEPro100 and the Digital "Tulip" 2104x/2114x chip (a reliable chip used by the Netgear FA-310-TX, SMC EtherPower, Kingston EtherX, D-Link DFE, and other lower-cost cards) For legal reasons (the Linux driver authors complained about use of these drivers in a commercial Product--Solaris), this kit was pulled and is no longer available.

(6.34) How do I add color to "ls" or "vi"?

For Solaris 11, use GNU "ls" in /usr/gnu/bin/ls. For Solaris 10, you need the GNU "fileutils" version of ls. Obtain the binary from or compile it yourself from source from I then use this alias: alias ls='/usr/gnu/bin/ls --color=auto' (remove the "=" for *csh shells).

Vim For vi, I use vim (or gvim for X Windows). Vim is available in Solaris 11 and is installed by default in /usr/bin/vi. The GUI version, gvim, is not installed by default, but is included in package solaris/editor/gvim in Solaris. The old, non-VIM version of vi is in /usr/sunos/bin/vi. For Solaris 10, it is also available from or directly from You may need to add "syntax on" in your $HOME/.vimrc file to enable syntax coloring.

If color output still doesn't appear, for either of these, make sure your terminal emulator supports color (e.g., dtterm, xterm, and gnome-terminal) and that your $TERM is set correctly. To verify you can display color, copy, paste, and execute this line in your shell prompt (you should see the letters "blue" highlighted in blue):
/bin/echo '\033[0m\033[01;34mblue\033[0m'

You can also get color from the tcsh builtin ls, if you use the tcsh shell (included in Solaris 8 and later), by simply doing:
alias ls ls-F ; set color=ls-F
See the tcsh man page for details.

(6.35) How do I move the disk containing Solaris from the ATAPI primary master controller to the secondary controller or slave connector (or both)?

Once Solaris is on the secondary master, you must enable booting to it. Here's three methods:

[Thanks to Michael Wang, Alexander Yu, and Laurent Blume]

(6.36) I've installed Solaris using Sun's brain-dead disk slice defaults. How do I modify my slices?

This is for Solaris 10. Solaris 11 uses ZFS. For Solaris 10, you don't--it's too late now, but you should have read the recommendations on disk partitions and sizes in section 4 of this FAQ. Solaris (unless you're running under Veritas) doesn't support modifying slices without destroying data on the entire slice. Your options are (in order of ease):

Instructions for resizing the Solaris partition and filesystem. These instructions may not be easy and may not succeed. Backup your files and verify the backup first.

[Thanks to John D. Groenveld and Paul Floyd]

(6.37) How do I mirror root with Disksuite when /boot is a separate fdisk partition?

You don't. Disksuite only supports mirroring ufs filesystems, so in order to mirror /boot, it should be part of the root (/) slice inside Sun's fdisk partition. Sun's default install will create a separate 10MB "x86 Boot" fdisk partition which is mounted as pcfs. If you already have Disksuite running the solution is as follows:

Start with all the mirrors in place except for the :boot partition and had identical layouts on both disks.

  1. Back up all my important stuff.
  2. Use metadb to delete the state db's on the Disk 1 and Disk 2 ( I have Disk 3 and Disk 4 for the time being).
  3. Get a tar backup of /boot directory and save it in / (root)
  4. metadetach and metaclear all the Submirror's from the Disksuite db's on disk 2.
  5. Recreate Disk 2 Partition table (using fdisk) to be 100% Solaris and rebuild Solaris Partition(Slice) table (using prtvtoc/fmthard)
  6. Re-mirror Disk 2 So it's almost identical to how it was at the beginning, except the x86 partition table is now one big Solaris partition. I.e., starting at the very beginning of the disk. This is very important, otherwise the bootblock installation won't work.
  7. Untar the boot directory tar file so now i've /boot ufs mirror under the / mount.
  8. Do step 4 on Disk 1.
  9. Do step 5 on Disk 1.
  10. Do step 6 on Disk 1.
  11. Run 'installboot' on Disk 1 and Disk 2 (hint: the man page is ambiguous on this, but a Sunsolve doc says it must be run on slice 2 [it's obvious if you think about it]).
  12. Add state db's using metadb on Disk 1 and Disk 2.
  13. Edit /etc/vfstab and took out the :boot entry because it's now in the / fs.
  14. Reboot with /usr/sbin/shutdown -i6
  15. Test boot in single-user mode from either drive.

[Thanks to "Nick" via John D. Groenveld]

(6.38) Is ISDN supported for Solaris x86?

ISDN is hard to setup and slow compared to cable-modem service or even DSL. However, ISDN is popular and available in Europe. Some old SPARCstations had ISDN support built in. However, there are no Sun-supplied drivers other than for these machines. There are third-party drivers for Solaris x86 from:

I'm sure other drivers exist. Before buying ISDN hardware, check if they have a driver for Solaris first.

(6.39) Is there a substitute available for PRNG /dev/random for Solaris x86?

Yes. /dev/random and /dev/random are pseudo-random number generators (PRNG). /dev/random will wait if the entropy pool of random bits is empty until more bits are available. /dev/urandom will not wait and may repeat bits. PRNGs are used to implement encryption software, such as GPG, OpenSSL, and OpenSSH. The /dev/*random pseudo-devices are available beginning with Solaris 8.

Free PRNG substitutes include egd and prngd. Enthropy Gathering Daemon (egd), a /dev/random replacement, outputs randomness to a socket at ~/.gnupg/entropy. Pseudo Random Number Generator Daemon (prngd), a /dev/urandom replacement, outputs randomness to a socket at /var/run/egd-pool. Source and binary packages for these are available at

(6.40) What are some good, easy-to-use printing solutions for Solaris?

CUPS is now standard on Solaris 11. A writeup by Carl Ehorn, below, provides a good summary of CUPS and other solutions.

I don't know if anyone has the same problems I did, but I recently went looking for a good printing solution that didn't require that I roll my own using Ghostscript and a bunch of scripts. I've done that before, and it gets old fairly quickly.

I have a HP Deskjet 1220C, which is a color wide-carriage printer with fairly high resolution capabilities. It can print at 600x600 DPI color in normal modes, and can support up to 2400x2400 DPI color with HP software. However, that software only works on Win machines, and I don't really need that high a resolution in Solaris, as I do my graphics processing on Win machines anyway.

My printer is hanging on an ethernet print-server box, which allows it to be shared by any machine on the network. This works very well, and has always worked in text modes from Solaris. But I was looking for a Postscript solution, so that I could print PDF files, Postscript files, and take advantage of some of the advanced formatting capabilities that Postscript provides. It's also nice to be able to print from a browser.

So I took a look at what's available on the web. Of course, there is Ghostscript, Gimp-print, and other similar packages, but they require a fair amount of work to make a seamless print solution (at least on Solaris). So I also looked at Vividata's P-Shop, CUPS, and ESP Print Pro. These last three are fairly low-cost solutions for a single server, and I felt that the prices they charge would be acceptable to me, considering the time and effort they would save.

Vividata I tried the Vividata package, and while it works fine, it did not support any of the higher resolution modes the printer was capable of. I should point out that Vividata is the only package I found that had Color profile management available as an option. I didn't try this, but it would be important if you were doing pre-press graphics work. Vividata had a generic driver for my printer, but had not updated it in some years, and does not seem to be interested in providing further development for the more recent printers that have been made. They seem to feel that if a generic PCL driver works, that's good enough. Vividata provides Postscript Level 2 support.

CUPS I then tried the CUPS package, which is free on the web. There is a lot of support for this system from the internet community, including driver generators from the Gimp project. The Gimp drivers have been reported to provide very high quality output compared to the standard drivers, but require that you build and install a lot of dependent packages in order to make use of these better drivers. Again, this was looking like a lot of work to get a good package working, and I wanted to avoid that.

The standard CUPS package had very disappointing output, and a generic install using the recommended driver resulted in solid black pages. Using an older, lower quality driver, I was able to obtain 300 DPI 8-bit output. While this is OK, it's not good. 8-bit color results in a very noticeable dither in both color and grayscale output, and while the 300 DPI text output was fine, I found that some PDF files did not print text very well. There were artifacts, and some aliasing in the outlines of letters. Enabling debug output from the driver resulted in some very confusing data. It appeared that the PS-2-raster conversion was done at 100 DPI, then the raster to PCL was scaled up to 300 DPI. While the support staff for CUPS says that's impossible, it sure looks that way from the debug output, and would also explain the poor text quality from some applications.

CUPS is supported by the newsgroups and some of the same folks who make ESP Print Pro. It supports Postscript Level 3 output.

ESP Print Pro Last of all, I tried the ESP Print Pro package. This is an enhanced product based on CUPS, but has considerably more printer-specific drivers available, including one for my printer. It installs just like CUPS, and also like CUPS, is a replacement for the LP print system that comes with Solaris and other UNIX variants. While I had some misgivings about replacing the LP system, both CUPS and ESP Print Pro installed easily, and with no problems.

I'm pleased to say the ESP Print Pro worked the best of all these packages for me. I was able to set the defaults to 600x600 DPI, using CMYK color modes, and got a very noticeable increase in the print quality. Text is crisp as any 600 DPI laser, and I printed a 24-bit color scan of a photograph that resulted in a very nice print. On plain paper, the colors are not true, but are perfectly acceptable for a draft print. Note that Windows also is unable to print accurate colors on plain paper. This is not a fault of the software, but a limit in the printer technology. Printing to coated photo paper would probably provide a much more accurate print, but I did not bother to test the ESP package in this mode, as I do photo work on Windows. HP-supplied drivers work very well in Windows, and has full support for the 2400 DPI mode.

With ESP Print Pro at 600 DPI, and using the CMKY color model, the supplied Postscript test page printed well, and all signs of dithering were gone, in both color and grayscale areas of the page. Note that CUPS uses the same test page, so these can be compared directly to see the differences between the packages.

I found that the native Imagetool program supplied with Solaris crashed when trying to print my 24-bit TIFF test image, but when I loaded the image into StarOffice's drawing program, it printed perfectly, scaled exactly as it should have been. StarOffice sees the new printing system with no problems, and will print to the default printer without any required setup. While I have not done much testing with StarOffice, I'd be surprised if it had trouble, since the TIFF image printed correctly. As the TIFF image was a 70MB file, this certainly is one of the more stressful ways to test, and I encountered no problems at all.

Both CUPS and ESP Print Pro provide printer and class management using graphic interfaces. CUPS uses Netscape, or any GUI browser, and all administration tasks can be done from the browser, except for editing the daemon config files. ESP uses a supplied program that presents a GUI interface in a compact, simple to understand way, and is also easy to use. Like CUPS (which it is based on), it does require manual editing of the daemon config files. Any text editor will work fine for either package.

Both CUPS and ESP Print Pro provide replacements for 'lpstat' and associated programs, which would very much like the old ones, but tie into the new driver system. Vividata's P-Shop uses the standard lp system, and does not replace the existing native programs. Vividata is the only package that I found that supports printing through SCSI interfaces, so if you have a SCSI printer, you should certainly look at their product first. They also support SCSI scanners, which neither CUPS or ESP Print Pro provide.

Vividata, CUPS, and ESP Print Pro all provide "try & buy" downloads from the web, so you can check out any package you are interested in for a trial period at no cost. Vividata allowed me to download and install their package twice, which was nice of them. They also provide students will the package for free, but don't provide support on the free version. CUPS is also free for download, and support has been handed off to the community through a number of newsgroups. ESP provides support for a fee, which can get expensive in a corporate environment, but is probably in line with any other commercial package that provides similar features.

Each of these packages has it's strong points, but for me the ESP package seems to be the best match with my needs. Your mileage may vary, based on your needs, the interface your printer uses, and the drivers available for your specific printer.

I hope this information will save you time and trouble, and if you have not already installed some kind of printing solution, will encourage you to take advantage of these products. There seems to be something for every budget, and the free packages available, while not perfect, will at least get your printer functioning under Solaris.

(6.41) What is the Solaris Data Encryption Kit?

This is no longer needed. Solaris 11 and all but the earliest Solaris 10 updates come with strong encryption by default (Solaris 10 8/07 or later). It contains kernel modules to support more flavors of encryption for IPsec and Kerberos. Currently, this is AES (192 and 256 bit keys), Blowfish (128 to 448 bit), and ARCFOUR (2048 bit) for IPSec/IKE and GSS-API for Kerberos. Previously, Solaris 10 FCS and earlier came with 128 bit encryption. For early versions of Solaris 10, you could download the strong encryption kit from

(6.42) How do you mount a Solaris ISO image (with UFS filesystems) in Solaris?

It's much easier to just burn the ISO image on a CDROM burner. But if you don't want to go through that trouble or don't have a burner, try this:

To access the first filesystem on the ISO image, you can just mount the ISO image file (specify the ISO filename instead of a device in the mount command). For subsequent filesystems on the ISO image, use the lofiadm(1M) command. This is explained in Philip Brown's note at:   Note that you can only mount SPARC UFS images on SPARC hardware, and Intel UFS images on Intel hardware UFS filesystems, unfortunately, are not architecture (byte sex) independent :-(. To mount DVD, add "set hsfs:nhsnode=7256 to /etc/system to workaround a filesystem driver bug.

[Thanks to Philip Brown]

(6.43) Is noexec_user_stack supported in Solaris x86?

Yes, but only for AMD64 (Opteron and Intel 64) on Solaris 10 or higher. For 32 bit x86, you can set it but it won't do anything. On SPARC and AMD64, it prevents execution of code that was placed on the stack. This is a popular technique used to gain unauthorized root access to systems, locally or remotely, by executing arbitrary code as root. This is possible with poorly-written programs that have missing overflow checks. To enable stack protection, add the following to /etc/system
set noexec_user_stack = 1
set noexec_user_stack_log = 1

and reboot with /usr/sbin/shutdown -i6

Unfortunately the flag is ignored on Intel 32-bit architecture, because it doesn't have the concept of pages having execute permissions. (SPARC and AMD's Opteron and Athlon support it though).

[Thanks to Alan Coopersmith]

(6.44) How do I setup zones with Solaris?

First, you must have Solaris 10+. Solaris Zones (aka Solaris Containers) is partitioning software that's sort of like an enhanced chroot jail—one kernel. It's software-based, not hardware-based, yet lighter-weight than virtualization software, such as VMWare. I find it useful for testing and development as I can easily set up a zone and not worry about destroying my Solaris installation. It's also good for serving several instances of software, say, a web server, each securely running separate from another.

Here's how I setup a zone on Solaris x86. Basically, all I need to setup a zone is a separate filesystem and a new IP address. The Ethernet network device is shared with the root (or "global") zone. I created a dedicated 6GB filesystem for use by the zone by using a loopback file. Loopback filesystems avoids repartitioning or adding disks. Loopback filesystems are inefficient and shouldn't be done for production use: use raw disk instead. If you want to use a etc/sysidcfg file to set the timezone, name service, locale, etc., place it, for this example, in /zones/danszone/etc/sysidcfg The following is from my session log (most output removed):

# mkdir -p /zones/danszone
# mkfile 6g /zones/dansloopbackfile
# lofiadm -a /zones/dansloopbackfile
# newfs /dev/rlofi/1
# mount /dev/lofi/1 /zones/danszone
# chmod go-rwx /zones/danszone
# zonecfg -z danszone
zonecfg:danszone> create
zonecfg:danszone> set zonepath=/zones/danszone
zonecfg:danszone> set autoboot=true
zonecfg:danszone> add net
zonecfg:danszone:net> set address=
zonecfg:danszone:net> set physical=e1000g0
zonecfg:danszone:net> end
zonecfg:danszone> info
zonecfg:danszone> verify
zonecfg:danszone> commit
zonecfg:danszone> exit
# zoneadm -z danszone install
# zoneadm -z danszone boot
# zoneadm list -v
  ID NAME             STATUS         PATH
   0 global           running        /
   2 danszone         running        /zones/danszone
# zlogin -e @ -C danszone
(the first time the zone is booted, it takes you through the
usual setup menus.)
(type "@." to exit zlogin)

If you use a loopbackfile (again not recommended for production use), you need to create a startup script to run lofiadm, mount, and zoneadm boot. If you use a regular filesystem (for production use), zones start automatically.

For more information on zones, see and

(6.45) How to change the audio beep frequency?

If you have a working sound card or supported USB audio output device, add option -audiobell to Xsun. Copy /usr/dt/config/Xservers to /etc/dt/config/Xservers and edit the last line. Use xset b or dtaudio -beep to configure it. Without a supported sound card or for the console, pu, for example, the following lines in some /etc/rc2.d/ startup script:

f=400 # beep frequency in Hz
echo "beep_params+4?W0t$f;.+c?W0t$f" | mdb -kwm

[Thanks to Markus Gyger]

(6.46) Is Adobe Acrobat Reader available for Solaris x86?

Yes. Adobe now has native Acrobat Reader 9 for Solaris x86 (as of March 2009). It's available from It installs in /opt/Adobe/Reader9/bin/acroread

Alternative PDF readers for S86 include Evince, gpdf, ggv, and XPDF. Evince seems to be the best and is included in OpenSolaris. The (old) XPDF viewer is available on the Solaris Companion CD and at The Evince viewer, binary is at and Solaris Express.

(6.47) Are RealPlayer and other audio and video players available for Solaris x86?

Yes. Solaris 10 06/06 and above comes with SUNWrealplayer. The Helix Community at ported RealPlayer 10 to Solaris x86.

For older versions of Solaris, the Unixware RealPlayer 8 is now playable on Solaris x86. For details, see Jürgen Keil's "Using Unixware RealPlayer 8 on Solaris x86" at

Johan Hagman's Solaris Helpers Page at describes other players, such as for MPEG, but seems to have disappeared off the web. Also, some of these players are SPARC-only. Apple QuickTime is available only for Mac and MS Windows.

Macromedia Flash Player comes with Solaris 10. It is also available for Solaris x86 at
(download from Solaris x86 with your preferred browser to ensure you get the correct version). Or check Jürgen's Solaris x86 Flash page at

Windows Video (WMV) GStreamer plugins are available from Fluendo at

[Thanks to Johan Hagman and Jürgen Keil]


(7.1) What can I do if Solaris won't boot?

You need to boot from your install CD. Insert the Solaris Software CD in your CDROM drive. If your CDROM drive/BIOS isn't bootable, first insert the "Device Configuration Assistant" (DCA) diskette. At the "Boot Solaris" menu, choose "CD."

At the "Type of Installation: Interactive or JumpStart" menu, type "b -s"

Or, after the video configuration, network, time and date you'll notice one of the menu's has a button: [Exit] Select Exit and, when it asks you again "do you want to exit?," just say yes.

Once you're at the UNIX root prompt #, you can mount the boot drive with "mount /dev/dsk/c0t0d0s0 /mnt"" and view anything wrong with the boot drive (omit the "t0" for ATAPI).

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

(7.2) How do I restore the Solaris boot block without reinstalling?

This may happen when installing a boot manager that comes with another operating system (such as LILO from Linux) or an after-market multi-OS boot manager. These sometimes trample's active partition, which in our case is Solaris. Also, moving the Solaris partition with a partition manager program such as Partition Magic requires reinstalling the Solaris boot block. Before taking these steps, first verify the Solaris partition is active. If it isn't, just make the Solaris partition active and reboot. Otherwise follow the steps below.

1. Boot from CD-ROM and get the root prompt, #, as described in the previous question, 7.1.

2. Determine the controller, disk number, and partition. The boot disk is /dev/rdsk/c?t?d?p? where ? is the controller #, target ID, and disk #, and partition #. Omit "t?" for ATAPI E.g., /dev/rdsk/c0d0p0

3. Verify it's the correct device correct with prtvtoc for the drive: This is VERY important; if it's wrong, you you may hose another partition: prtvtoc /dev/rdsk/c0t0d0p0 (omit "t0" for ATAPI, always use p0, which means the "entire drive"). The prtvtoc prints out the map for the Solaris partition on the hard drive, if found. The partitions shown on the output are actually "slices" within the Solaris partition.

4. Restore the boot block as follows:

   /sbin/fdisk -b /usr/lib/fs/ufs/mboot (raw disk dev)
E.g., for SCSI it might be:
   /sbin/fdisk -b /usr/lib/fs/ufs/mboot /dev/rdsk/c0t0d0p0
(omit "t0" for ATAPI)

5. Finally, remove your CDROM and diskette media and type "/sbin/shutdown -i6" to reboot. The Solaris Multiple Device Boot Menu should appear after rebooting. If not, you can always to an upgrade (re-)install.

Note: This procedure does NOT make your Solaris partition active again (sometimes needed after installing another operating system, such as Windows, on the same disk), it just writes to your bootblock IN your Solaris partition. To learn more about the Solaris boot process, read the boot(1M) man page.

(7.3) What can I do during the Solaris/x86 booting sequence?

Starting with Solaris 10 06/06, Solaris now uses GRUB to boot, making the answer below obsolete. That means you can boot to multiple partitions, with multiple instances of Solaris and other operating systems (such as Linux and Windows)

Step #1: Boot loader

If you have multiple partitions, the boot loader in the Solaris partition will come up and ask you which partition you want to boot. This partition must be the active partition, or at least be marked active by a third-party boot manager before this boot loader receives control (not all boot managers have this feature). If you don't answer in so many seconds, it boots Solaris.

This boot manager is pretty basic. It has no customization. You can't change the default boot partition to one other than Solaris, you can't change the timeout value, and you can't change the partition descriptions. But it gets the job done.

Step #2: Device Configuration Assistant (DCA)

This will ask you to press ESC if you want to change stuff. This is to make up for the fact that x86 machines don't have a nice OpenBOOT chip to sort out REAL "Plug and Play".

Basically, in Solaris x86, the Device Assistant seems to set up certain things in /boot/solaris. This is so the "real" OS has some common format to examine for devices, instead of having lots of nasty x86 hardware specific stuff. That way, Sun can keep the main OS somewhat hardware independent, and keep it very close to the Sparc version.

The "Assistant" can actually been of assistance. If you select "partial scan", then "Device tasks", and then "View/Edit Devices", it will tell you what Solaris THINKS your devices are, and where they are at. Quite useful, when Solaris gets completely lost, and you're wondering if it's your fault, or what.

Otherwise, it can give you a warm fuzzy feeling, if you select "Full Scan", and you see all your devices properly recognized.

Step #3: OS Boot

Well, actually, the "Boot Assistant". The interface is similar, but not identical, to SPARC Solaris' OpenBoot 'boot' command. The main differences I notice are:

Step #4: The Main OS: Solaris

You made it (I hope)!. Hopefully, you should now see a line with "SunOS5.8" or similar in it, and a little twirly text character spinner starting. You are now really in the classic Solaris environment. From here on in, your experience is almost identical to your brethren who work with SPARC Sun equipment.

To learn more about the the Solaris boot process, read the boot(1M) man page.

[Thanks to Phil at]

(7.4) How do I logon as root if the password doesn't work anymore?

Regaining control of a Solaris x86 system where the root password has been lost can be accomplished by the following steps. Note that any savvy user can do this with the proper CD-ROM and diskette. Therefore, of course, physical security of a system is important for machines containing sensitive data.

  1. Insert installation boot diskette and installation CD-ROM for Solaris x86.
  2. Boot system from the installation floppy and select the CD-ROM as the boot device.
  3. Type "b -s" (instead of typing 1 or 2 from the menu) and it'll drop you straight to a root shell, #, (and you'll be in single-user mode).
  4. At the root prompt, #, key in the following commands, which will create a directory called hdrive under the /tmp directory and then mount the root hard drive partition under this temporary directory.
          mkdir  /tmp/hdrive
          mount  /dev/dsk/c0t0d0s0  /tmp/hdrive #SCSI; for ATAPI, omit "t0"
  5. To use the vi editor, the TERM variable must be defined. Key in the following commands.
          export TERM
  6. Start vi (or some other editor) and load /tmp/hdrive/etc/shadow file:
          vi /tmp/hdrive/etc/shadow
  7. Change the first line of the shadow file that has the root entry to:
  8. Write and quit the vi editor with the "!" override command:
  9. Remove the floppy installation diskette, and reboot the system:
          /sbin/shutdown -i6
  10. When system has rebooted from the hard drive, you can now log in from the Console Login: as root with no password. Just hit enter for the password.
  11. After logging in as root, use the passwd command to change the root password and secure the system.

Andreas Pfaffeneder has a simpler suggested to recover the password:
Choose the Failsafe-Boot option (which results in kernel/unix -s), answer "Yes" when you are prompted if / of the installed system should be mounted. Chroot into the system and change the password:

# chroot /a /bin/bash
# passwd
# /sbin/shutdown -i6

[Thanks to Lynn R. Francis of Texas State Technical College and Andreas Pfaffeneder]

(7.5) My licensed software fails because the host ID is 0. What's wrong?

Intel processor machines don't have an IDPROM, so Sun generates a serial number, hostid command or sysinfo()'s SI_HW_SERIAL, pseudo-randomly during installation. The number is stored in /kernel/misc/sysinit, whose only function, it appears, is to provide the serial number. If serialization information is tampered or sysinit fails to load, the host ID will be 0. If you reinstall Solaris, sysinit will be regenerated and your host ID will change. So be careful about reinstalling Solaris if you have licensed software that depends on your host ID. Backup your sysinit file.

To preserve the same ID (and therefore licenses), copy file /kernel/misc/sysinit to the replacement system. I understand the Sun Workshop/Sun ONE compiler manual says this is allowed twice per calendar year (please verify this yourself).

For more information, see the Sun NVRAM/hostid FAQ, available at and elsewhere. This also has tools to fake hostids.

(7.6) How can I fix Netscape Communicator to render fonts correctly on S/x86?

This problem occurs with Solaris 2.6 and Netscape Communicator 4.0x, and has since been fixed. Apply patch 106248, which I'm told fixes this problem. A workaround is to add the following two lines to your ~/.xinitrc file:

       xset +fp /usr/openwin/lib/X11/fonts/75dpi/
       xset fp rehash

Another workaround, if you don't have these fonts, is to go into Netscape Preferences and change the font faces.

[Thank's to Alan Orndorff, Jeffrey Cook, and John Riddoch]

(7.7) Why doesn't Netscape run as root?

This is a bug in Netscape. Due to a Netscape 4.x bug (it thrashes the $HOME environment variable) the X11 library cannot find root's .Xauthority file in the root dir unless your current directory is /.

Large, complex programs (especially those taking input from & to the Internet) should not be run as root. Experienced users and Administrators run as root only for essential sysadmin tasks.

If you must run as root, try one of these tricks:

[Thanks to Jürgen Keil via John Groenveld]

(7.8) I moved my PCI host adapter to another slot and the system won't boot!

Don't move the adapter. It isn't a supported feature in Solaris and isn't easy to recover from. If you have any choice in the matter, move the controller back to it original slot.

The PCI device number is part of the device's basic ID, including its child disks. If you change slots, you've effectively removed that controller and its disks, and added an unrelated controller and disks. You need to fix up all of the references to the old disks to point to the new disks.

I've never come up with any strategy better than "boot, observe failure, fix failure, reboot" for recovering from this kind of change. For simple cases (single controller, in particular) it can be helpful to clear /dev/dsk/* and /dev/rdsk/* and run "disks", but that is perilous too.

Incidentally, changing motherboards is likely to trip exactly this problem, because motherboards generally number their slots differently.

To conclude, it's difficult and dangerous, and the general guidelines involves fixing:

  1. /etc/vfstab or /dev or both
  2. /devices to match one another
  3. possibly removing lines from /etc/path_to_inst in order to make the right /devices nodes show up

The ultimate goal is to get back the same controller numbers as before.

[Sun FAQ 2576-02 at http://access1.Sun.COM/cgi-bin/rinfo2html?257602.faq]

(7.9) Why is Solaris always booting into the Device Configuration Assistant (DCA)?

This is usually caused by one of the following:

To change or set your default boot device, See Sun FAQ 2271-02 at http://access1.Sun.COM/cgi-bin/rinfo2html?227102.faq for instructions. To summarize:

(7.10) What is the equivalent of STOP-A for Solaris x86?

>I don't think so, because Stop-A allow you to go into open boot prom of >the SUN and on a x86 it's a different thing (BIOS) Unlike Solaris on Sparc (where STOP-A gets you the OpenBoot prompt), there is no PROM firmware to drop into on x86. You can boot your system under kadb and then use a similar keystroke to drop into kadb and obtain debugging information. To boot under kadb, type eeprom boot-file=kadb and then:

You can then type, for example:
to force your system to panic and generate a crash dump (the equivalent of "sync" at the ok prompt on SPARC).

The Device Configuration Assistant (DCA) portion of the Intel boot process can be interrupted by hitting escape (when prompted). This (I feel) is the Intel version of the Boot Prom Monitor. Of course, all the commands cannot be equated apples to apples because of the hardware differences!

If your console is a terminal, you can type "shift-break" or "ctrl-break" or "ctrl-\" (ctrl-backslash) or "<enter>" followed by "~" and "ctrl-break" on Solaris Sparc, but this, too, is not available for Solaris x86.

With Solaris 8 SPARC (but not Intel), there's a new feature to allow keyboard sequences to generate a break (bug 4147705). The 3-character sequence is <RETURN>, ~ (tilde), ^b. Each character must be entered between 0.5 to 2 seconds. This is enabled with the "kbd -a alternate" command.

Similarly a soft reset is <RETURN>, ~ (tilde), cntl-shift-R, XIR is <RETURN>, ~ (tilde), cntl-shift-X, and Power Cycle is <RETURN>, ~ (tilde), cntl-shift-P, I believe these commands are also available only on SPARC.

[Thanks to Ramit Luthra and Mike Shapiro]

(7.11) How can I reboot Solaris x86 without it asking me to to "press a key" before rebooting?

This works for me: become root and type "shutdown -i6 -g0 -y". Or: "/sbin/shutdown -i6 This is most useful when the system is remote with no console keyboard access. don't use reboot, halt, or poweroff as they bypass the shutdown scripts.

[Thanks to Charles J. Fisher]

(7.12) Help! I'm stuck in the "Boot Assistant" and can't boot. What do I do?

If you get a message similar to: Run Error: File not found. could not run s You probably typed "reboot -- -s" or "reboot -- -r" or similar. This works for Solaris SPARC, but not for Solaris on Intel--it's disastrous. It changes your "boot-file" eeprom variable to "-s", which errors out and puts you in an endless loop in B oot Assistant.

To undo this, type the following at the Boot Assistant prompt: "b kernel/unix" This boots with file /platform/i86/kernel/unix. If this doesn't help, your filesystem may be hosed. In that case, you have to reinstall. But make sure this is the case first.

(7.13) Help! I get error 2 or error 8 while applying patches. What do I do?

Don't do anything. Error 2 means you already have the same or newer code. Error 8 means you can't patch some optional packages that haven't been installed, even if you did "everything plus OEM" during the original installation. Other errors, usually from lack of disk space, are explained in the patchadd(1M) man page.

[Thanks to Paul Karagianis]

(7.14) How do I prevent kdmconfig from running on boot up when I know my keyboard, display, and mouse configuration has not changed?

Mike of Sun has this response (9/2002):

I recognized this as a bug that was fixed a while back, for one instance with older ATI cards. I mentioned it to the video developer that fixed the ATI bug and he mentioned that there is a workaround if you see this:

This problem occurs with certain hardware (keyboards, mice, video devices). During booting, a checksum is calculated based on some info obtained for each device. The checksum is compared to a checksum recorded in the OWconfig file. If the checksums don't match, kdmconfig thinks the device may have changed, and asks the user to check it.

On systems that exhibit this problem, the device info that is checksummed seems to change from boot to boot even though no hardware has changed. I've seen this happen with some old ATI video cards and some keyboards.

The easy workaround for the problem is to run kdmconfig and test and accept the desired configuration by clicking on the "Yes" button of the test display. Then edit the last line of the OWconfig file in /etc/openwin/server/etc. Change the "1" to "2", so that is says: TestedByUser="2"; This will cause kdmconfig to ignore checksum differences.

If you are upgrading from Solaris 8 or older to Solaris 9, check the ddxHandler line. It should say "", not "". Otherwise, X Windows won't start (no graphics).

[Thanks to Mike Riley]

(7.15) * I get this error message: "can't get local host's domain name" or "The local host's domain name hasn't been set." What do I do?

This is a NIS message. The easiest way to fix it is to type the following as root: Solaris 11:
svccfg -s nis/domain setprop \ config/domainname= hostname: svccfg -s nis/domain:default refresh svcadm enable nis/domain

Solaris 10:
domainname; domainname >/etc/defaultdomain

(replace with your NIS domain name, which is sometimes the same as the DNS domain name).

(7.16) My system doesn't boot due to superblock problems with the root filesystem. What do I do?

Normally, you reboot in single user mode and run /usr/bin/fsck as root and everything is OK. If you get a message about errors/problems on /dev/dsk/c0d0s0, are told to run fsck manually in single user mode, and get this message:
then you may be able to recover from this if the disk isn't entirely corrupted. The superblock stores important information about the file system. Because it is so important it is duplicated in several places. Hopefully one of the backup superblocks isn't corrupted. To see duplicate locations of superblock, use newfs -Nv. For example, if your root slice is at /dev/dsk/c0d0s0, run this command:

# newfs -Nv /dev/dsk/c0d0s0 You must specify -Nv so you don't clobber your root slice with a new filesystem. Your output should look like this:

# newfs -Nv /dev/dsk/c0d0s0
mkfs -F ufs -o N /dev/rdsk/c0d0s0 614880 63 16 8192 1024 16 10 60 2048 t
0 -1 8
7 n
/dev/rdsk/c0d0s0:       614880 sectors in 610 cylinders of 16 tracks, 63
        300.2MB in 39 cyl groups (16 c/g, 7.88MB/g, 3776 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 16224, 32416, 48608, 64800, 80992, 97184, 113376, 129568, 145760,
 468576, 484768, 500960, 516128, 532320, 548512, 564704, 580896, 597088,
Note the numbers following "super-block backups." Use one of the numbers in fsck (e.g., 32) and use it with the fsck -F -o b= option:
# fsck -F ufs -o b=32
You may get a message FREE BLK COUNT(S) WRONG IN SUPERBLOCK SALVAGE? or FILE SYSTEM STATE IN SUPERBLOCK IS WRONG; FIX? In either case, type "yes" and press return. You should get a FILE SYSTEM WAS MODIFIED message. Reboot your system. If system complains about shutdown not being found do a halt -q. Now, hopefully, your system will boot up with out any problems.

[Thanks to Kevin Smith.]

(7.17) My system doesn't boot because the boot archive is corrupt. What do I do?

The boot archive contains the kernel modules and configuration files that are required to boot your machine. Boot up in Solaris failsafe mode. Your Solaris image should be mounted on /a. Type the following:
rm -f /a/platform/i86pc/boot_archive; bootadm update-archive -R /a

[Thanks to Pradhap Devarajan.]

(8.0) X Windows

(8.1) How do I find a Solaris video driver for my graphics card?

First look in the HCL for your release of Solaris to see if your graphics card is supported. Having a supported graphics card on the HCL is very important--more important than a supported motherboard. If the adapter's not listed, look for a driver from these sources:

During installation, if you have a unsupported video card, be sure to bypass kdmconfig with the F4 key. Use type 4, "Solaris Interactive Text (Console session)," for Solaris 10 and the "Software 1 of 2" CD for Solaris 8 or 9.

[Thanks to Paul Karagianis for NVida info]

(8.2)How do I install the Xorg video drivers?

Beginning with Solaris 10, all Xorg drivers are included with Solaris. The old "Video Drivers Porting Kit" is no longer needed. Xorg drivers are also available with the current Solaris 9 Update release.

(8.3) How do I configure Xorg on Solaris?

First use /usr/openwin/bin/kdmconfig to select Xorg instead of Xsun. Run /usr/X11R6/bin/xorgconfig to configure Xorg, which asks questions and creates file /etc/X11/xorg.conf View errors, if any, in /var/log/Xorg.0.log. Try the generic "VESA driver" (which uses the BIOS) if the driver you picked didn't work. You may also (carefully) edit /etc/X11/xorg.conf directly (save the original file first). To start the X server manually, use /usr/X11R6/bin/xinit

(8.4) How do I configure 64K colors for XSun/CDE?

Solaris' kdmconfig offers only a choice of 256 or 16M colors for your graphics board with XSun. To configure XSun to use 16-bit color, configure using kdmconfig for the desired resolution in 256 color mode. Note the board line from file /etc/openwin/server/etc/OWconfig. Look in the referenced file in directory /usr/openwin/share/etc/devdata/SUNWaccel/boards to see if there is support for 16-bit color mode for your card.

If your board is listed, edit file /etc/openwin/server/etc/OWconfig and change defdepth="8" to defdepth="16" in it. Also, values for MaxPClk for some cards are way too low in 16-bit and 24-bit modes in file /usr/openwin/share/etc/devdata/SUNWaccel/boards. But if you want to change this, you are doing it on your own risk. Some applications hang on 16-bit colors.

The CDE logo that is displayed after one logs in is a bit-mapped grayscale image(!?), but everything else should work just fine.

[Thanks to Aleksandar Milivojevic, by way of John Groenveld]

(8.5) How do I Add KDE, FVWM, or other non-CDE/GNOME Window Mangers to the dtlogin screen?

KDE The easiest way to add substitute KDE for CDE is to add an "exec /path/to/kde" statement in your $HOME/.dtprofile file.

To add a KDE selection to the dtlogin screen (in addition to the usual command-line, OpenWindows, or CDE choices), follow one or both of these links:

FVWM The instructions are for FVWM, but apply to any window manager, such as KDE, AfterStep, WindowMaker, or Enlightenment. Be aware that these new WMs usually take a bigger memory footprint.

(8.6) Where can I get GNOME or KDE packages for Solaris/x86?

GNOME is available with Solaris 9 and above. KDE is available with the Solaris Companion CD. They are also available on the web for download.

For information about GNOME on Solaris or for a free download, see For information on GNOME, see

For general KDE information, see When installing KDE, make sure to install the QT library first, which is required by KDE.

Which is better? "Religious" wars could be fought over this question. KDE has a more familiar M$ windows-like interface, and I used to use it. I use GNOME now since it's most easily available on both Solaris and Linux. KDE is more mature than GNOME and more tightly integrated, but some say GNOME is catching up. GNOME and Mozilla both use the C-based GTK library. The C++-based QT library, required by KDE, used to have stricter licensing restrictions, but now it's licensed under GPL (not LGPL). KDE is endorsed and supported by IBM, Caldera, and SuSE. GNOME is endorsed and supported by Sun (and RedHat and HP). I recommend installing and trying out both GNOME and KDE for a test drive. You can have both installed at the same time and select which one to use with dtlogin. You can also run KDE apps under GNOME and vice versa.

Sun picked GNOME over KDE because of Qt licensing issues, CORBRA in GNOME, and because GNOME uses C and KDE uses C++ (the latter causes name mangling problems which prevents using different C++ compilers).

(8.7) After upgrading to Solaris 9 or installing GNOME, GNOME does not appear in the dtlogin menu. How can I fix this?

Check what your LANG variable is set to (AFTER logging in to CDE). If it's not "C", you need to copy the GNOME dtlogin resource files to your current locale. Type this command, as root (1 line):
cp /usr/dt/config/C/Xresources.d/Xresource.Sun-gnome-2.0* /usr/dt/config/$LANG/Xresouces.d
(where $LANG is you current locale) For example:
cp /usr/dt/config/C/Xresources.d/Xresource.Sun-gnome-2.0* /usr/dt/config/en_US.ISO8859-15/Xresouces.d

If you have trouble AFTER logging into a GNOME session, check these:

(8.8) Are TrueType fonts supported in Solaris?

Yes, Xsun supports them. Use the Font Administrator GUI, /usr/dt/bin/sdtfontadm, to add them to the server's list of fonts. See also

[Thanks to Tran Tran]

(8.9) After installing and booting Solaris I get this message: "The X-server can not be started on display :0"

Your video or mouse settings are probably incorrect or a video card or mouse was not detected at all. Check the log files to be sure (/var/log/Xorg.0.log if using Xorg or /var/log/Xsun.0.log if using Xsun with a XF86/Xorg driver). First login in text mode and check /var/dt/Xerrors for error messages. If nothing obvious is there, run kdmconfig and try a simpler video setting (plain VGA, low resolution). Once that works, try higher-resolution settings and other drivers. Also try using the Xorg video drivers instead of XSun (see a previous question on configuring with Xorg drivers).

(8.10) How do I disable CDE auto-start upon booting multi-user?

Boot single-user and run dtconfig(1). That is, at the booting Solaris prompt, type "b -s" After entering your root password, mount /usr and run "/usr/dt/bin/dtconfig -d"

[Thanks to John Groenveld]

(8.11) How do I su(1) to another user and run an X application?

You need to set your $DISPLAY and allow others to use your console. If you don't, you get a message like "Can't open display". By default, only the user who logged in on console can connect to the display.

To allow another user to connect there are two ways - one easy and one secure (unfortunately, you can't have both):

Easy: As user logged in on console run "xhost +LOCAL:" (This gives permission to connect to the display to anyone logged in on the machine—this includes being able to open windows, read your keystrokes, send keystrokes, etc. Obviously not a good idea if you have other users on the system you don't trust completely.) Starting with Solaris 10, you can also use this safer, more-restrictive format: xhost xhost +si:localuser:username For example: xhost +si:localuser:root

As any other user logged in on the box, run "setenv DISPLAY :0" or "DISPLAY=:0; export DISPLAY", depending on your shell type. This all assumes you're connecting from the same host, for a remote host, change to "xhost +other-hostname" and "setenv DISPLAY PutYourHostnameHere:0"

Safe: As user logged in on console run "xauth list" Look for the line for your hostname followed by ":0" and copy it. As the user you want to grant access to run "xauth" and at the xauth> prompt type "add " and paste the line you copied. Now "setenv DISPLAY hostname:0", making sure you match the way it was listed in the line you copied and pasted.

Easier variation of safe method for special cases: If the other user you want to access your screen is root, and your home directory is either local or on an NFS filesystem exported with root permissions, just have root do this:
setenv XAUTHORITY /home/myuserid/.Xauthority ; setenv DISPLAY :0
(replace "/home/myuserid" with your actual home directory).

[Thanks to Alan Coopersmith]

(8.12) Does Solaris x86 support multiple heads?

Yes, with Xorg. Xsun supports multiple heads only for Sun Ray workstations. A commercial X server from Xi graphics, also supports multiple heads.

[Thanks to John Groenveld, Alan Coopersmith]

(8.13) How do I get my 2-button mouse to emulate 3 buttons?

In Solaris 8, "kdmconfig" will autodetect a two-button PS/2 mouse, so you may never look in the "change pointing device" section. You need to go in there, and change it from "PS/2 Mouse (2 Button)" to "PS/2 Mouse (2 Button+100ms 3 Button Emulation)"

[Thanks to Philip Brown]

(8.14)How do I get some older Solaris GUI's to run with Xorg?

Some applications are configured to use Sun's proprietary F3 fonts. The work-around is to run Sun font server, xfs(1), and to prefix Xorg's FontPath with it.

(8.15) Can I use an old Sun monitor with a 13W3 connector with a VGA adaptor card?

Yes. You need an adaptor. Get a 13W3 female to DB-15HD (VGA) male adaptor to connect a Sun monitor to a PC VGA adaptor port. Make sure to get the 13W3 female adaptor (the more-common male adaptor is for connecting PC-style VGA monitors to Sun video ports).


(9.1) Can I install Solaris x86 on a system that already has MS Windows 9x/ME/NT/2K/XP/2003 (among other systems)?

When you run the Solaris install program, it will ask you which partition you wish to use. On your boot disk all you need to do is to create another partition on your existing disk. You use GRUB to boot to choose to boot to Solaris or another operating system, such as MS Windows.

To shrink an existing MS-DOS/MS Windows partition, if you need to make room, use something like Partition Magic or Linux ntfsresize. ntfsresize is also available for Solaris from FSWfsmisc

[Thanks to Barry Katz, Brandon Hume, Joseph A. Faracchio, Joelle Nebbe, Eugeny Kuzakov, and Sean M. Kelley]

(9.2) How can I use MS Windows' NT/2K Loader to boot Solaris/x86?

The general idea is that you copy the first sector of your native root Solaris/x86 partition into a file in the DOS/MS Windows NT/2K partition. Assuming you name that file something like c:\bootsect.sun (inspired by c:\bootsect.dos) you can edit file c:\boot.ini (after saving boot.ini to boot.old): to come up with something like this:

[boot loader]
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT"

The "multi(0)" means that it's an ATAPI drive and so for the ATAPI drives, the "disk(0)" is ignored. The "rdisk(1)partition(1)" means Solaris is on the first partition of the second drive on the first IDE channel.

This procedure assumes that DOS and NT have been installed onto the first ATAPI disk and Solaris/x86 or whatever have been onto the second disk (use scsi(0) and place the SCSI ID in disk(x) for SCSI drives). Note that in order to use the Windows NT boot loader, the NT partition must be the active boot partition. Solaris/x86 must also be the active boot partition, so must reside on another disk (This may be another reason to use a commercial product, System Commander--see question below).

In Solaris, mount a DOS-formatted floppy (if you've converted C: to NTFS, which isn't easily readable from Solaris/x86) or a HD FAT partition (see question below), under, say, /mnt. Type:

dd if=/dev/rdsk/c0d0p0 of=/mnt/bootsect.sun bs=512 count=1
# (Note: The above is for ATAPI; use /dev/rdsk/c0t0d0p0 for SCSI.)

If the Solaris partition is on a separate drive (as in this example), you need to modify file bootsect.sun to tell it the boot drive. The instructions below are for Solaris 7 or earlier The bootsect.sun code assumes the drive ID is preloaded into the x86 DL register before the bootsect.sun is executed. This is done by the BIOS, but not the NT loader. The easiest way to fix this is to modify the bootsect.sun code with a binary file editor. The first instruction is a jump over the next 4 bytes, the ASCII version ID ("P2.0" in this case). Use a binary editor to overwrite this with a "MOV DL,0x81" instruction and some NOPs. I.e., I changed the first six bytes in my bootsect.sun from "eb 04 50 32 2e 30" to "b2 81 90 90 90 90" (in hex) and saved it in file bootsect.sun. Another person's bootsector began with eb 79 . . . and he changed the first 4 bytes to b2 81 eb 77 to get it to work. Some useful drive IDs are: 0x00 for the floppy drive, 0x80 for the 1st hard drive, and 0x81 for the 2nd hard drive.

Reboot into NT. Copy the bootsect.sun file from the floppy to C:\, if you haven't done so yet. Modify the DOS/NT attributes (permissions) on boot.ini with:

attrib -s -r c:\boot.ini

Edit to add the appropriate entries from the example boot.ini above, and restore the system and read-only file attributes:
attrib +s +r c:\boot.ini

An alternative to the Solaris "dd" command above is to use the "postcard-ware" program BootPart 2.2 from E.g., the following displays the partitions, then creates a boot sector file bootsect.sun and adds "Solaris" to the NT loader menu. Edit bootsect.sun as above.

C:> bootpart.exe
C:> bootpart.exe 1 bootsect.sun Solaris

[Thanks to Krejcarek Brian Grant, Louis Lam, Matt Gillen, and Indego Thorn]

(9.3) Can I mount Solaris ZFS filesystems on Linux or Mac?

ZFS is Zettabyte Filesystem, a modern, flexible, integral filesystem described at Experimental, unsupported, read-only support for Linux is available from Ricardo Correia, a berliOS developer, at as a user-space filesystem. ZFS filesystem support will be on Mac OS X 10.5 "Leopard."

(9.4) How can I mount MS Windows NTFS filesystems in Solaris? +

Mounting NTFS in Solaris is supported by mount_ntfs, by Martin Rosenau, and packages FSWfsmisc and FSWfspart, by Moinak Ghosh (and based on Martin Rosenau's work and part of Moinak's BeleniX work). I use and recommend FSWfsmisc/FSWfspart as it allows mount directly from the mount(1M) command and /etc/vfstab, supports extended partitions, and supports NTFS. Both are explained below and both work with Solaris 10 and 11.

Download the package file for FSWfsmisc/FSWfspart from and and install the two packages (pkgadd). Use prtpart to display the partitions and mount to mount the NTFS partition. For example, I use this command:
mount -F ntfs /dev/dsk/c0d0p1 /c
If you have this line in /etc/fstab you can mount with just mount /c
/dev/dsk/c0d0p1 - /c ntfs - no ro
(change the mount point, /c, and partition c0d0p1 for your system). Here's the output from mount and FSWfsmisc's xlsmounts:

# mount |grep '^/c'
/c on remote/read only/setuid/devices/port=33249/public/vers=
2/proto=udp/xattr/dev=4700004 on Sun Nov 26 19:42:29 2006
# xlsmounts
  PHYSICAL DEVICE     LOGICAL DEVICE      FS    PID         ADDR Mounted on
  /dev/dsk/c0d0p1     /dev/dsk/c0d0p1    ntfs   3354 /c

Martin Rosenau's program mount_ntfs, also mounts NTFS filesystems, but with a separate program, mount_ntfs. Download the binary (and source, if desired) from Determine what disk and partition your NFS filesystem resides on.
/usr/local/sbin/mount_ntfs /dev/rdsk/c2d0p1 /c
Type mount_ntfs for usage information. Unmount with umount.

[Thanks to Martin Rosenau and Moinak Ghosh for mount_ntfs and FSWfsmisc]

(9.5) Can I install Linux and Solaris on the same drive?

Yes. If you use Solaris 10 or greater, it's no problem--as they use different partition IDs (0x82 for Linux and 0xBF for Solaris). Unfortunately, Solaris 9 and earlier and Linux swap partitions use the same ID, 0x82, so be careful.

For the most part, both Linux and Solaris use GRUB to boot load the OS. Linux and Solaris GRUB both live at the beginning of the partition and in the /boot/grub/ directory. Solaris GRUB can boot to either Linux or Solaris directly. Linux GRUB can't boot to Solaris directly, as it doesn't have the Solaris modifications (at least yet). But Linux GRUB can "chain load" to Solaris GRUB. The following is a sample entry to chain load Solaris GRUB from Linux GRUB:

# Boot from Linux GRUB to Solaris GRUB at the 3rd partition, /dev/hda3
title Sun Solaris GRUB Boot Loader
    rootnoverify (hd0,2)
    chainloader +1

The following is a sample entry for booting Linux from Solaris GRUB. It can just be copied and pasted from your Linux GRUB menu.lst file:

# Boot from Solaris GRUB to Linux at the 4th partition, /dev/hda4
title SUSE Linux 10.1
    root (hd0,0)
    kernel /vmlinuz root=/dev/tahoma-suse10.1/root-tahoma-suse10.1 vga=0x31a
    initrd /initrd

(9.6) Help! Mount of a Linux NSFv4 fails with "Not owner"

If you get this error message mounting a NSFv4 filesystem from a Linux server on a Solaris client:
nfs mount: mount: /netdrive: Not owner
then the problem is NFSv4 support is broken in Linux. There's two solutions for this:

(9.7) Empty

(9.8) Empty

(9.9) How can I boot both Solaris/x86 and Win XP/2000/NT on the same disk?

With Solaris 10 Update 1 and above, GRUB is the boot loader for Solaris. GRUB allows you to boot to one out of multiple operating systems on your disk, whether Solaris or non-Solaris. The Windows partition is automatically recognized and added to your GRUB menu. For example, here's my entry:

title Windows
        rootnoverify (hd0,0)
        chainloader +1
Active partition: You must set the Solaris partition to be ACTIVE in order to make it boot to Solaris. MS Windows doesn't have to be active to boot. If you make the Windows partition active, it will only boot to windows and not use GRUB.

(9.10) How do I mount a DOS partition from the hard drive?

mount -F pcfs /dev/dsk/c0t0d0p0:1 /mnt # SCSI
mount -F pcfs /dev/dsk/c0d0p0:1   /mnt # ATAPI

Where c0 is the controller number.
      t0 is the target (SCSI ID number) (omit for ATAPI)
      d0 is always 0 for SCSI, the drive # for ATAPI
      p0 is the partition (p0 is the entire disk, or p1 - p4)
      /mnt is the mount point
      :1 is the logical drive (c - z or 1 - 24)

Omit the Solaris "slice" number (e.g., "s0") for DOS partitions. You can use the normal UNIX commands to copy files, 'cp', etc., after that to move the data. DOS filenames are in the long filename format (mixed case, with optional lower case only) for Solaris 7 and higher. DOS 8.3 names are in UPPER case unless you use the "-o foldcase" option, which folds all UPPER case and mixed case names to lower case (see man mount_pcfs(1M) for details).

Note: The "mount -F pcfs . . ." command won't mount a FAT16 partition if it was fdisk-ed and format-ted with MS Windows 9x/ME/NT/2K/XP/2003 (at least for Solaris 2.6 and earlier. Any reports with Solaris 7/8?). Use DOS 6.x. HPFS (OS/2), FAT64 (Win NT), or NTFS (Win NT/2K/XP/2003) partitions are not mountable under Solaris at all. FAT32 (Win 9x/ME/2K/XP/2003) are mountable with Solaris 7. There's some reports of not being able to mount FAT32 partitions if it's not the first partition.

To mount the partitions automatically, put something like this in /etc/vfstab:

#device           device         mount    FS    fsck  mount
#to mount         to fsck        point    type  pass  at boot
/dev/dsk/c0d0p0:1 -              /c       pcfs  -     yes       -
/dev/dsk/c0d1p0:1 -              /d       pcfs  -     yes       -

This mounts the DOS partitions (assuming it's the first partition) on /c and /d, respectively, on startup. For more info, see "man pcfs"

[From Bob Palowoda's Solaris 2.4 x86 FAQ]

Note: p0 refers to the first primary partition and p1, p2, . . . refers to the logical DOS partitions found in the extended DOS partition. Solaris/x86 does NOT support DOS directly in the 2nd, 3rd, or 4th primary partition of a disk. See BugID 1170107. Furthermore, Solaris/x86 does NOT support more than one Solaris fdisk partition on a physical disk nor more than 8 Solaris "slices" on a Solaris fdisk partition.

[Thanks to Randy J. Parker, Norma Adamson, Rob Duarte, and Danny Huynh]

(9.11) Does PartitionMagic and BootMagic understand Solaris partitions?

Yes and no. BootMagic can be setup to boot Solaris partitions, since it dynamically marks the partition as active. The setup, however, doesn't automatically recognize these partitions as Solaris (but as Linux Swap partitions).

PowerQuest's PartitionMagic can copy and move Solaris Partitions, with a low-level sector-by-sector copy. It cannot enlarge or shrink the Solaris Partition, which actually contain multiple "slices" of various Solaris ufs file systems. Furthermore, after a partition copy, the boot block needs to be restored. See the question elsewhere in this FAQ "How do I restore the Solaris boot block without reinstalling?"

Grant Chivers provides these instructions to install Solaris on a Windows/Linux system with the PowerQuest Partition Editor:

(9.12) How do I access a DOS-format diskette from Solaris?

Using volume management, type "volcheck". This forces Solaris to poll the diskette drive (and other drives). The diskette drive isn't polled automatically (unlike the CD-ROM), as it would quickly wear it out. You should see something like this typing "mount":

/floppy/unnamed_floppy on /vol/dev/diskette0/unnamed_floppy read/write
on Wed Jan 20 09:05:44 1999

To unmount using volume management, type "eject". After a message, you can manually eject the floppy safely.

You can also mount the diskette in a similar way to hard drive partitions without using volume management (the old way):

mount -F pcfs /dev/diskette /mnt

Don't forget to turn of the volume management before you try to do this from the command line or you'll get a "device busy" message. "/etc/init.d/volmgt stop" will stop the volume manager. To restart the volume manager, "/etc/init.d/volmgt start".

[From Bob Palowoda's Solaris 2.4 x86 FAQ and Casper Dik's Solaris 2 FAQ]

The GNU mtools package allows access of DOS diskettes without being root. The diskette isn't mounted, but instead special commands with the prefix m, such as mcopy, mdir, mdel, etc. are available.

(9.13) Does Solaris mount and recognize MS Windows partitions with long file names (VFAT)?

Solaris 2.6 and above uses the "long" (VFAT) file names, but earlier versions of Solaris use the "short" (DOS/FAT/8.3) file name (for example, "progra~1"). Solaris 2.6 recognizes the case (e.g. "Program Files/"), which may be optionally folded to lower case ("program files") with the foldcase mount option. Earlier "Solari" folds DOS file names to lower case only. VFAT refers to the file naming convention and is completely separate from FAT16/FAT32 (see a earlier question for that).

[Thanks to Nelson Chan]

(9.14) How can I make my Solaris files easily available to MS Windows on a network?

Solaris PC NetLink provides "a complete set of Windows NT Network Services," which includes SAMBA-type NT naming, file, print, directory, and security services for Windows 3.11/95/98/NT clients. It is based on Microsoft NT 4 code licensed via AT&T ("Advanced Server for Unix"). It used to be available for Solaris/x86, but is now available only for Sun Enterprise servers.

In any case I prefer SAMBA for Solaris 10 or earlier, or Solaris SMB for Solaris 11. SAMBA is a robust, open source package that provides SMB services (aka MS Windows networking) from UNIX. This allows LAN-Manager-type browsing and "Connect Network Drive," and provides access to UNIX print servers. SAMBA can act as a file, print, browser master, and WINS servers, but not as a domain controller (that's in the works). SAMBA also serves files faster than NetLink (or Windows, for that matter). However, NetLink implements SMB better than SAMBA, since it uses Microsoft-licensed code, while SAMBA must reverse-engineer the code. SAMBA is provided with Solaris 9 and later. For the SAMBA FAQ, sources, binaries, and other information, see the SAMBA web page at:

OpenSolaris SMB allows files to be shared on MS Windows. To enable add this line to /etc/pam.conf :

other password required nowarn
Enable the service and join a MS Windows Workgroup:
svcadm enable -r smb/server;
smbadm join -w MYGROUP # (default is WORKGROUP)
sharemgr add-share -s /myshare -r myshare -d "My OpenSolaris SMB share" default
sharemgr list -v
sharemgr show -vp
Change "myshare" to the name of the root directory you're sharing. Then use passwd(1) to set any passwords you'll be using in MS Windows (old passwords set before pam.conf is modified are not used). On MS Windows, go to Windows Explorer or My Computer and, from the Tools menu, select "Map Network Drive": \\myhostname\myshare. Change myhostname to your OpenSolaris hostname and myshare to the root directory being shared. Login with the username and password set with passwd, above. No guest login is allowed.

Sun has a commercial product, Solstice LM Manager, that works (poorly) with MS LAN Manager/SMB and links in with NIS/DNS.

(9.15) How can I access files on a remote MS Windows, SMB, or SAMBA share?

You can't use mount or smbmount, as on Linux, because no Solaris kernel driver is available. You can use smbsh, smbclient, or Sharity as workarounds. For example, "smbclient //servernamehere/sharenamehere" then type "get somefilename to access a file. smbsh allows SMB file access through UNIX commands, such as ls or egrep, from your UNIX shell. The shell must be dynamically linked in order for this to work (which is the typical case). To use type "smbsh" then access your SMB files from "/smb/groupnamehere/servernamehere

If you use GNOME, Nautilus has the ability to browse SMB shares, but you can't open the file directly. You drag (copy) files from a SMB share to your local disk (and vice versa).

Another solution is to us NFS instead of SMB. Get a file server (Network Attached Storage, NAS) that supports NFS. If accessing from windows, download MS Windows "Services for Unix," which supports NFS, at

The best solution may be Sharity-Light from Objective Development. It's open source, GNU licensed that runs in user (not kernel) space using the Solaris NFS kernel interface. See for details. Here's how I mount a SMB share with sharity:
shlight //mazama/d /d -n

Objective Development also has a commercial product, Sharity, which also provides SMB server functions, at Sharity works with 32-bit x86, but not 64-bit.

(9.16) How can I make my Solaris files easily available to an Apple Macintosh on a network?

Upgrade to MacOS X, which has native support for NFS and Microsoft SMB.

Or use CAP, an excellent open source AppleTalk server software for UNIX. The Columbia AppleTalk Package (CAP) implements the AppleTalk protocol stack on UNIX The main applications provide an AppleShare 2.1 compatible server (aufs), a LaserWriter Spooler (lwsrv) and a program to print to LaserWriters (papif). For more information, see:

(9.17) Can I use SunPCi on Solaris/x86?

No. SunPCi is an add-on card and software for Solaris on SPARC only. SunPC emulates a PC with the card and Caldera's "DR-DOS" allowing Windows 3.1/9x to be installed on top of it. The card has a 300 MHz K6-2 AMD processor and RAM. It emulates hard and floppy drives, serial ports, SuperVGA, mouse, keyboard, etc. Generally, SunPCi or it's older cousin, SunPC, emulates the PC environment OK, although it performs more slowly than a straight PC (your mileage may vary). Software that requires a parallel port hardware key (dongle) won't work.

(9.18) Will Linux programs run on Solaris 2/x86?

The Lxrun program, originally written for SCO, is now available on Solaris/x86. The Lxrun emulator allows one to execute Linux binaries, both in ELF and a.out Linux formats. Linux ext2 read-only filesystem support from Solaris (mount/unmount) is included with either package FSWfsmisc or ext2fs.tar.gz.

To install, first install package SFWlxrun from the Solaris Software Companion CD. Setup or mount a ext2fs filesystem, say at /linux (as explained in a question below on ext2fs).

To use, run programs or shells prefixed with lxrun. For example:

$ uname -a
SunOS 5.8 Generic_108529-06 i86pc i386 i86pc
$ lxrun /linux/bin/rpm -q redhat-release
$ lxrun /linux/bin/uname -a
SunOS 5.8 Generic_108529-06 i86pc unknown

To avoid prefixing Linux filenames with "/linux/" (or wherever your ext2fs is mounted), and setup a PATHMAP file (to map Linux filenames to Solaris names). For Sun's SFWlxrun version of lxrun, type this, as root, to set it up:
(cd /usr/sfw/lib; cp -p PATHMAP-style2 PATHMAP)
For other builds of lxrun, PATHMAP may be at /usr/local/lxrun/PATHMAP. The file location can also be changed with environment variable $PATHMAP.

lxrun has been replaced with BrandZ in Solaris 10, which allows one to run Linux 2.4-based software on a Solaris "Branded" Zone (or "Container"). The focus is on running Red Hat Enterprise Linux (RHEL) and CentOS.

For more information see the following links:

(9.19) How can I get the DOS and UNIX clock to agree on Solaris/x86?

After installation, run the command /usr/sbin/rtc -z $TZ, where $TZ is your timezone. The default root crontab runs /usr/sbin/rtc -c daily. That way your clock will give the proper time whether you boot Solaris or MS-DOS/MS Windows.

If you're running Windows NT and find the clock "overadjusted" twice a year (that is, it gains or loses an extra hour), you should comment out (with a "#") the "rtc" line in file /var/spool/cron/crontabs/root.

[Adapted from Casper Dik's Solaris 2 FAQ]

(9.20) Is Solaris x86 able to execute Solaris SPARC applications?

There's no way to run a SPARC binary on an x86 machine unless you have an emulator for the SPARC CPU. Transitive, has emulation software that runs SPARC software on x86.

(9.21) Will my old applications from SVR3 or SCO run on Solaris 2/x86?

Solaris x86 has an emulation mode that should run the majority of well-behaved SVR3 (including SCO UNIX), and SCO Xenix binaries. Most SVR3 stuff appears to work under Solaris 2.4.

Applications from any other vendor's standards-conforming 386/486 SVR4 should also run. The main standard being iBCS (Intel Binary Compatibility Standard).

However, some vendors have made incompatible changes to their SVR4 release and programs linked on those versions may not work. Future versions of Solaris 2.x for Intel will address some/most of those incompatibilities. UNIXWare is one of the offenders.

[From Casper Dik's Solaris 2 FAQ]

Linux binaries will run with the assistance of lxrun (see the lxrun question above).

(9.22) Will my application from Solaris/SPARC work on Solaris/x86? I have the source.

Yes and no. Generally applications that don't make assumptions about computer architecture will work. That is, code shouldn't depend on structure or union alignments, or in what order a number appears in a word ("big endian" SPARC or "little endian" Intel). Don't use functions labeled SPARC or x86 only in the man pages. In other words, "well-behaved" C (or other language) programs should recompile fine.

(9.23) Can I access Solaris/x86 partitions from Linux?

Yes. Read-only access is available. You need to have Linux 2.1.x or greater. To see if your Linux kernel recognizes Solaris partitions, type the following on Linux: dmesg | grep solaris

You should get something like this:

 hda: hda1 hda2 <solaris: [s0] hda5 [s1] hda6 [s2] hda7 [s3] hda8
 [s5] hda9 [s6] hda10 [s7] hda11 >

This says that Solaris lives in the 2nd partition (hda2), slices 0 to 7. These Solaris slices are mapped to virtual partitions hda5 to hda11.

To mount a partition, type something like this:

   mount -r -t ufs -o ro,ufstype=sunx86 /dev/hda5 /mnt

This will mount the root slice (s0) on /mnt read-only.

Warning: Softlinks that are relative to root (e.g., /usr/local pointing to /local) will point to the wrong place. To avoid this problem, change these links in Solaris to relative soft-links (e.g., /usr/local to ../local).

This can be automated with /etc/fstab. If you don't want the partitions mounted at boot, add ",noauto" after "defaults,ro" (no space). If you want non-root users to be able to mount partitions, add ",user" (careful!):

# /etc/fstab
# . . .
#Device     Mount                FS                        Fsck Mount at
#to mount   point                type Options              pass boot # Slice
/dev/hda5   /solaris             ufs  defaults,ro,ufstype=sun 0 0    # s0
/dev/hda8   /solaris/var         ufs  defaults,ro,ufstype=sun 0 0    # s6
/dev/hda9   /solaris/opt         ufs  defaults,ro,ufstype=sun 0 0    # s3
/dev/hda10  /solaris/usr         ufs  defaults,ro,ufstype=sun 0 0    # s5
/dev/hda11  /solaris/export/home ufs  defaults,ro,ufstype=sun 0 0    # s7
# Note: slice s2, by convention, indicates the whole disk

If, when you type "dmesg" above, you don't see Solaris partitions recognized, you might have to rebuild your Linux kernel. Be sure to specify "y" in /usr/src/linux/.config when you type "make config":


Linux 2.2 has experimental write support to Solaris partitions. If you get this message when mounting in read-write mode: "... ufs_read_super: fs needs fsck" then UFS function ufs_read_super somehow decided the fs isn't clean, and therefore set the RDONLY bit. Type something like this to re-mount in read/write mode (replace "hda5" with your file system):

   mount -o remount,rw /dev/hda5

There's another Linux kernel configuration question, CONFIG_SMD_DISKLABEL, that applies only to Sparc Solaris disks, which are in yet another format. The answer to that question doesn't matter for Solaris/x86 filesystems.

(9.24) Can I access Linux (ext2/ext3) partitions from Solaris?

Yes. You can do this wither with Moinak Ghosh's FSWfsmisc/FSWfspart (for Solaris 10 or 11, developed as part of Moinak's BeleniX work) or with the older ext2fs (Solaris 7-10). I use and recommend FSWfsmisc as it works better with extended partitions and also mounts NTFS filesystems. I use and recommend FSWfsmisc/FSWfspart as it allows mount directly from the mount(1M) command and /etc/vfstab, supports extended partitions, supports NTFS filesystems, and supports 32-bit and AMD64 Solaris. Both FSWfsmisc and ext2fs are explained below.

Download the package files for FSWfsmisc/FSWfspart from and and install the two packages (pkgadd). Use prtpart to display the partitions and mount to mount the NTFS partition. For example, I use this command:
mount -F ext2fs /dev/dsk/c0d0p6 /linux
If you have this line in /etc/fstab you can mount with just mount /c
/dev/dsk/c0d0p6 - /linux ext2fs - no ro
(change the mount point, /linux, and partition c0d0p6 for your system). Here's the output from mount and FSWfsmisc's xlsmounts:

# mount |grep /linux
/linux on remote/read only/setuid/devices/port=33285/public/
vers=2/proto=udp/xattr/dev=4700005 on Sun Nov 26 20:13:10 2006
# xlsmounts
  PHYSICAL DEVICE     LOGICAL DEVICE      FS    PID         ADDR Mounted on
  /dev/dsk/c0d0p0     /dev/dsk/c0d0p6  ext2fs   3429 /linux

Linux ext2/ext3 read-only filesystem mounts from Solaris (mount/unmount) is also available with ext2fs. For Solaris 10, ext2fs supports extended partitions.

  1. Obtain the ext2fs.tar.gz file for your version of Solaris. Note that this software is not supported and may contain bugs. Use at your own risk.

  2. Untar file "gzcat ext2fs*.tar.gz | tar xvf -", and either rebuild from source or use the included pre-built binaries (easiest).

  3. Become root and install the files by running "./getext2fs" as root from the source directory downloaded above.

  4. Make your mount point. For example: "mkdir /linux"

  5. Find your Linux partition and try and mount it. For SCSI, mount it similar to this:
    /usr/sbin/mount -r -F ext2fs /dev/dsk/c0t0d0p1 /linux
    For ATAPI, mount it similar to this (no "t0"):
    /usr/sbin/mount -r -F ext2fs /dev/dsk/c0d0p1 /linux
    "c0d0p1" indicates fdisk partition 1 (2nd partition) on disk 0 of ATAPI controller 0.
    For an extended partition and ATAPI, it might look like this:
    /usr/sbin/mount -r -F ext2fs /dev/dsk/c0d0p2:1 /linux
    where p2 means the extended partition (type 0x05) is partition 2 (out of 1-4) and ":1" is the 2nd extended partition (:0 would be the first extended partition). See the question above on mounting DOS filesystems and the question below on decoding /dev/dsk/c* device names.

  6. If you installed the ext2fs correctly and specified the correct partition, you should see something like this from mount, modinfo, and ls. (My Linux partition is on the 2nd disk, 3rd partition.)
    # mount | grep /linux
    /linux on /dev/dsk/c0d1p2 read only/setuid/dev=1980052 on Sat Mar 31 14:57 2001
    # modinfo | grep ext2fs
    186 fe9688f1   5e98  19   1  ext2fs (Linux Second Extended Filesystem)
    # ls /linux
    bin         etc         lib         proc        sbin        tmp
    boot        home        lost+found  root        var         usr
    dev         include     mnt

  7. Once you found and mounted the correct Linux partition, add and add an entry to /etc/vfstab similar to one of the following. For SCSI, it might look like this:
    /dev/dsk/c0t0d0p1 - /linux ext2fs - no ro
    For ATAPI, it might look like this (no "t0"):
    /dev/dsk/c0d0p1 - /linux ext2fs - no ro
    (Use "yes" instead of "no" if you want it mounted automatically at boot).
    For an extended partition and ATAPI, it might look like this:
    /dev/dsk/c0d0p2:1 - /linux ext2fs - no ro
    where p2 means the extended partition (type 0x05) is partition 2 (out of 1-4) and ":1" is the 2nd extended partition (:0 would be the first extended partition).

  8. Repeat for other Linux filesystems, if desired.

Once you mount a ext2fs filesystem, you can execute Linux programs using lxrun (see the question on lxrun, above).

You can also backup a ntfs filesystem partition with ntfsclone. For example, here's how I backup the NTFS partition on my laptop to a removable hard drive or NFS filesystem:

nice ntfsclone --save-image /dev/dsk/c0d0p1 -o - 2>ntfsclone.log \
	| bzip2 -c >/mnt/backup-drive/ntfs-partition.img.bz2
Other ntfs tools in FSWfsmisc are: ntfscp, ntfslabel, ntfsresize, ntfsundelete, ntfscat, ntfscluster, ntfscmp, ntfsfix, ntfsinfo, & ntfsls.

For further information, see the ext2fs(7fs) and mount_ext2fs(1m) man pages you installed above.

Paul Floyd has ext2fs drivers for Solaris 7, 8, 9, and 10 at His webpage also has partition tools to resize and edit UFS partitions.

The OpenSolaris Ext3 Project seeks to add e2fs/e3fs filesystem support. See

[Thanks to Moinak Ghosh for FSWfsmisc (Solaris 10 and OpenSolaris), Paul Floyd for the Solaris 9 and 10 ports, and Mike Sullivan for the Solaris 8 port. Neither I nor they take any responsibility for errors with this unsupported software.]

(9.25) What are some books on Windows NT/Solaris integration?

The best book is, IMHO: David Gunter, Steven Burnett, and Lola Gunter, Windows NT and UNIX Integration Guide (Osborne McGraw-Hill, 1997), ISBN 0-07882395-1)

Also see the question above on SAMBA.

(9.26) How can I view MS Word files in Solaris?

Multiple applications support viewing MS Word files. None are perfect, as MS Word file format is a trade secret and changes constantly.

StarOffice, produced by a German subsidiary of Sun, supports MS Word, basic PowerPoint, Excel files, and other formats. StarOffice 7 is available for US $79.95 at computer stores and http://www.Sun.COM/staroffice/   StarOffice is my preferred word processor because it's available on multiple platforms, including Solaris x86, because it has a familiar MS Office-type interface. Educational (.EDU-affiliated) individuals can obtain StarOffice and a number of other software packages via the EduSoft program for free. See "Individuals" at

Open Office, an open-source spin-off from StarOffice, is free. It doesn't contain some components of Star Office (such as some fonts, macros, and clip art and a better spell-checker), but is perfectly acceptable for casual use. Solaris x86 binaries are available, as are SPARC, Windows, Linux and Apple Mac OSx.

AbiWord is also available for Solaris x86. AbiWord only does word processing, but I understand it has all the basic functionality. I have no personal experience with it however. It's available in source form only, so you have to build it yourself (download the gcc compiler). See the question below on building Abiword for Solaris.

Corel WordPerfect 8, although getting a little "long in the tooth" (outdated), it is still available. WordPerfect for UNIX supports WordPerfect, Word (old and new), HTML, RTF, FrameMaker, Applix, and several other document formats. Price varies and it's not cheap. There's no Sparc Intel binary available, but some people run Linux Intel binary on Solaris using lxrun software (see elsewhere in this fax). See

The VistaSource's Anyware Office suite can read Word files, among other formats, as above, and comes with a spreadsheet and other applications. I still prefer WordPerfect for word processing, but Applix Office offers a broader array of applications. Applix Office is also getting "long in the tooth." See

You can also try wv (free), which converts Word 8 (Office 97), but not older, Word files to HTML. WordView is available in source form (mostly Perl and some C) from

For the above software, more complicated Word format files cannot be converted, especially those saved with "Quick Save" enabled. Be aware that these office suites seem to require systems with 128MB of memory or more to perform reasonably (in my experience).

Finally, you CAN'T use Sun's PC File Viewer. It's available (and free) only for the SPARC-resident Solaris 2.6 PC File Viewer is Sun's relabeled version of Inso Corp.'s ( QuickView Plus. See http://www.Sun.COM/desktop/products/software/pcviewer.html

(9.27) Where can I get Mozilla Firefox, or other web browsers for Solaris x86?

Mozilla Firefox (web browser) and Mozilla Thunderbird (email) comes with Solaris 10 and above. "Bleeding edge" releases of Firefox and Thunderbird are available from and For troubleshooting tips with Solaris Mozilla, see

(9.28) How do I setup Xprint for Mozilla?

Some builds of Mozilla for Solaris (unfortunately) require a Xprint server to be running before you can print from Mozilla. This is true if you get a message saying no Xprint servers were found when you try to print. To enable Xprint, I added these lines in my .profile shell initialization file:

MYXPRINTDISPLAY=1956 # Random unused port--change if not working.
/usr/openwin/bin/Xprt :$MYXPRINTDISPLAY & # Exits if already running on display
XPSERVERLIST="localhost:$MYXPRINTDISPLAY" # Let Mozilla know the display #
Also, change default-printer-resolution from 300 to 600 (or higher) in file /usr/openwin/server/etc/XpConfig/C/print/attributes/document if the printer output is too small.

(9.29) Can I mount other ufs disks, say from BSDi/FreeBSD, and vice versa?

Maybe. First, although Solaris, BSDi, FreeBSD, and NetBSD share a common-heritage file system, the Berkeley-style ufs, Solaris has made extensions. The 32-bit UID field has been modified in Solaris to be a pointer to a parallel "Shadow inode" with Solaris ACL information. Also, the superblock has an additional inode field in Solaris and 2 fields have different byte swappings.

Reportedly, you can mount, say, zip disks from FreeBSD, on Solaris by doing a fsck on them before mounting. Fsck makes these fields Solaris- compatible. Your mileage may vary and you should test this (in both directions) before trying this on live data.

(9.30) How can I use a disk partition on Solaris 2.x which was previously dedicated to MS Windows 9x/ME/NT/2K/XP/2003 (or other OS) as dual boot?

On Solaris 2.x, use fdisk to find your disk partition table. For example, on an ATAPI drive,
# fdisk /dev/rdsk/c0d0p0
would show something like the following:

Total disk size is 524 cylinders
Cylinder size is 16065 (512 byte) blocks
Partition   Status    Type          Start   End   Length    %
=========   ======    ============  =====   ===   ======   ===
1                     Solaris           0   260     261     50
2           Active    Solaris         261   522     262     50
Where "Partition 1" was used for Windows 95. It was deleted and recreated with "Solaris" type.

Make a ufs filesystem on the partition. (You can not subdivide this fdisk partition into Solaris slices). For example,
# mkfs -F ufs /dev/rdsk/c0d0p1 4192965
where number 4192965 = 261 * 16065 is the total number of blocks on this partition, calculated as the cylinder length on this partition (261 from the above partition table) times the cylinder size (16065 blocks as shown in the header of the partition table.)

Mount the filesystem as usual. For example:
# mount /dev/dsk/c0d0p1 /export/home

[Thanks to Michael Wang. Reference: Sun Microsystems INFODOC ID: 13142]

(9.31) How can I convert a DOS/Windows text file to a Unix text file?

Use these Solaris commands:
dos2unix <dosformatfile> <unixformatfile>
unix2dos <unixformatfile> <dosformatfile>
The former removes the ^M and ^Z characters and the latter adds them. See man dos2unix and man unix2dos for details.

(9.32) Can VMware be used with Solaris x86?

Yes. VMware is commercial software to allow one to boot and use multiple operating systems at the same time, such as Linux and Windows 2000. This is done by creating a "virtual machine" for each OS. VMware provides graphical (VGA/SVGA) and X display capabilities. For networking, VMware provides for a "virtual disk" for the client O/S. It also can provide access to the floppy, CD-ROM, a virtual NIC and a virtual sound blaster 16. Note, the CD-ROM is a "virtual" ATAPI CD-ROM. Networking can be either host-based (private IP space and TCP/IP + SMB between the host O/S and the client O/S), or bridged (client uses an address on the actual network, host's NIC is bound to two or more IP addresses).

Update 9/2004: Peter Galvin has written an article "Solaris 10 x86 on VMware" in the October 2004 issue of Sys Admin,

VMware doesn't have documentation on installing Solaris x86, but you can use these notes instead:

Please read the other HOWTOs on the VMware site, before installing Solaris x86. My install of version 7 on the dual PII 300 took about 1 hour. I have tested Solaris x86 version 7 (11/99 release) with VMware 2.0.1 with a Linux host. The host is a dual PII/300 with 128 MB of RAM. Solaris under VMware seems stable (it has been up for days). The host was setup with Linux (RedHat 6.2, patches, and 2.2.16). VMware was installed and bridged networking was enabled. Bridged networking allows the virtual machine to appear as a host on the local LAN. The CDROM, Floppy and virtual NIC were enabled.

  1. Create a virtual disk for Solaris using VMware. I used 1GB on a free partition. When creating a virtual machine, VMware will ask you to select the guest OS type. Since Solaris is not currently a selection, use Windows 98. That has seemed to work best for most folks.`
  2. Insert the Solaris x86 boot floppy and boot CD-ROM in the host computer. Start vmware and "power on" the virtual machine. The virtual machine should boot from the floppy and run the Solaris hardware detection program.
  3. Follow the normal Solaris install instructions. Let Solaris find the floppy, CDROM, and virtual NIC. Partition your virtual disk (I let Solaris do it for me). Install Solaris normally.
  4. I am using my virtual Solaris as a test NISPLUS server so I enabled NISPLUS and set the server to point to this machine. Following install, I setup NISPLUS on the virtual Solaris and all seems functional.
  5. Setup X as VGA. It appears to work fine. However, I typically use my virtual Solaris in text mode and export xterms to my base O/S (Linux). Someone suggested that you try a Linux or other XF86 server but I have not tried this. The vmware server for Linux may work. If anyone does this could they please mail me instructions on what they did?
  6. Setup files in /etc including /etc/hosts, etc. For example I changed /etc/netmasks:

Problems and issues noted:

  1. Sometimes the Solaris install is very unhappy with the VirtualFloppy drive. Just disable it for your Solaris config if it gives you grief. One of the symptoms of this may be a VMware panic dialog box during the install.
  2. I recommend you either a) Setup Solaris with an FTP Server ASAP or b) Insure you have an FTP server on the same network. This is the quickest way to get files in and out of a virtual machine -- especially until you get DNS working properly.
  3. Solaris x86 currently does not use the HLT instruction in the idle loop (a post indicated this will change in the future). This causes the virtual machine to try to use 100% of your CPU (or on an SMP machine, 100% of a single CPU as VMware only emulates an UP machine). This makes a virtual Solaris only really usable as a server on an SMP machine.
  4. A "volcheck" followed by a "mount" resulted in a strange "unimplemented" error from VMware. However, the CDROM appeared to be properly mounted.
  5. There are no VMware tools for Solaris x86. There is no VMware X server.
  6. Since there are no VMware tools for Solaris, the best resolution/color combo you can get out of the box is 640x400, 16 colors. However, you can use remote access programs (VNC is highly recommended) to set up a console "server" that you can connect to with a remote "client". I have used VNC to access my Solaris VM at any resolution and a color depth of 32. Accessing the Virtual Machine via VNC not only looks better because of the color and resolution, it is faster than using Solaris the native way it comes out of the box.

Earl Fernandez has posted an alternate solution using a third-party video driver by His solution is posted at I have a report (and I believe) that his "Cavaets" #2 and #3 are false.

Andrew Wansink mentions that QEMU, a free VMWare clone, is available for Solaris x86 at You will need to download the source and apply the patch from: You will also need the network drivers from: The only real trouble he had was getting the network driver installed, Run /usr/local/qemu/bin/qemu -hda solaris.img -fda DU.img and hit ESC before the boot starts. The Solaris DCA then pulls in the drivers from the floppy image.

Xen is an open source virtual machine emulator from Cambridge. It is faster than VMWare, and free, but requires modifications of the guest operating system. Solaris x86 does not support it, but may in the future. According to a CNET article on 2/18/2006, Sun's John Fowler said "We think the open-source virtual hypervisor is the way to go." Future hardware modifications by Intel ("Vanderpool Technology" or VT) and AMD may permit Solaris to run with no modifications. See

[Thanks to W. Wade Hampton, Earl Fernandez, Patrick Allmond, and Ian Fitchet.]

(9.33) Is Solaris on Intel really "Slowaris"--slower than other Intel-based operating systems?

By default, the other free OS's aren't SMP very capable out of the box--Solaris is. Solaris handles multiple processes and threads easily in a SMP system. So, one single CPU system, Solaris has a fair amount on un-necessary overhead--which slows it down a bit.

Because the other OSes don't have this capability, or at least don't use it to full advantage, they have a bit of a performance advantage on a single CPU machine. This advantage disappears when you start adding processors.

So, I think Slowaris is a little bit too far, but it is at a bit of a performance disadvantage. But on an 2GHz processor, who cares?! Odds are you'll just be idling very quickly!

Update: a benchmark test by Tony Bourke ran Solaris x86 9 against Linux 2.4 (RedHat 9). He concluded Solaris x86 and Linux performed the same, except with web operations, where Linux was about twice as fast. Both systems had the latest updates. See

[Thanks to Rich Teer]

(9.34) How can I remove (uninstall) Solaris from my hard drive?

If you have another Operating System installed, boot into the other operating system (usually Windows or Linux). Select the current (non-Solaris) partition as the "Active" partition. Reboot. If the computer boots into the other operating system without the Solaris boot menu, you can safely delete the Solaris partition.

If you have no other Operating System installed, simply install another operating system over Solaris on the hard drive. Select "Entire disk" or similar during the installation.

(9.35) I can install Linux on a system with Solaris x86, but why can't I boot it?

One possibility is because Linux kernels with UFS filesystem support will rearrange the numbering of the extended partitions in certain circumstances. Look at the following partition map reported by Linux during booting:

        Partition check:
        hda: hda1 hda2 <solaris: [s0] hda5 [s1] hda6 [s2] hda7 [s7] hda8 >
                hda3 hda4 < hda9 hda10 hda11 >

Partition number 4 (hda4) is an "extended" partition, containing three logical partitions used by Linux. In this particular case, these logical partitions were created by the Red Hat Linux 7 installer, and they hold the Linux root filesystem, swap space, and a filesystem mounted on /home.

The kernel used by the installer did not include UFS support, so it perceived /dev/hda4 to logically contain hda5, hda6, and hda7, and it recorded these settings with LILO and /etc/fstab.

However, when the new Linux installation booted for the first time, it assigned hda5 to a Solaris partition, then tried to boot with it as the root filesystem. Under Red Hat Linux 7 with the 2.2.16 kernel, this generates the following error:

        Invalid session number or type of track
        Kernel panic: VFS: Unable to mount root fs on xx:xx

To boot this system, provide LILO with something like "linux single root=/dev/hda9" to force the proper selection of the root filesystem (or you could also boot from the install CD with options like "linux single root=/dev/hda9 initrd="), then modify the root filesystem parameter in /etc/lilo.conf to reflect the change (and run the "lilo" command after modifying the file):


Under most Linux distributions, you must also modify /etc/fstab to reflect the new partition layout. Red Hat Linux 7 now uses "labels" in /etc/fstab (which are maintained with the "e2label" command), which obviates the need to adjust /etc/fstab in this case (you still may need to adjust the swap partition in /etc/fstab, though).

If the extended partition has a lower number than the Solaris partition, this renumbering won't occur.

[Thanks to Charles J. Fisher]

(9.36) Empty

(9.37) What are the /dev/dsk/ disk naming conventions for x86 disks?

The naming convention comes from AT&T SysV/386:

For the first part of the name, e.g. c0t0d2:

The precise naming for IDE disks and ATAPI cdroms has varied through Solaris x86 releases, and is different on SPARC. On x86, the 't' part is often missing for IDE disks as IDE doesn't support multiple targets (the Master is the single target and it drives the Slave too, so these look more like SCSI LUNs). However, the IDE ATAPI interface looks more like SCSI, so you can find the Master disk has an IDE type name, and the ATAPI slave CDROM has a SCSI type of name. On SPARC, I think both IDE disks and ATAPI CDROMs are named like SCSI disks. This area is a bit of a mess, sadly.

The pcfs filesystem also has a pseudo naming scheme it uses. You always use the p0 (whole disk) device, but you append more info which enables pcfs to find the right PC filesystem on the disk. So, p0:1 is the first DOS drive on the disk, which will be the primary DOS partition if there is one or the first DOS drive in the Extended DOS partition. p0:2 is the second DOS drive -- if there was a primary DOS partition, p0:2 will be the first DOS drive in the Extended DOS partition, otherwise it's the second DOS drive in the Extended DOS partition. There's a hack in there in to cope with multiple primary DOS FDISK partitions too, but such a disk is strictly illegal. p0:boot is the Solaris x86 boot partition if you have one, which is like a primary DOS partition but with a different partition type.

[Thanks to Andrew Gabriel]

(9.38) What is OpenSolaris and what distributions are available?

OpenSolaris is open source Solaris, based on the OSI-approved Common Development and Distribution License (CDDL). It seeks to emulate the Linux distribution model. Some Solaris software is still closed source (see the Roadmap on the OpenSolaris site). See for more information.

Here's the distributions I know about:

(9.39) How do I compile Abiword for Solaris?

Abiword is a basic word processor available from It can be compiled with Sun's cc and GNU gcc with the following instructions. The 2.2 and 2.4 versions compile on Solaris, but not 2.6.

Compiling with gcc (gcc-3.4.4)

Compiling with Sun cc

Same as above, but no need to set either the environment or make the change with pthreads. It is necessary to make the other changes I have listed above.
./configure --with-libiconv="path_of_libiconv" -with-libpng="path_of_libpng"

gmake && gmake install should install abiword.

[Thanks to Nagesh Subbanna]

This FAQ is provided "as is" in the hope that it will be useful, but WITHOUT ANY WARRANTY, to the extent permitted by law; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

End of the Solaris x86 FAQ.
Maintained by Dan Anderson, San Diego, California, USA.


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.