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:
|
|||
|
|
|||
|
<20> 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.
|
|||
|
|
|||
|
<20> 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.
|
|||
|
|
|||
|
<20> 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
|
|||
|
|
|||
|
<20> not to destroy any data, see section ``Preparing your Harddrive''
|
|||
|
|
|||
|
<20> To make Linux and Solaris coexist (boot manager), see section
|
|||
|
``Boot-Managing''
|
|||
|
|
|||
|
<20> 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:
|
|||
|
|
|||
|
<20> Solaris 7 x86 (= Solaris 2.7 / SunOS 5.7)
|
|||
|
|
|||
|
<20> Solaris 8 x86 (= Solaris 2.8 / SunOS 5.8)
|
|||
|
|
|||
|
<20> Linux 2.2.14, 2.3.99-pre3
|
|||
|
|
|||
|
<20> 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:
|
|||
|
|
|||
|
<20> have used no more than 3 entries in your partition table
|
|||
|
|
|||
|
<20> have no Linux swap partitions as primary partitions
|
|||
|
|
|||
|
<20> Have at least 1 Linux ext2 partition as primary
|
|||
|
|
|||
|
<20> Have at least 1 GB unpartitioned space
|
|||
|
|
|||
|
3. Preparing Linux
|
|||
|
|
|||
|
|
|||
|
|
|||
|
3.1. Building a new kernel
|
|||
|
|
|||
|
Some people don<6F>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'':
|
|||
|
|
|||
|
<20> Under code maturity:
|
|||
|
|
|||
|
Prompt for development drivers
|
|||
|
Unfortunately UFS writing is still experimental.
|
|||
|
|
|||
|
<20> 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<69>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<6F>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<74>
|
|||
|
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<6F>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<74>
|
|||
|
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:
|
|||
|
|
|||
|
<20> Sun Freeware <http://www.sunfreeware.com>
|
|||
|
My first stop for Solaris resources. Has many GNU-tools in binary
|
|||
|
format ready to install.
|
|||
|
|
|||
|
<20> Sun Microsystems <http://www.sun.com>
|
|||
|
|
|||
|
Suns official web page
|
|||
|
|
|||
|
<20> Solaris Homepage <http://www.sun.com/Solaris>
|
|||
|
|
|||
|
<20> Solaris Hardware Compatibility List (HCL)
|
|||
|
<http://soldc.sun.com/support/drivers/hcl/index.html>
|
|||
|
|
|||
|
<20> Solaris Online Documentation <http://docs.sun.com>
|
|||
|
|
|||
|
<20> 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 <20> 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.
|
|||
|
|
|||
|
|
|||
|
|