Introduction:
Before modern cloud-native systems, enterprise infrastructure was powered by UNIX servers running on proprietary RISC hardware. One of the most influential platforms of that era was Sun Microsystems’ SPARC architecture running Solaris.
Solaris 9 (SunOS 5.9) represents a mature generation of classic UNIX — widely deployed in:
Before modern cloud-native systems, enterprise infrastructure was powered by UNIX servers running on proprietary RISC hardware. One of the most influential platforms of that era was Sun Microsystems’ SPARC architecture running Solaris.
Solaris 9 (SunOS 5.9) represents a mature generation of classic UNIX — widely deployed in:
- Banking systems
- Telecom infrastructure
- Government data centers
- Enterprise application servers
- Academic research labs
This guide walks you through building a complete legacy UNIX lab environment including:
- SPARCstation 5 emulation
- Proper Sun disk labeling
- Solaris Web Start installation
- Bridged networking (tap0 → virbr0)
- Static IP configuration
- SSH remote administration
1. Prepare Ubuntu Host
Update System
Update System
# apt update
# apt list --upgradable
Install Required Packages
# apt list --upgradable
Install Required Packages
# apt install qemu-system-sparc qemu-utils libvirt-daemon-system bridge-utils -y
Verify QEMU:
Verify QEMU:
# qemu-system-sparc --version
Expected:
Expected:
QEMU emulator version 8.x
Start libvirt (creates virbr0):
Start libvirt (creates virbr0):
# systemctl enable libvirtd
# systemctl start libvirtd
# ip a | grep virbr0
# systemctl start libvirtd
# ip a | grep virbr0
2. Create Solaris Virtual Disk
# qemu-img create -f qcow2 /aix/image/disk-image/sparc.qcow2 20G
3. Create TAP Interface (tap0 → virbr0)
# ip tuntap add dev tap0 mode tap
# ip link set tap0 up
# ip link set tap0 master virbr0
# bridge link
You should see:
# ip link set tap0 up
# ip link set tap0 master virbr0
# bridge link
You should see:
tap0 master virbr0
4. Boot Solaris 9 Installer (DVD)
# qemu-system-sparc \
-M SS-5 \
-m 512 \
-cpu "Fujitsu MB86904" \
-drive file=/aix/image/disk-image/sparc.qcow2,format=qcow2,if=scsi \
-drive file=/aix/image/disk-image/SOL_9_SPARC_DVD.iso,media=cdrom,readonly=on \
-netdev tap,id=net0,ifname=tap0,script=no,downscript=no \
-device lance,netdev=net0,mac=52:54:00:11:22:33 \
-boot d \
-nographic
-M SS-5 \
-m 512 \
-cpu "Fujitsu MB86904" \
-drive file=/aix/image/disk-image/sparc.qcow2,format=qcow2,if=scsi \
-drive file=/aix/image/disk-image/SOL_9_SPARC_DVD.iso,media=cdrom,readonly=on \
-netdev tap,id=net0,ifname=tap0,script=no,downscript=no \
-device lance,netdev=net0,mac=52:54:00:11:22:33 \
-boot d \
-nographic
Key Options and Their Roles
qemu-system-sparc ---> Starts QEMU in SPARC architecture mode.
-M SS-5 ---> Emulates a SPARCstation 5 machine (sun4m architecture), required for Solaris compatibility.
-m 512 ---> Allocates 512 MB of RAM for smoother installation and operation.
-cpu "Fujitsu MB86904" ---> Specifies a SuperSPARC-compatible CPU to match Solaris 9 requirements.
Disk Drives:
-drive file=sparc.qcow2,format=qcow2,if=scsi → Virtual SCSI hard disk for Solaris installation.
-drive file=SOL_9_SPARC_DVD.iso,media=cdrom,readonly=on → ISO for installing Solaris 9.
Networking:
-netdev tap,id=net0,ifname=tap0,script=no,downscript=no → Uses TAP device tap0 for bridged network.
-device lance,netdev=net0,mac=52:54:00:11:22:33 → Adds LANCE NIC with fixed MAC address, supported by Solaris 9.
-boot d ---> Boots from CD-ROM (installer). After installation, change to -boot c to boot from the hard disk.
-nographic ---> Runs VM in terminal-only mode (no GUI), useful for servers or SSH setup.
Output:
qemu-system-sparc: type is NULL
qemu-system-sparc: type is NULL
Configuration device id QEMU version 1 machine id 32
Probing SBus slot 0 offset 0
Probing SBus slot 1 offset 0
Probing SBus slot 2 offset 0
Probing SBus slot 3 offset 0
Probing SBus slot 4 offset 0
Probing SBus slot 5 offset 0
Invalid FCode start byte
CPUs: 1 x FMI,MB86904
UUID: 00000000-0000-0000-0000-000000000000
Welcome to OpenBIOS v1.1 built on Dec 15 2025 12:33
Type 'help' for detailed information
Trying cdrom:d...
Not a bootable ELF image
Loading a.out image...
Loaded 7680 bytes
entry point is 0x4000
bootpath: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@2,0:d
switching to new context:
SunOS Release 5.9 Version Generic 32-bit
Copyright 1983-2002 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@0,0 (sd0):
Corrupt label; wrong magic number
Configuring /dev and /devices
NOTICE: Couldn't set value (../../sun/io/audio/sada/drv/audiocs/audio_4231.c, Line #1748 0x00 0x88)
audio may not work correctly until it is stopped and restarted
Using RPC Bootparams for network configuration information.
Skipping interface le0
Searching for configuration file(s)...
Search complete.
At Solaris shell:
format
Select disk:
Select disk:
0. c0t0d0 <drive type unknown>
Define geometry:
Define geometry:
Cylinders: 27304
Heads: 24
Sectors/track: 64
Heads: 24Sectors/track: 64
Label disk:
format> label
Verify partitions:
Verify partitions:
Part 0 root
Part 1 swap
Part 2 backup
Part 6 usr
Exit:
Part 1 swap
Part 2 backup
Part 6 usr
Exit:
format> quit
6. Install Solaris 9
Start installer if required:
Start installer if required:
# /sbin/suninstall
During installation choose:
During installation choose:
Select a Language
0. English
Select a Locale
0. English (C - 7-bit ASCII)
What type of terminal are you using?
12) X Terminal Emulator (xterms)
This information will be used to configure:
Network
Kerberos Security
Name Service
Date and Time
Root Password
Power Management
Media:
1. CD/DVD
Types of install available:
1. Default Install
2. Custom Install
File System operations:
1. Print the current partition table
2. Modify a disk's partition table
3. Return to beginning
4. Done
The following items will be installed:
Solaris Operating Environment: Solaris 9 Software
Solaris Software Group: Entire Group
64-Bit Selection: No
Root Device: c0t0d0
File Systems:
Installing Additional Software
|-1%--------------25%-----------------50%-----------------75%--------------100%|
Pausing for 30 seconds at the "Summary" screen. The wizard will continue to
the next step unless you select "Pause". Enter 'p' to pause. Enter 'c' to
continue. [c] c
Pausing for 90 seconds at the "Reboot" screen. The wizard will continue to
the next step unless you select "Pause". Enter 'p' to pause. Enter 'c' to
continue. [c]
syncing file systems... done
rebooting...
7. Boot from Installed Disk
Remove ISO and boot:
Remove ISO and boot:
# qemu-system-sparc \
-M SS-5 \
-m 512 \
-cpu "Fujitsu MB86904" \
-drive file=/aix/image/disk-image/sparc.qcow2,format=qcow2,if=scsi \
-netdev tap,id=net0,ifname=tap0,script=no,downscript=no \
-device lance,netdev=net0,mac=52:54:00:11:22:33 \
-boot c \
-nographic
-M SS-5 \
-m 512 \
-cpu "Fujitsu MB86904" \
-drive file=/aix/image/disk-image/sparc.qcow2,format=qcow2,if=scsi \
-netdev tap,id=net0,ifname=tap0,script=no,downscript=no \
-device lance,netdev=net0,mac=52:54:00:11:22:33 \
-boot c \
-nographic
8. Configure Static IP in Solaris
Identify interface:
Identify interface:
# ifconfig -a
Output:
Output:
le0
Remove DHCP:
Remove DHCP:
# rm /etc/dhcp.le0
Assign Static IP:
Assign Static IP:
# ifconfig le0 plumb
# ifconfig le0 192.168.122.50 netmask 255.255.255.0 up
Set Gateway:
# ifconfig le0 192.168.122.50 netmask 255.255.255.0 up
Set Gateway:
echo 192.168.122.1 > /etc/defaultrouter
DNS:
DNS:
echo "nameserver 192.168.122.100" > /etc/resolv.conf
Reboot and verify.
Reboot and verify.
9. Enable SSH Server
Check SSH packages:
Check SSH packages:
# pkginfo | grep -i ssh
Start SSH:
/etc/init.d/sshd start
Test from Ubuntu:
Test from Ubuntu:
ssh root@192.168.122.50
10. Boot the SPARC VM from CD-ROM
10.1 Make sure your VM boots from the Solaris 9 ISO:
# qemu-system-sparc \
-M SS-5 \
-m 512 \
-cpu "Fujitsu MB86904" \
-drive file=/aix/image/disk-image/sparc.qcow2,format=qcow2,if=scsi \
-drive file=/aix/image/disk-image/SOL_9_SPARC_DVD.iso,media=cdrom,readonly=on \
-netdev tap,id=net0,ifname=tap0,script=no,downscript=no \
-device lance,netdev=net0,mac=52:54:00:11:22:33 \
-boot d \
-nographic
-boot d ensures the VM boots from CD-ROM (Solaris installer).
-nographic runs the console in text mode.
After the system starts, log in as root (or installer if during installation) and make sure the CD-ROM is mounted.
10.2: Mount the CD-ROM (if not already mounted)
Solaris usually mounts the CD-ROM under /cdrom. Check with:
mount | grep cdrom
If it’s not mounted, manually mount it:
# mkdir -p /cdrom
# mount -F hsfs -o ro /dev/dsk/c0t6d0s0 /cdrom
c0t6d0s0 is the typical Solaris device for the CD-ROM; check with format if it differs.
10.3: Install SSH packages
Install the SSH server packages included with Solaris 9:
# pkgadd -d /cdrom/solaris_9/Product SUNWsshdr
# pkgadd -d /cdrom/solaris_9/Product SUNWsshr
SUNWsshdr → SSH server header files and support files.
SUNWsshr → SSH server daemon.
Follow the prompts and accept defaults for a standard installation.
10.4: Verify SSH installation
Once installed, check the SSH daemon:
# svcs -a | grep ssh
If the service is not running, start it manually:
/etc/init.d/sshd start
Test SSH locally:
# ssh localhost
If it connects, your SSH server is working.
Conclusion:
- Using QEMU on Ubuntu, you recreated a complete Solaris 9 SPARC server with authentic disk geometry and production-style networking — all without physical SPARC hardware.
- This environment is perfect for UNIX learning, legacy application testing, and enterprise lab simulations.