449 lines
14 KiB
Plaintext
449 lines
14 KiB
Plaintext
Linux+Solaris HOWTO
|
||
Max Berger <mailto:max.berger@xslt.de>
|
||
|
||
v0.8-$Revision: 1.1 $, $Date: 2000/04/17 23:48:03 $
|
||
|
||
Describes how to use Linux (x86) and Solaris (x86) together on one
|
||
machine
|
||
|
||
______________________________________________________________________
|
||
|
||
Table of Contents
|
||
|
||
|
||
1. Introduction
|
||
|
||
1.1 Why Solaris?
|
||
1.2 Things covered in this HOWTO
|
||
1.3 Referenced versions
|
||
1.4 Warning
|
||
|
||
2. Preparing your Hard Drive
|
||
|
||
2.1 Traditional PC partitions
|
||
2.2 Solaris partition labels
|
||
2.3 Hard disk space
|
||
2.4 Quick check list
|
||
|
||
3. Preparing Linux
|
||
|
||
3.1 Building a new kernel
|
||
3.2 Preparing your boot loader
|
||
|
||
4. Installing Solaris
|
||
|
||
4.1 Solaris interactive
|
||
4.2 Web-Start
|
||
4.3 Getting GNU-tools
|
||
|
||
5. Boot managing
|
||
|
||
5.1 Using the Solaris boot manager
|
||
5.2 Using lilo
|
||
5.3 Using grub
|
||
|
||
6. Sharing data
|
||
|
||
6.1 Using a shared partition
|
||
6.2 Alternative ways
|
||
|
||
7. Running foreign binaries
|
||
|
||
7.1 Linux binaries on Solaris
|
||
7.2 Solaris binaries on Linux
|
||
|
||
8. Finding additional info
|
||
|
||
9. Credits and legal stuff
|
||
|
||
9.1 Credits
|
||
9.2 Questions, comments, suggestions
|
||
9.3 License
|
||
|
||
|
||
______________________________________________________________________
|
||
|
||
|
||
1. Introduction
|
||
|
||
1.1. Why Solaris?
|
||
|
||
This is actually a good question. Why use Solaris, when you can have
|
||
Linux? Solaris is a commercial system, the hardware support is
|
||
scarce. But if you are reading this you have probably already decided
|
||
on using Solaris. If not, here are some reasons:
|
||
|
||
· I have a part-time job administrating Solaris machines. It is of no
|
||
use that I learning all the neat command parameters and nifty Linux
|
||
tricks at home, when I can't use them on my Solaris-Box.
|
||
|
||
· Sun was giving away Solaris for what they call ``Shipping and
|
||
handling cost only'' for some time. They might do that again. And
|
||
almost-free-of-charge is always a good deal.
|
||
|
||
· Another reason might be that you like CDE.
|
||
|
||
1.2. Things covered in this HOWTO
|
||
|
||
This HOWTO tries to help you install Solaris 7 or 8 on an x86 computer
|
||
already running Linux. The main targets are
|
||
|
||
· not to destroy any data, see section ``Preparing your Harddrive''
|
||
|
||
· To make Linux and Solaris coexist (boot manager), see section
|
||
``Boot-Managing''
|
||
|
||
· To share data between Linux and Solaris, as described in section
|
||
``Sharing Data''
|
||
|
||
1.3. Referenced versions
|
||
|
||
The reference versions used while creating this document where:
|
||
|
||
· Solaris 7 x86 (= Solaris 2.7 / SunOS 5.7)
|
||
|
||
· Solaris 8 x86 (= Solaris 2.8 / SunOS 5.8)
|
||
|
||
· Linux 2.2.14, 2.3.99-pre3
|
||
|
||
· fdisk v2.10f
|
||
|
||
The information might apply to other versions of the software, or
|
||
it might all be different.
|
||
|
||
1.4. Warning
|
||
|
||
Please back up any data before messing with your system! A lot of the
|
||
things described in this document may result in excessive data loss!
|
||
I am not responsible for any data loss! See also section ``Legal
|
||
stuff''
|
||
|
||
2. Preparing your Hard Drive
|
||
|
||
To Prepare your hard-drive for Solaris, you need to know about
|
||
standard PC partition tables and about Solaris disk slices. In this
|
||
HOWTO I talk about single-disk systems only, but all the information
|
||
should also apply to a multi-disk environment.
|
||
|
||
2.1. Traditional PC partitions
|
||
|
||
The standard partition-table has only 4 entries. The entries important
|
||
for us are the following:
|
||
|
||
A Primary Partition
|
||
Takes up one entry, and contains exactly one partition. A waste
|
||
of resources, but the only partition you can boot from!
|
||
|
||
An extended Partition
|
||
Takes up one entry, but can contain multiple DOS, Linux, and
|
||
other partitions
|
||
|
||
A Solaris Partition
|
||
Takes up one entry, but can contain multiple Solaris Partitions
|
||
|
||
To find out what partitions are present on your system, use the fdisk
|
||
program. Partitions numbers 1 to 4 (hda1..4, sda1..4, ...) are the
|
||
ones in your partition table.
|
||
|
||
2.2. Solaris partition labels
|
||
|
||
Solaris has its own partitioning scheme. It uses one entry in the
|
||
partition table, and this entry is and acts as this partition would be
|
||
the entire disk.
|
||
|
||
This virtual disk is then divided in up to 8 slices. The third slice,
|
||
s2, covers the whole virtual disk, so you actually have up to 7 slices
|
||
for Solaris.
|
||
|
||
Unfortunately, the Solaris partition entry has the same type as a
|
||
Linux Swap partition (82). Therefore, you should not have any Linux
|
||
swap partitions as primary partitions. Linux doesn't care about this,
|
||
but who knows what Solaris does?
|
||
|
||
Although the Linux fdisk program has some ``Sun disklabel'' support,
|
||
this doesn't seem to help any.
|
||
|
||
2.3. Hard disk space
|
||
|
||
Of course, Solaris needs disk space. The minimum installation of
|
||
Solaris 8 is about 300 MB. For the normal tools its about 700 MB, and
|
||
for a ``developer-system'' about 1 GB.
|
||
|
||
But this is only the space required for the base installation. You
|
||
might want to add a lot of GNU-Tools, and other stuff. And if you want
|
||
to share data between Solaris and Linux, this has to happen on the
|
||
Solaris partitions.
|
||
|
||
You might even think of sharing your home directories between Solaris
|
||
and Linux. As the time of this writing: Forget it! I messed up my home
|
||
directory doing so and I was very happy about my backup. See also
|
||
section ``sharing data''
|
||
|
||
2.4. Quick check list
|
||
|
||
Here's the quick check list. Make sure you:
|
||
|
||
· have used no more than 3 entries in your partition table
|
||
|
||
· have no Linux swap partitions as primary partitions
|
||
|
||
· Have at least 1 Linux ext2 partition as primary
|
||
|
||
· Have at least 1 GB unpartitioned space
|
||
|
||
3. Preparing Linux
|
||
|
||
|
||
|
||
3.1. Building a new kernel
|
||
|
||
Some people don´t like building a custom kernel. For those of you: you
|
||
must build your own kernel if you want to share data between Solaris
|
||
and Linux on one hard disk. If, however, you do not want to share
|
||
data, you are safe with your old kernel.
|
||
|
||
Here are your kernel options for ``Solaris compatibility'':
|
||
|
||
· Under code maturity:
|
||
|
||
Prompt for development drivers
|
||
Unfortunately UFS writing is still experimental.
|
||
|
||
· In file systems:
|
||
|
||
UFS file system support
|
||
UFS is the Solaris file system
|
||
|
||
UFS file system
|
||
write support" The only way to pass data to Solaris
|
||
|
||
partition types / Solaris
|
||
(x86) partition table support" Is needed for the slices within
|
||
your Solaris partition to be found.
|
||
|
||
Additional info about kernel building can be found in the Kernel-
|
||
HOWTO
|
||
|
||
3.2. Preparing your boot loader
|
||
|
||
Before messing with your boot loader, please make sure that you have
|
||
an emergency disk ready which enables you to boot your old system.
|
||
|
||
Unfortunately the Solaris install overwrites the master boot record
|
||
(MBR) and overwrites your old boot manager.
|
||
|
||
Fortunately, the Solaris boot manager is able to chain-boot. For this
|
||
to work you have to put your old boot loader (e.g. lilo) into the boot
|
||
sector of one primary Linux partition.
|
||
|
||
For lilo this means: look at your /etc/lilo.conf. Look for the boot=
|
||
line. If it is something like boot=/dev/hda1 everything is fine. But
|
||
if it´s something like boot=/dev/hda it points to the MBR. Please
|
||
change it to point to a primary Linux partition (e.g. boot=/dev/hda1)
|
||
|
||
A way to check if your boot-loader is chain-loadable is installing
|
||
lilo in to the MBR and trying to chain load your other boot-manager. I
|
||
used the following file called lilo.conf.mbr for this:
|
||
|
||
______________________________________________________________________
|
||
#lilo.conf.mbr
|
||
#Lilo in Master Boot Record doing nothing but chain-loading another lilo
|
||
boot=/dev/hda
|
||
root=/dev/hda5
|
||
install=/boot/boot.b
|
||
map=/boot/map
|
||
vga=ask
|
||
delay=50
|
||
other=/dev/hda1
|
||
label=lilochain
|
||
______________________________________________________________________
|
||
|
||
|
||
You can then run lilo -C lilo.conf.mbr to install lilo into your MBR.
|
||
And don´t forget to run lilo to have lilo in the boot sector of your
|
||
hard-drive.
|
||
|
||
If you reboot now, you should have a lilo-prompt. When you select
|
||
other this chain loads the old lilo, which in turn loads Linux.
|
||
|
||
4. Installing Solaris
|
||
|
||
4.1. Solaris interactive
|
||
|
||
|
||
Solaris 7
|
||
Solaris Interactive is on the first CD. Boot it, select Solaris
|
||
interactive
|
||
|
||
Solaris 8
|
||
On the Solaris 8 CDs the interactive installer is on the first
|
||
software CD. You don't need the install CD at all.
|
||
|
||
The Solaris installation itself is quite straight forward. One thing
|
||
that might be confusing is the partitioning. Solaris will automati
|
||
cally use all the free space on your hard disk, and create it's own
|
||
virtual disk in it. And when it comes to slicing up your virtual disk,
|
||
don´t forget to add space for Solaris/Linux exchange. A good place for
|
||
this is an extra /export/share partition.
|
||
|
||
Please Note: If you abort during the Solaris installation, the MBR of
|
||
your hard disk may already be overwritten and you may not be able to
|
||
boot from the hard disk at all.
|
||
|
||
4.2. Web-Start
|
||
|
||
I couldn't get Web-Start to work at all. Please mail me if you have
|
||
any experience using it.
|
||
|
||
However, once Solaris was installed, I had no problems adding web-
|
||
start-packages
|
||
|
||
4.3. Getting GNU-tools
|
||
|
||
Solaris standard installation doesn't even have a less command. Some
|
||
people recommend getting the Redhat Package Manager (RPM) for Solaris,
|
||
but the standard packaging tool will usually do it. You can find many
|
||
nice packages at http://www.sunfreeware.com The standard packages can
|
||
be used with pkgadd <package>, and the web-start packages with
|
||
java <packagewithoutclassextension>
|
||
|
||
5. Boot managing
|
||
|
||
5.1. Using the Solaris boot manager
|
||
|
||
When booting, the Solaris boot manager gives you all 4 primary
|
||
partitions for choosing which to boot from. If you had your boot
|
||
loader installed on the boot sector of a primary partition, everything
|
||
should be fine. Just boot from this partition, and Linux should come
|
||
up.
|
||
|
||
5.2. Using lilo
|
||
|
||
Now you have lilo as a secondary boot loader, but you want it to be
|
||
your primary boot loader again? No Problem. Lilo can easily chain boot
|
||
Solaris. Just add the appropriate other= lines to your lilo.conf
|
||
|
||
For testing, you should add the Solaris chain loading to the lilo in
|
||
your boot sector first. Then try chain loading lilo, Solaris, lilo,
|
||
Solaris, ... until you have enough of it. If this works, you should be
|
||
able to put lilo back into the MBR again.
|
||
However, Solaris might have messed up your partition table. This has
|
||
happened on my system after installation of Solaris 8. Lilo doesn't
|
||
like the new partition, nor does fdisk. I had no problems with
|
||
Solaris 7
|
||
|
||
5.3. Using grub
|
||
|
||
Unfortunately, I have no experience with grub booting Solaris. If you
|
||
do, please mail me!
|
||
|
||
6. Sharing data
|
||
|
||
6.1. Using a shared partition
|
||
|
||
If you have build your kernel with Sun disk label support and UFS
|
||
support as mentioned in section ``building your new kernel'', you are
|
||
now able to mount your Solaris partitions. During boot up, you should
|
||
get something similar to:
|
||
|
||
hda: [PTBL] [523/255/63] hda1 hda2 < hda5 hda6 hda7 hda8 > hda3 <Polaris: [s0]
|
||
hda9 [s1] hda10 [s2] hda11 [s3] hda12 [s6] hda13 [s7] hda14 >
|
||
|
||
|
||
Meaning (in this case): partition 3 (hda3) is a Solaris partition with
|
||
6 slices (s0,s1,s2,s3,s6,s7). They are mapped to Linux devices hda9 to
|
||
hda14.
|
||
|
||
Try mounting your Solaris partitions. When mounting UFS partitions,
|
||
you always have to add an -oufstype= argument, in this case
|
||
-oufstype=sunx86. So the command to mount a partition is something
|
||
like:
|
||
|
||
mount -oufstype=sunx86 /dev/hda14 /mnt
|
||
|
||
|
||
Now, test your partition. Please note: The write support on UFS parti
|
||
tions is very experimental. Please don't trust any data you write on
|
||
your UFS partitions!
|
||
|
||
If you want your Solaris partitions automatically mounted at boot
|
||
time, you can add a line like
|
||
|
||
/dev/hda14 /solaris ufs ufstype=sunx86 0 0
|
||
|
||
|
||
to your /etc/fstab
|
||
|
||
6.2. Alternative ways
|
||
|
||
And, of course there are always other ways of sharing data:
|
||
|
||
Floppy disk
|
||
I don't know which floppy disk file systems are supported by
|
||
Solaris. Do you? Mail me.
|
||
|
||
Network
|
||
Solaris knows NFS. Linux knows NFS. This might actually be the
|
||
best way of sharing data
|
||
|
||
7. Running foreign binaries
|
||
|
||
7.1. Linux binaries on Solaris
|
||
|
||
Is supposed to work using a program called ``lxrun''. I haven't got
|
||
around to testing it yet. See the Solaris web site for more
|
||
information.
|
||
7.2. Solaris binaries on Linux
|
||
|
||
Are as far as I know unsupported
|
||
|
||
H. Finding additional info
|
||
|
||
Here are some URI that might help you:
|
||
|
||
· Sun Freeware <http://www.sunfreeware.com>
|
||
My first stop for Solaris resources. Has many GNU-tools in binary
|
||
format ready to install.
|
||
|
||
· Sun Microsystems <http://www.sun.com>
|
||
|
||
Suns official web page
|
||
|
||
· Solaris Homepage <http://www.sun.com/Solaris>
|
||
|
||
· Solaris Hardware Compatibility List (HCL)
|
||
<http://soldc.sun.com/support/drivers/hcl/index.html>
|
||
|
||
· Solaris Online Documentation <http://docs.sun.com>
|
||
|
||
· My Website <http://www.xslt.de>
|
||
You will always find the newest version of this document somewhere
|
||
on this page
|
||
|
||
I. Credits and legal stuff
|
||
|
||
I.1. Credits
|
||
|
||
Thanks to Marcel Meyer for beta testing this HOWTO while installing
|
||
Solaris on his machine
|
||
|
||
I.2. Questions, comments, suggestions
|
||
|
||
Are always welcome. You can reach me via e-mail at max.berger@xslt.de
|
||
|
||
I.3. License
|
||
|
||
This document is copyrighted © by Max Berger. You may use and/or
|
||
modify it according to the Linux Documentation Project License (LDPL)
|
||
found at http://www.linuxdoc.org/COPYRIGHT.html.
|
||
|
||
According to the license you don't have to tell me, but I'd very much
|
||
like to know when you modify and/or republish this document.
|
||
|
||
Although the information given in this document is believed to be
|
||
correct, the author will accept no liability for the content of this
|
||
document. Use the tips and examples given herein at your own risk.
|
||
|
||
|
||
|