Ubuntu Linux for IBM z Systems and LinuxONE in IBM z/VM Installation
This document describes step-by-step the installation of Ubuntu Linux on IBM z Systems or LinuxONE as IBM z/VM guest (aka virtual machine).
1. Load installer files from ports.ubuntu.com to CMS
`Ready; T=0.01/0.01 10:42:15` <
>
''' `acc 592 t` ''' <
>
`DMSACP723I T (592) R/O` <
>
`Ready; T=0.01/0.01 10:42:34` <
>
''' `ftp ports.ubuntu.com` ''' <
>
`VM TCP/IP FTP Level 630` <
>
`Connecting to 91.189.88.151, port 21` <
>
`220 Ubuntu ISV Image FTP server (vsftpd)` <
>
`USER (identify yourself to the host):` <
>
''' `anonymous` ''' <
>
`>>>USER anonymous` <
>
`331 Please specify the password.` <
>
`Password:` <
>
''[In case of anonymous FTP enter at least one character!]'' <
>
`>>>PASS ********` <
>
`230 Login successful.` <
>
`Command:` <
>
''' `cd ubuntu-ports/dists/xenial/main/installer-s390x/current` ''' <
>
`>>>CWD ubuntu-ports/dists/xenial/main/installer-s390x/current` <
>
`250 Directory successfully changed.` <
>
''[see also section 4.8]'' <
>
`Command:` <
>
''' `cd images/generic` ''' <
>
`>>>CWD images/generic` <
>
`250 Directory successfully changed.` <
>
`Command:` <
>
''' `get ubuntu.exec (repl` ''' <
>
`>>>EPRT |1|9.152.162.15|1172|` <
>
`200 PORT command successful` <
>
`>>>RETR ubuntu.exec` <
>
`150 Connecting to port 1172` <
>
`226-File successfully transferred` <
>
`226 0.000 seconds (measured here), 10.46 Mbytes per second` <
>
`351 bytes transferred in 0.001 seconds. Transfer rate 351.00 Kbytes/sec.` <
>
`Command:` <
>
''' `get parmfile.ubuntu (repl` ''' <
>
`>>>EPRT |1|9.152.162.15|1173|` <
>
`200 PORT command successful` <
>
`>>>RETR parmfile.ubuntu` <
>
`150 Connecting to port 1173` <
>
`226-File successfully transferred` <
>
`226 0.000 seconds (measured here), 46.55 Kbytes per second` <
>
`10 bytes transferred in 0.001 seconds. Transfer rate 10.00 Kbytes/sec.` <
>
`Command:` <
>
''' `bin` ''' <
>
''[This command is important, otherwise the binary is not going to work anymore!]'' <
>
`>>>TYPE i` <
>
`200 TYPE is now 8-bit binary` <
>
`Command:` <
>
''' `locsite fix 80` ''' <
>
''[This command is important, otherwise the binary is not going to work anymore!]'' <
>
`Command:` <
>
''' `get kernel.ubuntu (repl` ''' <
>
`>>>EPRT |1|9.152.162.15|1174|` <
>
`200 PORT command successful` <
>
`>>>RETR kernel.ubuntu` <
>
`150-Connecting to port 1174` <
>
`150 13129.0 kbytes to download` <
>
`226-File successfully transferred` <
>
`226 0.462 seconds (measured here), 27.75 Mbytes per second` <
>
`13444160 bytes transferred in 0.467 seconds. Transfer rate 28788.35 Kbytes/sec.` <
>
Command:` <
>
''' `get initrd.ubuntu (repl` ''' <
>
`>>>EPRT |1|9.152.162.15|1175|` <
>
`200 PORT command successful` <
>
`>>>RETR initrd.ubuntu` <
>
`150-Connecting to port 1175` <
>
`150 5789.9 kbytes to download` <
>
`226-File successfully transferred` <
>
`226 0.177 seconds (measured here), 31.94 Mbytes per second` <
>
`5928960 bytes transferred in 0.181 seconds. Transfer rate 32756.69 Kbytes/sec.` <
>
`Command:` <
>
''' `quit` ''' <
>
`>>>QUIT` <
>
`221-Goodbye. You uploaded 0 and downloaded 18920 kbytes.` <
>
`221 Logout.
`Ready; T=0.02/0.03 10:44:52` <
>
You should now see the following four files on your a disk:
('kernel ubuntu', 'initrd ubuntu', 'parmfile ubuntu' and 'ubuntu exec'; the file sizes may vary)
`INITRD UBUNTU A1 F 80 74112 1448 1/26/16 10:44:48` <
>
`KERNEL UBUNTU A1 F 80 168052 3001 1/26/16 10:44:41` <
>
`PARMFILE UBUNTU A1 V 1 1 1 1/26/16 10:43:40` <
>
`UBUNTU EXEC A1 V 40 11 1 1/26/16 10:43:28` <
>
2. Start ubuntu exec in z/VM CMS:
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm1.png}}
3. Interactively answer questions regarding Network, DASD, etc.
Please see this example input:
`Configure the network device ` <
>
`- - - - - - - - - - - - - - -` <
>
`Please choose the type of your primary network interface that you will need for` <
>
`installing the Ubuntu system (via NFS or HTTP). Only the listed devices are supported.` <
>
`Network device type:` <
>
` 1: ctc: Channel to Channel (CTC) or ESCON connection,` <
>
` 2: qeth: OSA-Express in QDIO mode / HiperSockets,` <
>
` 3: iucv: Inter-User Communication Vehicle - available for VM guests only,` <
>
` 4: virtio: KVM VirtIO,` <
>
`Prompt: '?' for help>` <
>
''' `2` ''' <
>
<
>
`Please select the OSA-Express QDIO / HiperSockets device.` <
>
`Device:` <
>
` 1: 0.0.f5f0-0.0.f5f1-0.0.f5f2,` <
>
`Prompt: '?' for help, default=1>` <
>
''' `1` ''' <
>
`By default OSA-Express cards use layer3 mode. In that mode LLC headers are` <
>
`removed from incoming IPv4 packets. Using the card in layer2 mode will make it` <
>
`keep the MAC addresses of IPv4 packets.` <
>
`Use this device in layer2 mode?` <
>
` 1: Yes Ý*¨ 2: No` <
>
`Prompt: '?' for help, default=1>` <
>
''' `1` ''' <
>
`Configure a network using static addressing` <
>
`- - - - - - - - - - - - - - - - - - - - - -` <
>
`The IP address is unique to your computer and may be:` <
>
` * four numbers separated by periods (IPv4);` <
>
` * blocks of hexadecimal characters separated by colons (IPv6).` <
>
<
>
`You can also optionally append a CIDR netmask (such as "/24").` <
>
<
>
`If you don't know what to use here, consult your network administrator.` <
>
`IP address:` <
>
`Prompt: '?' for help, default=9.152.162./22>` <
>
''' `9.152.162.104/22` ''' <
>
<
>
`The gateway is an IP address (four numbers separated by periods) that indicates` <
>
`the gateway router, also known as the default router. All traffic that goes` <
>
`outside your LAN (for instance, to the Internet) is sent through this router.` <
>
`In rare circumstances, you may have no router; in that case, you can leave this` <
>
`blank. If you don't know the proper answer to this question, consult your` <
>
`network administrator.` <
>
`Gateway:` <
>
`Prompt: '?' for help, default=9.152.160.1>` <
>
''[To accept the default in z/VM CMS, press 'Enter' twice!]'' <
>
<
>
`The name servers are used to look up host names on the network. Please enter` <
>
`the IP addresses (not host names) of up to 3 name servers, separated by spaces.` <
>
`Do not use commas. The first name server in the list will be the first to be` <
>
`queried. If you don't want to use any name server, just leave this field blank.` <
>
`Name server addresses:` <
>
`Prompt: '?' for help, default=9.152.160.1>` <
>
''' `9.152.120.241` ''' <
>
`Detecting link on enccw0.0.f5f0; please wait...` <
>
`Please enter the hostname for this system.` <
>
<
>
`The hostname is a single word that identifies your system to the network.` <
>
`If you don't know what your hostname should be, consult your network` <
>
`administrator. If you are setting up your own home network, you can make` <
>
`something up here.` <
>
`Hostname:` <
>
`Prompt: '?' for help, default=s8315004>` <
>
''[To accept the default in z/VM CMS, press 'Enter' twice!]'' <
>
<
>
`The domain name is the part of your Internet address to the right of your host` <
>
`name. It is often something that ends in .com, .net, .edu, or .org. If you` <
>
`are setting up a home network, you can make something up, but make sure you use` <
>
`the same domain name on all your computers.` <
>
`Domain name:` <
>
`Prompt: '?' for help, default=yourdomain.com>` <
>
''[To accept the default in z/VM CMS, press 'Enter' twice!]'' <
>
<
>
`Generating SSH host key` <
>
`- - - - - - - - - - - - -` <
>
`You need to set a password for remote access to the Debian installer.` <
>
`A malicious or unqualified user with access to the installer can have disastrous` <
>
`results, so you should take care to choose a password that is not easy to` <
>
`guess. It should not be a word found in the dictionary, or a word that could be` <
>
`easily associated with you, like your middle name.` <
>
<
>
`This password is used only by the Debian installer, and will be discarded once` <
>
`you finish the installation.` <
>
`Remote installation password:` <
>
''' `xxxxxxxx` '''
<
>
`Please enter the same remote installation password again to verify that you` <
>
`have typed it correctly.` <
>
`Re-enter password to verify:` <
>
''' `xxxxxxxx` '''
<
>
`Start SSH` <
>
<
>
`To continue the installation, please use an SSH client to connect to the IP` <
>
`address 9.152.162.104 and log in as the "installer" user. For example:` <
>
<
>
` ssh installer@9.152.162.104` <
>
<
>
`The fingerprint of this SSH server's host key is:` <
>
`SHA256:nsRZcYhf2hetIkup+Q4tuavZnacsJ4m4rVynsdsIWCc` <
>
<
>
`Please check this carefully against the fingerprint reported by your SSH client.` <
>
`"Press enter to continue"` <
>
<
>
Note: <
>
Do NOT continue here, but proceed with ssh to the installation system now!
You may leave the z/VM console window open in the background!
<
>
4. SSH with user 'installer' to the installation system
Now ssh with the temporary user 'installer' to your system.
You can specify either the hostname or the IP address:
```ssh installer@9.152.162.104 ```
Users of a non-Linux operating system at their workstation may need to use a different ssh client, like for example 'Putty'.
4.1 Start installer
In case a modified parmfile is used, it's recommended to use the option "expert mode"):
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm2.png}}
4.2 Choose language: English
(adjust according to your needs)
4.3 Choose country: other (scroll down) -> Europe -> Germany
(adjust according to your needs)
4.4 Configure locale: en_US.UTF-8
(adjust according to your needs)
4.5 Choose mirror:
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm3.png}}
4.6 Mirror's hostname: ports.ubuntu.com
(this is the default)
4.7 Enter directory (on ports.ubuntu.com it's just the root directory):
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm4.png}}
4.8 If ports.ubuntu.com is only reachable via a proxy, a proxy needs to be specified here.
Start the entry with `http://` and end with the port number, e.g. ':3128' <
>
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm5.png}}
<
>
Note: <
>
If the following message occurs: <
>
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm6.png}} <
>
the installer kernel does not fit to the set of files located on the mirror. <
>
<
>
In this case, you need to restart the installation, using the files from ports.ubuntu.com. <
>
These files can be obtained from: <
>
ftp://ports.ubuntu.com/ubuntu-ports/dists/xenial/main/installer-s390x/ <
>
(The latest release version there, is also linked to 'current'.) <
>
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm7.png}} <
>
<
>
Just grab the kernel, initrd and parmfile from there. <
>
<
>
After some seconds the download of installer components will start and the installation proceeds with the next question:
4.9 Enter the user's full name
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm8.png}}
Since Ubuntu comes by default with a disabled root user account, it is mandatory to setup at least one user.
4.10 And enter a user name (in this sample case it's just 'test').
4.11 Enter password for your user:
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm9.png}}
And repeat it a second time.
4.12 Encryption with encryptfs is not yet supported, so select 'No':
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm10.png}}
(wait for some seconds)
4.13 Choose the target disk (in this case the DASD 0.0.ea09) by selecting it and pressing 'Enter'
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm11.png}}
If there are lot's of DASD devices available, the above selection list is not shown, rather that you are asked to specify the DASD device by entering the device number in text form, e.g. '0.0.ea09'.
It's required to format DASD devices at least once. <
>
In case you are sure that the previously selected DASD was already formatted before, you may choose 'No'. <
>
If you are unsure if the previous selected DASD device was ever formatted choose 'Yes' here. <
>
The formatting itself takes some time.
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm12.png}}
If no more disks are required, scroll down to 'Finish' and press 'Enter', otherwise repeat the previous step for additional disks.
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm13.png}}
4.14 The partition of the disk(s) can be either done in a 'Guided' or in a 'Manual' way. <
>
In this example we follow the 'Manual' way.
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm14.png}}
First select any potential partition for deletion and if when done, recreate them as needed.
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm15.png}}
Press enter in 'FREE SPACE' row to recreate partitions, for example like:
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm16.png}}
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm17.png}}
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm18.png}}
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm19.png}}
Now create a swap partition in a similar way:
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm20.png}}
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm21.png}}
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm22.png}}
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm23.png}}
Now scroll down to the bottom and choose 'Finish partitioning and write to disk'.
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm24.png}}
Confirm the writing of the changes to the disk with 'Yes':
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm25.png}}
4.15 Now after the new system got configured, the base system installation starts:
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm26.png}}
4.16 Choose 'No automatic updates', because this requires a direct internet connection to the update servers:
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm27.png}}
4.17 At the 'Software selection' menu, make sure that at least 'Standard system utilities', 'OpenSSH server' and 'Basic Ubuntu server' is selected. You may need to scroll-down the list:
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm28.png}}
After this about 150+ packages are going to be installed (the number varies):
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm29.png}}
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm30.png}}
After some time you will finally reach the 'Finish the installation' screen:
{{https://wiki.ubuntu.com/S390X/Installation%20In%20zVM?action=AttachFile&do=get&target=zvm31.png}}
By selecting 'Continue' the system will shut down.
5. IPL the target system.
The installed system does not automatically IPL from the target/boot DASD. You have to IPL it manually: <
>
----
<
>
`00: CP I EA09` <
>
`00: zIPL v1.32.0-build-20151214 interactive boot menu` <
>
`00: 0. default (ubuntu)` <
>
`00:` <
>
`00: 1. ubuntu` <
>
`00: 2. old` <
>
`00: Note: VM users please use '#cp vi vmsg (input)' ` <
>
`00: Please choose (default will boot in 10 seconds): ` <
>
`00:Booting default (ubuntu)` <
>
----
<
>
When the system is up and running, you can login with the during the installation configured user id:
----
<
>
`Ubuntu Xenial Xerus (development branch) s8315004 ttyS0` <
>
<
>
`s8315004 login` <
>
----
<
>
Do not this console window of a currently running Linux guest !<
>
You just have to disconnect the 3270 terminal session - just enter:<
>
`#CP DISCONNECT` <
>
or just: <
>
`#CP DISC` <
>
With '#CP' you can bypass the Linux operating system and commands are directly executed on the z/VM's CP hypervisor, and 'DISC' disconnects the 3270 terminal window, but let's the Linux OS running in the background.
5.1 After the boot/IPL process is completed, you can login to the system with ssh using your specified non-root user (in this example 'test'). In case root privileges are required, put 'sudo' prior to your command or use 'sudo -i' (in combination with your user's password).
<
>
<
>
'''The system is now ready for use!''' <
>
<
>