Jan 052011

What follows is a chronicle of my efforts in getting Suse SLES 11 installed in Hercules. Hopefully it will be of use to others who need to deal with this ridiculous 31 bit platform.

Recently I received a request to build a product for a rather ridiculous platform, S380. Needless to say, this is one of those IBM platforms where they try to create their own standards, breaking all conventions when doing so, and selling it at 100x the cost.

Ranting aside, we have some customers using our product on this platform. The builds they are running were created on a machine that was loaned out to us, but we no longer have access to it.

Enter Hercules. This is a straight emulator for the S380/zSeries platform. Since the platform is so different from anything that’s considered sane or normal, the emulator does things the hard way by emulating the entire processor and machine. Modern virtualization solutions tend to perform tricks that let the hardware of the vm host run the code directly. Unfortunately that isn’t an option here, so anything running in Herc will be dog slow. I’m not trying to knock the developers, because they did a good job, that’s just the reality of the situation.


First off I downloaded Suse SLES 11 zLinux from the Suse webpage. There are two DVDs, but you’ll only need the first one in order to do a basic installation.

Next, you need to install Hercules on your host system. I’ve used Ubuntu Server 10.04 LTS and 8.04 LTS. For the latter, you’ll need to compile Hercules from source, because I ran into networking issues with Herc versions lower than 3.05. For 10.04, you can simply use the versions in the repos:

$ sudo apt-get install hercules

You’ll also need to install apache2. The reason being is that The SuSE installation disk does not come with mountable tape images, so you’ll need to do a network install. This requires a working http server.

$ sudo apt-get install apache2

Next we need to mount the disk image we downloaded:

$ sudo mkdir -p /var/www/install/DVD1
$ sudo mount -o loop SUSE-DVD1.iso /var/www/install/DVD1

Now it’s time to setup Hercules. This is the hercules.cnf I used to set up the system.

LOADPARM 0120....

HTTPROOT /usr/local/share/hercules/

0120    3390    /srv/zlinux/root.0120
0121    3390    /srv/zlinux/swap.0121
0E20.2  3088    CTCI
#Leave commented for now, we'll come back to it later.
#0E26.2  3088    LCS -m 3E:31:C5:59:36:DC

I won’t go into it too much, as the options are described on the hercules webpage. Note, however that the devices 0120 and 0121 are pointing towards two files. These are going to be your disk images. Feel free to change them to whatever location you want. Next, we’ll actually create the disk images:

$ sudo dasdinit -lfs root.0120 3390 ROOT 8000
$ sudo dasdinit -lfs swap.0121 3390 SWAP 500

The last number in the command is the size of the disk in cylinders. Each cylinder is approximately 800KB (852480 bytes/cyl to be exact) though I found that there was slightly less usable disk space than I expected. Regardless, 8000 cylinders should be enough for your installation. You can always add more disks later.

  2 Responses to “Installing Suse SLES 11 zLinux in Hercules”

  1. Thank you for the information provided, it helped me to install SLES under Hercules successfully.

  2. Great instructions, thanks so much. I tried to get it running under my Windows laptop initially (can’t have native Linux install on my work lappy due to Windows-only encryption :-( ) and ran in to all sorts of TUNTAP64 issues but running in my Slack VM is flawlessly wonderful. Now I have a SLES install that replicates (to an extent) the guests running in my LPARs at work for testing and the like without borking something important by mistake! Thanks again :-)

 Leave a Reply




You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>