Six OS's in one disk? Yes it is possible

Six (6) OS's in one disk

Do you want to install 6 OS's on a single disk? If so read on..

The goal is to have 6 bootable OS on a single disk. Why should one do it? Because better sharing, more reliability, easier comparisons between OS versions, quicker recovery, ...BTW, I have only tried this on sparc.

Although I am sure that people have been doing this for ages, I first heard it from Charles Suresh, who encouraged me to go ahead and give it a try.

Create Partitions

Disk partitions usually are from 0 - 7, with 2 being the overlap. For our experiment, we set 1 to be the swap. We sized the other partitions equally, with 0 being a little smaller than others. On my 36G disk, the partition looks like the following

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm    2178 -  5655        4.79GB    (3478/0/0)  10047942
  1       swap    wu       0 -  2177        3.00GB    (2178/0/0)   6292242
  2     backup    wm       0 - 24619       33.92GB    (24620/0/0) 71127180
  3       root    wm    5656 -  9285        5.00GB    (3630/0/0)  10487070
  4       root    wm    9286 - 12915        5.00GB    (3630/0/0)  10487070
  5       root    wm   12916 - 16545        5.00GB    (3630/0/0)  10487070
  6       root    wm   16546 - 20175        5.00GB    (3630/0/0)  10487070
  7       root    wm   20176 - 24619        6.12GB    (4444/0/0)  12838716

Install The OS

Install Solaris from any source. I typically download the images from nana.eng, and use my jumpstart server. You can also install from CD, DVD etc.. Once you install on a slice, you can dd(1) it to other slices, and fix /etc/vfstab. This is the fastest way of installing multiple solaris instances on a disc. If you want another version, or a different build, bfu is your friend. You can also save off these slices to some /net/... place and restore an OS at will (again using dd both ways since you need to preserve the boot blocks). If you slice multiple machines this way, you can even copy slices across machines (assuming same architecture etc) - more scripts are needed to change /etc/hosts, hostname, net/\*/hosts etc

Install via Jumpstart: Setup Profile

If you like things automated, you could perform a hands-off install via custom jumpstart. The first step is to setup the profile for your server. Since you want to preserve the existing partitions, you have to use the preserve keyword. The profile for my machine looks like the following
$cat zeeroh_class
install_type    initial_install
system_type    server
partitioning    explicit
dontuse        c1t0d0
filesys        c1t1d0s0 existing /
filesys        c1t1d0s1 existing swap
filesys        c1t1d0s3 existing /s3 preserve
filesys        c1t1d0s4 existing /s4 preserve
filesys        c1t1d0s5 existing /s5 preserve
filesys        c1t1d0s6 existing /s6 preserve
filesys        c1t1d0s7 existing /s7 preserve
cluster        SUNWCall

To install an OS on another slice, just change the root disk (c1t0d0s0 above).

Make sure that the directory where the profiles are stored is shared read-only.

Also ensure that you have a sisidcfg file setup correctly.
[neel@slc-olympics] config > cat sysidcfg
name_service=NIS
{domain_name=xxx.yyy.sun.com}
root_password=XXXXXXXXXX
security_policy=NONE
system_locale=en_US
terminal=vt100
timezone=US/Pacific
timeserver=localhost
network_interface=PRIMARY{protocol_ipv6=no}
[neel@slc-olympics] config >

Run the check script.

Note that these profiles can be stored on any server. That machine does not need to have anything special installed. You only need to make sure that the location of the profile, and other custom jumpstart scripts are shared via NFS in a "read-only" mode.

Jumpstart

On the jumpstart server (abc.yyy in my case), we added our machine to the list of clients as follows

./add_install_client -i bbb.aaa.xxx.xxx -e a:b:c:d:e:f -c slc-olympics:/export/config -p slc-olympics:/export/config zorrah sun4u

Now reboot your machine as follows

$ reboot -- net - install

Booting via multiple disks/partitions


  1. Find the path (ls -l /dev/rdsk/..)
  2. At the ok prompt, type show-disks and select disk
  3. Type nvalias diskX # this paste's the selected path
  4. init 0
  5. boot diskX

Technorati Tag:
Technorati Tag:

Comments:

I teach SUN Solaris courses. Many times we only can teach on x86 platform, which cannot perform PROM functions. Do you know of a good Open Boot Prom simulator that correctly shows how the system would react to functions entered at the "ok" prompt? thanx ted

Posted by ted jordan on May 31, 2007 at 08:20 AM PDT #

Sorry Ted, I do not know of any

Posted by Neelakanth on May 31, 2007 at 08:24 AM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed
About

realneel

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today