InstallationGuide

This is a temporary version of the Ubuntu 16.04 Installation Guide specific to IBM z Systems / s390x.
All this information will be incorporated over time into the common installation guides.


Ubuntu Linux 16.04 for IBM Z and LinuxONE - Installation Guide

Copyright © 2004 – 2015 the Debian Installer team
Copyright © 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2015, 2016 Canonical Ltd.
This manual is free software; you may redistribute it and/or modify it under the terms of the GNU General Public License. Please refer to the license in Appendix F, GNU General Public License.

Abstract


This document contains installation instructions for the Ubuntu 16.04 system (codename "Xenial Xerus"), for the S/390 ("s390x") architecture. It also contains pointers to more information and information on how to make the most of your new Ubuntu system.

Contents

    1. Abstract
  1. Welcome to Ubuntu
    1. What is Ubuntu?
      1. Sponsorship by Canonical
    2. What is Debian?
      1. Ubuntu and Debian
    3. What is GNU/Linux?
    4. Getting Ubuntu
    5. Getting the Newest Version of This Document
    6. Organization of This Document
    7. Your Documentation Help is Welcome
    8. About Copyrights and Software Licenses
  2. System Requirements
    1. Supported Architectures
      1. Supported Hardware
        1. IBM z Systems and LinuxONE machine types
        2. PAV and HyperPAV
        3. Multiple Processors
        4. Network Connectivity Hardware
        5. Peripherals and Other Hardware
      2. Installation Media
        1. Network
        2. Hard Disk
        3. Supported Storage Systems
      3. Memory and Disk Space Requirements
    2. Before Installing Ubuntu
      1. Overview of the Installation Process
      2. Back Up Your Existing Data!
      3. Information You Will Need
        1. Documentation
          1. Installation Manual
          2. Hardware documentation
          3. IBM z Systems and IBM LinuxONE Hardware References
        2. Finding Sources of Hardware Information
        3. Hardware Compatibility
        4. Network Settings
      4. Meeting Minimum Hardware Requirements
      5. Pre-Partitioning for Multi-Boot Systems
      6. Pre-Installation Hardware and Operating System Setup
        1. HMC/Firmware Setup
        2. Native and LPAR installations
        3. Installation as a z/VM guest
        4. Installation as a KVM for IBM z virtual machine
        5. Setting up an installation server
        6. Setting up an installation server
    3. Obtaining System Installation Media
      1. Official Ubuntu CD/DVD-ROMs
      2. Downloading Files from Ubuntu Mirrors
        1. Where to Find Installation Images
    4. Booting the Installation System
      1. Booting the Installer on S/390
        1. IBM z Systems and LinuxONE Installation Requirements
        2. IBM z Systems and LinuxONE Boot Parameters
        3. Ubuntu Installer Parameters
        4. Using boot parameters to answer questions
        5. Passing parameters to kernel modules
        6. Blacklisting kernel modules
      2. Troubleshooting the Installation Process
        1. Boot Configuration
        2. Interpreting the Kernel Startup Messages
        3. Reporting Installation Problems
        4. Submitting Installation Reports
    5. Using the Ubuntu Installer
      1. How the Installer Works
      2. Components Introduction
      3. Using Individual Components
        1. Setting up Ubuntu Installer and Hardware Configuration
          1. Check available memory; low memory mode
          2. Selecting Localization Options
          3. Choosing a Keyboard
          4. Looking for the Ubuntu Installer ISO Image
          5. Configuring the Network
          6. Automatic network configuration
          7. Manual network configuration
          8. IPv4 and IPv6
          9. Configuring the Clock and Time Zone
        2. Setting Up Users And Passwords
          1. Create an Ordinary User
        3. Partitioning and Mount Point Selection
          1. Supported partitioning options
          2. Guided Partitioning
          3. Manual Partitioning
          4. Configuring the Logical Volume Manager (LVM)
          5. Configuring Encrypted Volumes
        4. Installing the Base System
        5. Installing Additional Software
          1. Configuring apt
          2. Using a network mirror
          3. Choosing a network mirror
          4. Selecting and Installing Software
        6. Making Your System Bootable
          1. zipl-installer
        7. Finishing the Installation
          1. Reboot the Installation
        8. Troubleshooting
          1. Saving the Installation Logs
          2. Using the Shell and Viewing the Logs
        9. Installation Over the Network
      4. Automated Installations on s390x using preseed
    6. Booting Into Your New Ubuntu System
      1. The Moment of Truth
      2. Mounting encrypted volumes
        1. Troubleshooting
      3. Log In
    7. Next Steps and Where to Go From Here
  3. Administrivia
    1. About This Document
    2. Contributing to This Document
    3. Major Contributions
    4. Trademark Acknowledgement
  4. GNU General Public License
  5. References

Welcome to Ubuntu

https://help.ubuntu.com/16.04/installation-guide/s390x/ch01.html

What is Ubuntu?

Ubuntu is a Linux operating system, freely available with both community and professional support. The Ubuntu community is built on the ideas enshrined in the Ubuntu Manifesto: that software should be available free of charge, that software tools should be usable by people in their local language and despite any disabilities, and that people should have the freedom to customize and alter their software in whatever way they see fit.

  • • Ubuntu will always be free of charge, and there is no extra fee for the "
    • enterprise edition", we make our very best work available to everyone on the same Free terms.
    • Ubuntu includes the very best in translations and accessibility
    • infrastructure that the Free Software community has to offer, to make Ubuntu usable by as many people as possible.
    • Ubuntu is shipped in stable and regular release cycles; a new release will
    • be shipped every six months. You can use the current stable release or the current development release. A release will be supported for 18 months.
    • Ubuntu is entirely committed to the principles of open source software
    • development; we encourage people to use open source software, improve it and pass it on.

Ubuntu is suitable for both desktop and server use. The current Ubuntu release supports Intel x86 (IBM-compatible PC), AMD64 (Hammer), PowerPC (powerpc and ppcel) as well as the s390x (IBM z Systems) architecture.

Ubuntu includes more than 1000 pieces of software, starting with the Linux kernel version 4.4 and GNOME 3.14, and covering every standard application.

Sponsorship by Canonical

Please read here ...

What is Debian?

Please read here ...

Ubuntu and Debian

Please read here ...

What is GNU/Linux?

Please read here ...

Getting Ubuntu

Please read here ...

Getting the Newest Version of This Document

Please read here ...

Organization of This Document

Please read here ...

Your Documentation Help is Welcome

Please read here ...

About Copyrights and Software Licenses

Please read here ...

System Requirements

Ubuntu 16.04 supports six major architectures and several variations of each architecture known as "flavors". One other architecture (IBM/Motorola PowerPC) has an unofficial port.

┌───────────────────┬──────────────┬───────────────────────────────┬────────────┐
│  Architecture     │    Ubuntu    │        Subarchitecture        │   Flavor   │
│                   │ Designation  │                               │            │
├───────────────────┼──────────────┼───────────────────────────────┼────────────┤
│Intel x86-based    │i386          │                               │            │
├───────────────────┼──────────────┼───────────────────────────────┼────────────┤
│AMD64 and          │amd64         │                               │            │
│Intel x86_64       │              │                               │            │
├───────────────────┼──────────────┼───────────────────────────────┼────────────┤
│                   │              │multiplatform                  │generic     │
│ARM with hardware  │armhf         ├───────────────────────────────┼────────────┤
│FPU                │              │multiplatform for LPAE-capable │generic-lpae│
│                   │              │systems                        │            │
├───────────────────┼──────────────┼───────────────────────────────┼────────────┤
│64bit ARM          │arm64         │                               │            │
├───────────────────┼──────────────┼───────────────────────────────┼────────────┤
│IBM/Motorola       │powerpc       │PowerMac                       │pmac        │
│PowerPC            │              │                               │            │
├───────────────────┼──────────────┼───────────────────────────────┼────────────┤
│Power Systems      │ppc64el       │IBM POWER8 or newer machines   │            │
├───────────────────┼──────────────┼───────────────────────────────┼────────────┤
│IBM z/Architecture │s390x         │s390 (31-bit),                 │generic     │
│                   │              │not officially supported       │            │
└───────────────────┴──────────────┴───────────────────────────────┴────────────┘
This document has a special focus on the IBM z/Architecture, also technically known as s390x, which is used in the IBM System z and LinuxONE machine series.

Supported Architectures

Support for the IBM z Systems and IBM LinuxONE machines or their underlying s390x architecture, is included from the kernel 4.2 development stream. The most current deep technical information about IBM's Linux support can be found at the Linux on z Systems page on developerWorks:
IBM developerWorks - Linux on IBM z Systems
There is also a section at IBM developerWorks dedicated to Ubuntu:
IBM developerWorks - Ubuntu
For general Linux on z Systems information the IBM Knowledge Center is a good starting point:
IBM Knowledge Center - Linux for IBM z Systems
Whereas the hardware architecture itself is in detail described in this document:
z/Architecture Principles of Operation (SA22-7832)

Supported Hardware

This section contains information about what hardware you need to get started with Ubuntu. You will also find links to further information about supported s390x hardware.

IBM z Systems and LinuxONE machine types

PAV and HyperPAV

PAV and HyperPAV are supported transparently, multipathing is not needed in this case to take advantage of these storage system features. Be sure to configure the devices during DASD device selection. The alias devices will not be offered neither for formatting, partitioning nor direct use. See here for more details on PAV and HyperPAV:
IBM HyperPAV Support on z/VM

Multiple Processors

Multiprocessor support -- also called "symmetric multiprocessing" or SMP -- is available for this architecture. Having multiple processors in a computer was originally only an issue for high-end server systems but has become common in recent years nearly everywhere with the introduction of so called "multi-core" processors. These contain two or more processor units, called "cores", in one physical chip.

The standard Ubuntu 16.04 kernel image has been compiled with SMP support. It is also usable on non-SMP systems without problems.

Network Connectivity Hardware

Almost any network interface card (NIC) supported by the s390x Linux kernel should also be supported by the installation system; drivers should normally be loaded automatically.

The list of supported network devices is:

  • • OSA-Express in Fast Ethernet (non-QDIO) and QDIO mode

    HiperSockets • Guest-LANs (z/VM) • vSwitches (z/VM) • RoCE Express (Remote DMA over Converged Ethernet)

Peripherals and Other Hardware

Package installations from XPRAM or tape are not supported. All packages that you want to install need to be available on a DASD, a SCSI LUN, an ISO or DVD (placed at the HMC) or over the network.

Installation Media

This section will help you determine which different media types you can use to install Ubuntu. There is a whole chapter devoted to media, Obtaining System Installation Media, which lists the advantages and disadvantages of each media type. You may want to refer back to this page once you reach that section.

Network

The network can be used during the installation to retrieve files needed for the installation. Whether the network is used or not depends on the installation method you choose and your answers to certain questions that will be asked during the installation. The installation system supports most common types of network connections, either via either HTTP or FTP.

Hard Disk

Booting the installation system directly from a hard disk is another option for many architectures (on System z it is called boot from prepared boot disk). This will require some other operating system to load the installer onto the hard disk. This method is only recommended for special cases when no other installation method is available.

Supported Storage Systems

The Ubuntu installer contains a kernel that is built to maximize the number of systems it runs on. Any storage system supported by the Linux kernel is also supported by the boot system. This means that FBA/SCSI and ECKD/DASD are supported.

Memory and Disk Space Requirements

You must have at least 512MB of main memory (RAM) and 5GB of hard disk space to perform a normal installation. Note that these are fairly minimal numbers. For more realistic figures, see Section 3.4, "Meeting Minimum Hardware Requirements".

Installation on systems with less memory or disk space available may be possible but are not recommended and supported.

Before Installing Ubuntu

This chapter deals with the preparation for installing Ubuntu before you even start the installer. This includes backing up your data, gathering information about your hardware, and locating any necessary information.

Overview of the Installation Process

First, just a note about re-installations. With Ubuntu, a circumstance that will require a complete re-installation of your system is very rare; perhaps failure of the hard disk would be the most common case.

Many common operating systems may require a complete installation to be performed when critical failures take place or for upgrades to new OS versions. Even if a completely new installation isn't required, often the programs you use must be re-installed to operate properly in the new OS.

Under Ubuntu, it is much more likely that your OS can be repaired rather than replaced if things go wrong. Upgrades never require a wholesale installation; you can usually upgrade in-place. And the programs are almost always compatible with successive OS releases. If a new program version requires newer supporting software, the Ubuntu packaging system ensures that all the necessary software is automatically identified and installed. The point is, much effort has been put into avoiding the need for re-installation, so think of it as your very last option. The installer is not designed to re-install over an existing system.

Here's a road map for the steps you will take during the installation process.

1. Back up any existing data or documents on the hard disk where you plan to install.

2. Gather information about your computer and any needed documentation, before starting the installation.

3. Create partitionable space for Ubuntu on your hard disk.

4. Locate and/or download the installer software and any specialized driver or firmware files your machine requires - both is usually part of the default installation system.

5. Set up a boot media such as DVD or Boot Kernel, initrd and parm file or provide a network boot infrastructure from which the installer can be booted.

6. Boot / IPL the installation system.

7. Configure one network interface.

8. Open an ssh connection to the new system.

9. Attach one or more DASDs (Direct Access Storage Device) or SCSI LUNs or in case of KVM for IBM z Systems optionally also an image file.

10. Create and mount the partitions on which Ubuntu will be installed. Depending on the media a format may also be required.

11. Watch the automatic download/install/setup of the base system.

12. Install a boot loader which can start up Ubuntu and/or your existing system.

13. Load the newly installed system for the first time.

If you have problems during the installation, it helps to know which packages are involved in which steps. Introducing the leading software actors in this installation drama:

The installer software, debian-installer, is the primary concern of this manual. It detects hardware and loads appropriate drivers, uses dhcp-client to set up the network connection, runs debootstrap to install the base system packages, and runs tasksel to allow you to install certain additional software. Many more actors play smaller parts in this process, but debian-installer has completed its task when you load the new system for the first time.

To tune the system to your needs, tasksel allows you to choose to install various predefined bundles of software like a SSH server or Web server.

Back Up Your Existing Data!

Before you start, make sure you have a back up of the important data that is on your system. If this is the first time a non-native operating system is going to be installed on your computer, it is quite likely you will need to re-partition to make room for Ubuntu. Anytime you modify your system, you run a risk of losing data, no matter what program you use to do it. The programs used in the installation are quite reliable and most have seen years of use; but they are also quite powerful and a false move can cost you. Even after backing up, be careful and think about your answers and actions. Two minutes of thinking can save hours of unnecessary work.

Information You Will Need

There are some basic information that are always required during a system installation, like the disk and network specifications, hostname, user data and more.

Documentation

It is recommended to be familiar with the documentation of different levels of your system, starting with the hardware, including the disks or disk sub-system and network, the hypervisors in use and the Linux OS itself.

Installation Manual

This document you are now reading, or the more generic ones in plain ASCII, HTML or PDF format:

As well as the Ubuntu S390X Wiki landing page that covers further information and FAQs.

Hardware documentation

Often contains useful information on configuring or using your hardware can be obtained by the hardware vendor - in case of z Systems form IBM.

IBM z Systems and IBM LinuxONE Hardware References

Documentation of z Systems itself, it's specific boot sequence, commands and device drivers (e.g. DASD, FCP, Console, OSA, HiperSockets, IBM z/VM, KVM for IBM z Systems and more)

* Linux on z Systems - Device Drivers, Features, and Commands - Development stream (Kernel 4.4)

* IBM Redbooks on Linux for IBM z Systems

* IBM z13 and z13s Technical Introduction, SG24-8250-01

* IBM z13 Technical Guide

* IBM z13s Technical Guide

* IBM zEnterprise System Technical Introduction

* IBM zEnterprise EC12 Technical Guide

* IBM zEnterprise BC12 Technical Guide

* The Virtualization Cookbook for IBM z Systems Volume 1: IBM z/VM 6.3

* Getting Started with KVM for IBM z Systems


Finding Sources of Hardware Information

In many cases, the installer will be able to automatically detect your hardware. But to be prepared, we do recommend familiarizing yourself with your hardware before the install.

Hardware information can be gathered from:

* The manuals that come with each piece of hardware.

* The Firmware and HMC (Hardware Management Console) setup screens of your computer.

* The cases and boxes for each piece of hardware.

* System commands or tools, including management displays. This source is especially useful for information about RAM and hard drive memory.

* Your system administrator, network administrator or Internet Service Provider (ISP). These sources can tell you the settings you need to set up your system and networking.

Hardware Information Helpful for an Install (example):

┌────────┬──────────────────────────────────────┐
│Hardware│      Information You Might Need      │
├────────┼──────────────────────────────────────┤
│FICON / │Device number(s)                      │
│DASD    ├──────────────────────────────────────┤
│        │Available free space                  │
├────────┼──────────────────────────────────────┤
│FCP /   │Device number                         │
│SCSI    ├──────────────────────────────────────┤
│        │WWPN                                  │
│        ├──────────────────────────────────────┤
│        │LUN                                   │
├────────┼──────────────────────────────────────┤
│        │Type of adapter                       │
│        ├──────────────────────────────────────┤
│Network │Device numbers                        │
│        ├──────────────────────────────────────┤
│        │Relative adapter number for OSA cards │
└────────┴──────────────────────────────────────┘

Hardware Compatibility

Many products work without trouble on Linux. Moreover, hardware support in Linux is improving daily. However, Linux still does not run as many different types of hardware as some operating systems.

Drivers in Linux in most cases are not written for a certain "product" or "brand" from a specific manufacturer, but for a certain hardware/chipset. Many seemingly different products/brands are based on the same hardware design; it is not uncommon that chip manufacturers provide so-called "reference designs" for products based on their chips which are then used by several different device manufacturers and sold under lots of different product or brand names.

Protocol implementations are usually also used across different hardware and architectures, like for example the SCSI protocol.

This has advantages and disadvantages. An advantage is that a driver for one chipset works with lots of different products from different manufacturers, as long as their product is based on the same chipset. The disadvantage is that it is not always easy to see which actual chipset is used in a certain product/brand. Unfortunately sometimes device manufacturers change the hardware base of their product without changing the product name or at least the product version number, so that when having two items of the same brand/product name bought at different times, they can sometimes be based on two different chipsets and therefore use two different drivers or there might be no driver at all for one of them. This is fortunately very unlikely on the z Systems platforms.

For PCI-Express/PCIe card devices, a good way to find out more information is either looking at the vendor manuals or listing the pci device information and looking at their device IDs. All PCIe devices have so called "vendor" and "product" IDs, and the combination of these two is usually the same for any product based on the same chipset.

Network Settings

If your computer is connected to a fixed network (i.e. an Ethernet or equivalent connection) which is administered by somebody else, you should ask your network's system administrator for this information:

* Your host name (you may be able to decide this on your own).

* Your domain name.

* Your computer's IP address.

* The netmask to use with your network.

* The IP address of the default gateway system you should route to, if your network has a gateway.

* The system on your network that you should use as a DNS (Domain Name Service) server.

If the network you are connected to uses DHCP (Dynamic Host Configuration Protocol) for configuring network settings, you don't need this information because the DHCP server will provide it directly to your computer during the installation process.

Meeting Minimum Hardware Requirements

Once you have gathered information about your computer's hardware, check that your hardware will let you do the type of installation that you want to do.

Recommended Minimum System Requirements:

┌────────────┬─────────────┬─────────────────┬───────────┐
│Install Type│RAM (minimum)│RAM (recommended)│Hard Drive │
├────────────┼─────────────┼─────────────────┼───────────┤
│Server      │512 megabytes│1024 megabytes   │5 gigabytes│
└────────────┴─────────────┴─────────────────┴───────────┘

The actual minimum memory requirements are less than the numbers listed in this table.

It is practically impossible to give general memory or disk space requirements for server installations as those very much depend on what the server is to be used for. Hence it is recommended to monitor your system while it is running, to determine if the system resources need to be adjusted.

Remember that these sizes don't include all the other materials which are usually to be found, such as user files, databases, and application servers. It is always best to be generous when considering the space for your own files and data.

Disk space required for the smooth operation of the Ubuntu system itself is taken into account in these recommended system requirements. Notably, the /var partition contains a lot of state information specific to Ubuntu in addition to its regular contents, like logfiles. The dpkg files (with information on all installed packages) can easily consume 50MB. Also, apt-get puts downloaded packages here before they are installed. You should usually allocate at least 200MB for /var, and a lot more if you install a graphical desktop environment.

Pre-Partitioning for Multi-Boot Systems

Partitioning your disk or even your system simply refers to the act of breaking up your resources into sections. Each section is then independent of the others. It's roughly equivalent to putting up walls inside a house; if you add furniture to one room it doesn't affect any other room.

Whenever this section talks about "disks" you should translate this into a DASD, z/VM minidisk or SCSI LUNs. A machine can be a Logical Partition (LPAR), a z/VM guest or a KVM virtual machine in this case.

If you already have an operating system on your system (z/VM, z/OS, Linux for IBM z Systems, ...) which uses a whole disk and you want to stick Ubuntu on the same disk, you will need to repartition it. Ubuntu requires its own hard disk partitions. It may be able to share some partitions with other Linux systems, but that's not covered here. At the very least you will need a dedicated partition for the Ubuntu root filesystem.

You can find information about your current partition setup by using a partitioning tool for your current operating system, such as the z/VM diskmap. All partitioning tools provide a way to show existing partitions without making changes.

In general, changing a partition with a file system already on it will destroy any information there. Thus you should always make backups before doing any repartitioning. Using the analogy of the house, you would probably want to move all the furniture out of the way before moving a wall or you risk destroying it.

Several modern operating systems offer the ability to move and resize certain existing partitions without destroying their contents. This allows making space for additional partitions without losing existing data. Even though this works quite well in most cases, making changes to the partitioning of a disk is an inherently dangerous action and should only be done after having made a full backup of all data.

Creating and deleting partitions can be done from within debian-installer as well as from an existing operating system. As a rule of thumb, partitions should be created by the system for which they are to be used, i.e. partitions to be used by Ubuntu should be created from within debian-installer and partitions to be used from another operating system should be created from there. debian-installer is capable of creating non-Linux partitions, and partitions created this way usually work without problems when used in other operating systems, but there are a few rare corner cases in which this could cause problems, so if you want to be sure, use the native partitioning tools to create partitions for use by other operating systems.

On IBM z Systems it's common to not install multiple operating systems on the same disk, rather than either entirely replacing an existing one or just adding a new disk for the new operating system.

Pre-Installation Hardware and Operating System Setup

This section will walk you through pre-installation hardware setup, if any, that you will need to do prior to installing Ubuntu. Generally, this involves checking and possibly changing HMC/system firmware settings for your system - it's the core software used by the hardware; it is most critically invoked during the bootstrap process (POR, Power on reset and IML, Initial microcode load).

HMC/Firmware Setup

In order to install Ubuntu on an IBM z Systems machine you have first boot an installation kernel into the system. The boot mechanism of this platform is inherently different to other ones. You will notice another big difference while you work with this platform: most (if not all) of the time you will work remote, with the help of some client session software like browser and ssh. This is due to that special system architecture where the 3215/3270 console is line-based instead of character-based.

Linux on this platform runs either natively on the bare machine, in a so-called LPAR (Logical Partition) or in a virtual machine supplied by the commercial z/VM hypervisor or the KVM for IBM z Systems hypervisor. Boot media differs depending on the runtime mode. For example, you can use the virtual card reader of a z/VM virtual machine, or boot from the HMC (Hardware Management Console) of an LPAR if the HMC and this option is available for you or from an ISO image based on KVM for IBM z.

Before you actually perform an installation, you have to go over some design and preparation steps. IBM has made documentation available about the whole process, e.g. how to prepare an installation medium and how actually to boot from that medium. Duplicating that information here is neither possible nor necessary. However, we will describe here which kind of Ubuntu-specific data is needed and where to find it. Using both sources of information, you have to prepare your machine and the installation medium before you can perform a boot from it. When you see the welcome message in your client session, return to this document to go through the Ubuntu-specific installation steps.

Native and LPAR installations

Please refer to the Introduction to the System z Hardware Management Console Redbook to get familiar with the HMC, that provides the interface needed for an LPAR installation.
This link refers to a step-by-step Ubuntu Linux in LPAR installation example

Installation as a z/VM guest

Please refer to the "The Virtualization Cookbook for IBM z Systems" Redbook on how to set up a VM guest for installing and running Linux. You need to copy all the files from the generic sub-directory to your CMS disk. Be sure to transfer kernel.ubuntu and initrd.ubuntu in binary mode with a fixed record length of 80 characters (by specifying BINARY and LOCSITE FIX 80 in your FTP client). parmfile.ubuntu can be in either ASCII or EBCDIC format. A sample ubuntu.exec script, which will punch the files in the proper order, is included with the ISO images.
This link refers to a step-by-step Ubuntu Linux on z/VM installation example

Installation as a KVM for IBM z virtual machine

The option fo run Linux for IBM z Systems as an KVM for IBM z Systems guest became recently available. Please refer to the Getting Started with KVM for IBM z Systems Redbook on how to setup KVM for IBM z Systems itself and on howto configure KVM-based virtual machines.
This link refers to a step-by-step Ubuntu Linux on KVM for IBM z Systems installation example

Setting up an installation server

If you don't have a connection to the Internet (either directly or via a web proxy) you need to create a local installation server that can be accessed from your mainframe. This server keeps all the packages you want to install and must make them available using NFS, HTTP or FTP. The installation server needs to copy the exact directory structure from an Ubuntu mirror (ports.ubuntu.com), but only the s390x and architecture-independent files are required. You can also copy the contents of the s390x-specific installation ISO file to such a directory tree. For further information please search for local network or netboot installations.

Setting up an installation server

There are even further installation options possible, please refer to Installation Methods for Linux on System z without Repository Server

Obtaining System Installation Media

The installation media is nowadays still a CD or DVD ROM, but usually provided as an ISO image file.

Official Ubuntu CD/DVD-ROMs

An easiest way to install Ubuntu can be from an official Ubuntu CD- or DVD-ROM. You may download the CD/DVD-ROM image from an Ubuntu mirror and create your own CD/DVD, if you have a fast network connection. If you have an Ubuntu CD/DVD and a CD/DVD bootable machine or hypervisor, you may skip right to Chapter 'Booting the Installation System'; much effort has been expended to ensure the files most people need are there on the CD/DVD ISO image.

If your machine doesn't support CD/DVD booting, but you do have a CD/DVD, you can use an alternative strategy such as z/VM reader, manually loading the kernel from the CD/DVD to initially boot the system installer or doing a network installation. The files you need for booting by another means are also on the CD/DVD; the Ubuntu network archive and CD/DVD folder organization are identical. So when archive file paths are given below for particular files you need for booting, look for those files in the same directories and sub-directories on your CD/DVD.

Once the installer is booted, it will be able to obtain all the other files it needs from the CD/DVD or network.

If you don't have a physical CD/DVD, you will need to download the installer system files and place them for example on a z/VM minidisk so they can be used to boot the installer. Or you may use a virtual CD/DVD drive for installation, as provided by KVM for IBM z Systems.

Downloading Files from Ubuntu Mirrors

To find the nearest (and thus probably the fastest) mirror, see the list of Ubuntu mirrors.

When downloading files from an Ubuntu mirror using FTP, be sure to download the files in binary mode, not text or automatic mode.

Where to Find Installation Images

The installation images are located on each Ubuntu mirror in the directory ubuntu/dists/xenial/main/installer-s390x/current/images/ -- the MANIFEST lists each image and its purpose.
The so called daily builds - that are not recommended for production use - can be downloaded directly from the Ubuntu 16.04 daily-build download page.
But it's recommended to obtain the latest stable release from the Ubuntu for IBM LinuxONE and z Systems portal. The official beta release can be obtained from there as well.
You may also want to have a look at the Ubuntu LinuxONE partner portal.

Booting the Installation System


Booting the Installer on S/390

The Ubuntu installer, that is based on the Debian installer, provides the most convenient way to get the Ubuntu packages installed onto your system.

IBM z Systems and LinuxONE Installation Requirements

In order to run the installation system a working network setup and a ssh session is needed. The booting process starts with a network setup that prompts you for several network parameters. If the setup is successful, you will login to the system by starting an ssh session which will launch the standard installation system.

IBM z Systems and LinuxONE Boot Parameters

On IBM z Systems and LinuxONE machines you can append boot parameters in the parm file. This file can either be in ASCII or EBCDIC format. It needs to be fixed-width with 80 characters per line. A sample parm file parmfile.ubuntu is provided with the installation images. If a parameter is too long to fit into the 80 characters limit it can simply be continued in the first column of the next line. All the lines are concatenated without spaces when being passed to the kernel.

If you boot the installer in a logical partition (LPAR), a guest aka virtual machine (z/VM) or a virtual machine running on KVM for IBM z Systems, where a lot of devices are visible, you can instruct the kernel to restrict the list to a fixed set of devices. This is advised for the installer's boot process if a lot of disks are visible, most likely in LPAR mode. The "cio_ignore" option supports both a blacklist (to only disallow a few devices) and a whitelist (to only allow specific devices):

  • # blacklist: just ignore the two devices 300 and 301
    cio_ignore=0.0.0300-0.0.0301
    # whitelist: ignore everything but 1150, FD00, FD01 and FD02
    cio_ignore=all,!0.0.1150,!0.0.fd00-0.0.fd02


Please note that all devices numbers' hex digits need to be specified in lower case. Furthermore if this boot parameter is used all devices need to be listed: this includes at least disks, network devices and the console. To be considered during the installer's boot process the above option needs to be added to parmfile.ubuntu.
=== Boot Parameters ==== Boot parameters are Linux kernel parameters which are generally used to make sure that peripherals are dealt with properly. For the most part, the kernel can auto-detect information about your peripherals. However, in some cases you'll have to help the kernel a bit.
If this is the first time you're booting the system, try the default boot parameters (i.e., don't try setting parameters) and see if it works correctly. It probably will. If not, you can reboot later and look for any special parameters that inform the system about your hardware.
Information on many boot parameters can be found in the Linux Boot-Prompt HOWTO, including tips for obscure hardware. This section contains only a sketch of the most salient parameters.
The Linux on z Systems - Device Drivers, Features, and Commands - Development stream (Kernel 4.4) manual lists and describes especially the parameters and options for the s390x architecture.
And some common gotchas are also included below in Section 'Troubleshooting the Installation Process'.

Ubuntu Installer Parameters

The installation system recognizes a few additional boot parameters which may be useful.

A number of parameters have a "short form" that helps avoid the limitations of the kernel command line options and makes entering the parameters easier. If a parameter has a short form, it will be listed in brackets behind the (normal) long form. Examples in this manual will normally use the short form too.

* debconf/priority (priority)

  • This parameter sets the lowest priority of messages to be displayed. The default installation uses priority=high. This means that both high and critical priority messages are shown, but medium and low priority messages are skipped. If problems are encountered, the installer adjusts the priority as needed. If you add priority=medium as boot parameter, you will be shown the installation menu and gain more control over the installation. When priority=low is used, all messages are shown (this is equivalent to the expert boot method). With priority=critical, the installation system will display only critical messages and try to do the right thing without fuss.

* BOOT_DEBUG

  • Setting this boot parameter to 2 will cause the installer's boot process to be verbosely logged. Setting it to 3 makes debug shells available at strategic points in the boot process. (Exit the shells to continue the boot process.)

* BOOT_DEBUG=0

  • This is the default.

* BOOT_DEBUG=1

  • More verbose than usual.

* BOOT_DEBUG=2

  • Lots of debugging information.

* BOOT_DEBUG=3

  • Shells are run at various points in the boot process to allow detailed debugging. Exit the shell to continue the boot.

* INSTALL_MEDIA_DEV

  • The value of the parameter is the path to the device to load the Ubuntu installer from. For example, INSTALL_MEDIA_DEV=/dev/cdrom/0

* log_host, log_port

  • Causes the installer to send log messages to a remote syslog on the specified host and port as well as to a local file. If not specified, the port defaults to the standard syslog port 514.

* lowmem

  • Can be used to force the installer to a lowmem level higher than the one the installer sets by default based on available memory. Possible values are 1 and 2. See also Section "Check available memory / low memory mode".

* noshell

  • Prevents the installer from offering interactive shells on tty2 and tty3. Useful for unattended installations where physical security is limited.

* debian-installer/framebuffer (fb)

  • Some architectures use the kernel framebuffer to offer installation in a number of languages. If framebuffer causes a problem on your system you can disable the feature using the parameter fb=false. Problem symptoms are error messages about bterm or bogl, a blank screen, or a freeze within a few minutes after starting the install.

* netcfg/disable_autoconfig

  • By default, the debian-installer automatically probes for network configuration via IPv6 autoconfiguration and DHCP. If the probe succeeds, you won't have a chance to review and change the obtained settings. You can get to the manual network setup only in case the automatic configuration fails. If you have an IPv6 router or a DHCP server on your local network, but want to avoid them because e.g. they give wrong answers, you can use the parameter netcfg/disable_autoconfig=true to prevent any automatic configuration of the network (neither v4 nor v6) and to enter the information manually.

* preseed/url (url)

  • Specify the url to a preconfiguration file to download and use for automating the install.

* preseed/file (file)

  • Specify the path to a preconfiguration file to load for automating the install.

* preseed/interactive

  • Set to true to display questions even if they have been preseeded. Can be useful for testing or debugging a preconfiguration file. Note that this will have no effect on parameters that are passed as boot parameters, but for those a special syntax can be used.

* auto-install/enable (auto)

  • Delay questions that are normally asked before preseeding is possible until after the network is configured.

* finish-install/keep-consoles

  • During installations from serial or management console, the regular virtual consoles (VT1 to VT6) are normally disabled in /etc/inittab. Set to true to prevent this.

* cdrom-detect/eject

  • By default, before rebooting, debian-installer automatically ejects the optical media used during the installation (even doing an eject or unmount on virtual devices, like virtual CD/DVD drives. This can be unnecessary if the system does not automatically boot off the CD/DVD. In some cases it may even be undesirable. Set to false to disable automatic ejection, and be aware that you may need to ensure that the system does not automatically boot from the optical drive after the initial installation.

* base-installer/install-recommends (recommends)

  • By setting this option to false, the package management system will be configured to not automatically install "Recommends", both during the installation and for the installed system. See also Section "Installing the Base System". Note that this option allows to have a leaner system, but can also result in features being missing that you might normally expect to be available. You may have to manually install some of the recommended packages to obtain the full functionality you want. This option should therefore only be used by very experienced users.

* debian-installer/allow_unauthenticated

  • By default the installer requires that repositories be authenticated using a known gpg key. Set to true to disable that authentication. Warning: insecure, not recommended !

* rescue/enable

  • Set to true to enter rescue mode rather than performing a normal installation. See Section "Recovering a Broken System".


Using boot parameters to answer questions

With some exceptions, a value can be set at the boot prompt for any question asked during the installation, though this is only really useful in specific cases. Some specific examples are listed below.

* debian-installer/language (language), debian-installer/country (country), debian-installer/locale (locale)

  • There are two ways to specify the language, country and locale to use for the installation and the installed system. The first and easiest is to pass only the parameter locale. Language and country will then be derived from its value. You can for example use locale =de_CH to select German as language and Switzerland as country (de_CH.UTF-8 will be set as default locale for the installed system). Limitation is that not all possible combinations of language, country and locale can be achieved this way. The second, more flexible option is to specify language and country separately. In this case locale can optionally be added to specify a specific default locale for the installed system. Example: language=en country=DE locale=en_GB.UTF-8.

* anna/choose_modules (modules)

  • Can be used to automatically load installer components that are not loaded by default. Examples of optional components that may be useful are openssh-client-udeb (so you can use scp during the installation).

* netcfg/disable_autoconfig

  • Set to true if you want to disable IPv6 autoconfiguration and DHCP and instead force static network configuration.

* mirror/protocol (protocol)

  • By default the installer will use the http protocol to download files from Ubuntu mirrors and changing that to ftp is not possible during installations at normal priority. By setting this parameter to ftp, you can force the installer to use that protocol instead. Note that you cannot select an ftp mirror from a list, you have to enter the hostname manually.

* tasksel:tasksel/first (tasks)

  • Can be used to select tasks that are not available from the interactive task list. See Section "Selecting and Installing Software" for additional information.

* apt-setup/restricted=false apt-setup/multiverse=false

  • This is the equivalent of enabling the "Free Software Only" boot mode. This will disable the restricted and multiverse repositories at the earliest stages of the debian-installer. This can be helpful is you don't need them at all or don't mirror those repositories at your local mirror.


Passing parameters to kernel modules

If drivers are compiled into the kernel, you can pass parameters to them as described in the kernel documentation. However, if drivers are compiled as modules and because kernel modules are loaded a bit differently during an installation than when booting an installed system, it is not possible to pass parameters to modules as you would normally do. Instead, you need to use a special syntax recognized by the installer which will then make sure that the parameters are saved in the proper configuration files and will thus be used when the modules are actually loaded. The parameters will also be propagated automatically to the configuration for the installed system.

Note that it is now quite rare that parameters need to be passed to modules. In most cases the kernel will be able to probe the hardware present in a system and set good defaults that way. However, in some situations it may still be needed to set parameters manually.

The syntax to use to set parameters for modules is:

module_name.parameter_name=value

If you need to pass multiple parameters to the same or different modules, just repeat this.

Blacklisting kernel modules

Sometimes it may be necessary to blacklist a module to prevent it from being loaded automatically by the kernel and udev. One reason could be that a particular module causes problems with your hardware. The kernel also sometimes lists two different drivers for the same device. This can cause the device to not work correctly if the drivers conflict or if the wrong driver is loaded first.

You can blacklist a module using the following syntax: module_name.blacklist=yes. This will cause the module to be blacklisted in /etc/modprobe.d/ blacklist.local both during the installation and for the installed system.

Note that a module may still be loaded by the installation system itself. You can prevent that from happening by running the installation in expert mode and unselecting the module from the list of modules displayed during the hardware detection phases.

Troubleshooting the Installation Process

Even if the Linux installation process usually runs smoothly it makes sense to briefly discuss potential troubleshooting.

Boot Configuration

If you have problems and the kernel hangs during the boot process, doesn't recognize peripherals you actually have, or drives are not recognized properly, the first thing to check is the boot parameters, as discussed in Section "Boot Parameters".

Interpreting the Kernel Startup Messages

During the boot sequence, you may see many messages in the form can't find something, or something not present, can't initialize something, or even this driver release depends on something. Most of these messages are harmless and just have an informative character. You see them because the kernel for the installation system is built to run on computers with many different peripheral devices. Obviously, no one computer will have every possible peripheral device, so the operating system may emit a few complaints while it looks for peripherals you don't own. You may also see the system pause for a while. This happens when it is waiting for a device to respond, and that device is not present on your system. If you find the time it takes to boot the system unacceptably long, you may create a custom kernel.

Reporting Installation Problems

If you get through the initial boot phase but cannot complete the install, the menu option Save debug logs may be helpful. It lets you store system error logs and configuration information from the installer to a different device, or download them using a web browser. This information may provide clues as to what went wrong and how to fix it. If you are submitting a bug report, you may want to attach this information to the bug report.

Other pertinent installation messages may be found in /var/log/ during the installation, and /var/log/installer/ after the computer has been booted into the installed system.

Submitting Installation Reports

If you still have problems, please submit an installation report. We also encourage installation reports to be sent even if the installation is successful, so that we can get as much information as possible on the largest number of hardware configurations.

Note that your installation report will be published in the Debian Bug Tracking System (BTS) and/or on Ubuntu Launchpad and may even be forwarded to a public mailing list. Make sure that you use an e-mail address that you do not mind being made public.

If you have a working Ubuntu system, the easiest way to send an installation report is to install the installation-report and reportbug packages (aptitude install installation-report reportbug), configure reportbug and run the command reportbug installation-reports.

Alternatively you can use this template when filling out installation reports, and send the report to <ubuntu-users@lists.ubuntu.com>.


Package: installation-reports

Boot method: <How did you boot the installer? CD? floppy? network?>
Image version: <Full URL to image you downloaded is best>
Date: <Date and time of the install>

Machine: <Description of machine (eg, Model / Type)>
Processor:
Memory:
Partitions: <df -Tl will do; the raw partition table is preferred>

Output of lspci -knn (or lspci -nn):

Base System Installation Checklist:
[O] = OK, [E] = Error (please elaborate below), [ ] = didn't try it

Initial boot:           [ ]
Detect network card:    [ ]
Configure network:      [ ]
Detect CD:              [ ]
Load installer modules: [ ]
Detect hard drives:     [ ]
Partition hard drives:  [ ]
Install base system:    [ ]
Clock/timezone setup:   [ ]
User/password setup:    [ ]
Install tasks:          [ ]
Install boot loader:    [ ]
Overall install:        [ ]
Comments/Problems:

<Description of the install, in prose, and any thoughts, comments
      and ideas you had during the initial install.>
In the bug report, describe what the problem is, including the last visible kernel messages in the event of a kernel hang. Describe the steps that you did which brought the system into the problem state and also the system setup, for example Linux running in LPAR mode, as z/VM guest or KVM for IBM z Systems virtual machine, the disks in use and the network configuration.


Using the Ubuntu Installer

The Ubuntu Installer (based on the Debian Installer, and so often called simply debian-installer or d-i).

How the Installer Works

The Ubuntu Installer consists of a number of special-purpose components to perform each installation task. Each component performs its task, asking the user questions as necessary to do its job. The questions themselves are given priorities, and the priority of questions to be asked is set when the installer is started.

When a default installation is performed, only essential (high priority) questions will be asked. This results in a highly automated installation process with little user interaction. Components are automatically run in sequence; which components are run depends mainly on the installation method you use and on your hardware. The installer will use default values for questions that are not asked. If there is a problem, the user will see an error screen, and the installer menu may be shown in order to select some alternative action. If there are no problems, the user will never see the installer menu, but will simply answer questions for each component in turn. Serious error notifications are set to priority "critical" so the user will always be notified. Some of the defaults that the installer uses can be influenced by passing boot arguments when debian-installer is started. If, for example, you wish to force static network configuration (IPv6 autoconfiguration and DHCP are used by default if available), you could add the boot parameter netcfg/disable_autoconfig=true. See Sectionm "Ubuntu Installer Parameters" for available options.

Power users may be more comfortable with a menu-driven interface, where each step is controlled by the user rather than the installer performing each step automatically in sequence. To use the installer in a manual, menu-driven way, add the boot argument priority=medium.

If your hardware requires you to pass options to kernel modules as they are installed, you will need to start the installer in "expert" mode. This can be done by either using the expert command to start the installer or by adding the boot argument priority=low. Expert mode gives you full control over debian-installer.

For the s390x architecture the installer uses a character-based user interface. A graphical user interface is currently not available.

In the character-based environment the use of a mouse is not supported. Here are the keys you can use to navigate within the various dialogs. The Tab or right arrow keys move "forward", and the Shift+Tab or left arrow keys move "backward" between displayed buttons and selections. The up and down arrow select different items within a scrollable list, and also scroll the list itself. In addition, in long lists, you can type a letter to cause the list to scroll directly to the section with items starting with the letter you typed and use Pg-Up and Pg-Down to scroll the list in sections. The space bar selects an item such as a checkbox. Use Enter to activate choices.

Some dialogs may offer additional help information. If help is available this will be indicated on the bottom line of the screen by displaying that help information can be accessed by pressing the F1 key.

IBM z Systems and LinuxONE machines do not support virtual consoles. Instead you may open a second and third ssh session to view the logs described below.

Error messages and logs are redirected to the fourth console. You can access this console by pressing Left Alt+F4 (hold the left Alt key while pressing the F4 function key); get back to the main installer process with Left Alt+F1.

These messages can also be found in /var/log/syslog. After installation, this log is copied to /var/log/installer/syslog on your new system. Other installation messages may be found in /var/log/ during the installation, and /var/log/installer/ after the computer has been booted into the installed system.

Components Introduction

Here is a list of installer components with a brief description of each component's purpose. Details you might need to know about using a particular component are in Section "Using Individual Components".

* main-menu

  • Shows the list of components to the user during installer operation, and starts a component when it is selected. Main-menu's questions are set to priority medium, so if your priority is set to high or critical (high is the default), you will not see the menu. On the other hand, if there is an error which requires your intervention, the question priority may be downgraded temporarily to allow you to resolve the problem, and in that case the menu may appear. You can get to the main menu by selecting the Go Back button repeatedly to back all the way out of the currently running component.

* localechooser

  • Allows the user to select localization options for the installation and the installed system: language, country and locales. The installer will display messages in the selected language, unless the translation for that language is not complete in which case some messages may be shown in English.

* console-setup

  • Shows a list of keyboards, from which the user chooses the model which matches his own.

* hw-detect

  • Automatically detects most of the system's hardware, including network cards, disk drives, etc.

* cdrom-detect

  • Looks for and mounts an Ubuntu installation CD/DVD.

* netcfg

  • Configures the computer's network connections so it can communicate over the internet.

* iso-scan

  • Searches for ISO images (.iso files) on hard drives.

* choose-mirror

  • Presents a list of Ubuntu archive mirrors. The user may choose the source of his installation packages.

* cdrom-checker

  • Checks integrity of a CD/DVD. This way, the user may assure him/herself that the installation CD/DVD was not corrupted.

* lowmem

  • Lowmem tries to detect systems with low memory and then does various tricks to remove unnecessary parts of debian-installer from the memory (at the cost of some features).

* anna

  • Anna's Not Nearly APT. Installs packages which have been retrieved from the chosen mirror or CD/DVD.

* user-setup

  • Sets up the root password, and adds a non-root user.

* clock-setup

  • Updates the system clock and determines whether the clock is set to UTC or not.

* tzsetup

  • Selects the time zone, based on the location selected earlier.

* partman

  • Allows the user to partition disks attached to the system, create file systems on the selected partitions, and attach them to the mountpoints. Included are also interesting features like a fully automatic mode or LVM support. This is the preferred partitioning tool in Ubuntu.

* lvmcfg

  • Helps the user with the configuration of the LVM (Logical Volume Manager).

* mdcfg

  • Allows the user to set up Software RAID (Redundant Array of Inexpensive Disks).

* base-installer

  • Installs the most basic set of packages which would allow the computer to operate under Ubuntu when rebooted.

* apt-setup

  • Configures apt, mostly automatically, based on what media the installer is running from.

* pkgsel

  • Uses tasksel to select and install additional software.

* os-prober

  • Detects currently installed operating systems on the computer and passes this information to the bootloader-installer, which may offer you an ability to add discovered operating systems to the bootloader's start menu. This way the user could easily choose at the boot time which operating system to start.

* bootloader-installer

  • The various bootloader-installers each install a boot loader program on the hard disk, which is necessary for the computer to start up using Linux without using any other boot device. Many boot loaders allow the user to choose an alternate operating system or an alternate Linux OS each time the computer boots.

* shell

  • Allows the user to execute a shell from the menu, or in the second console.

* save-logs

  • Provides a way for the user to record information on a network, hard disk, or other media when trouble is encountered, in order to accurately report installer software problems to Ubuntu developers later.


Using Individual Components

In this section we will describe each installer component in detail. The components have been grouped into stages that should be recognizable for users. They are presented in the order they appear during the install. Note that not all modules will be used for every installation; which modules are actually used depends on the installation method you use and on your hardware.

Setting up Ubuntu Installer and Hardware Configuration

Let's assume the Ubuntu Installer has booted and you are facing its first screen. At this time, the capabilities of debian-installer are still quite limited. It doesn't know much about your hardware, preferred language, or even the task it should perform. Don't worry. Because debian-installer is quite clever, it can automatically probe your hardware, locate the rest of its components and upgrade itself to a capable installation system. However, you still need to help debian-installer with some information it can't determine automatically (like selecting your preferred language, keyboard layout or desired network mirror).

You will notice that debian-installer performs hardware detection several times during this stage. The first time is targeted specifically at the hardware needed to load installer components (e.g. your CD/DVD or network card). As not all drivers may be available during this first run, hardware detection needs to be repeated later in the process.

Check available memory; low memory mode

One of the first things debian-installer does, is to check available memory. If the available memory is limited, this component will make some changes in the installation process which hopefully will allow you to install Ubuntu on your system.

The first measure taken to reduce memory consumption by the installer is to disable translations, which means that the installation can only be done in English. Of course, you can still localize the installed system after the installation has completed.

If that is not sufficient, the installer will further reduce memory consumption by loading only those components essential to complete a basic installation. This reduces the functionality of the installation system. You will be given the opportunity to load additional components manually, but you should be aware that each component you select will use additional memory and thus may cause the installation to fail.

If the installer runs in low memory mode, it is recommended to create a relatively large swap partition (64-128MB). The swap partition will be used as virtual memory and thus increases the amount of memory available to the system. The installer will activate the swap partition as early as possible in the installation process. Note that heavy use of swap will reduce performance of your system and may lead to high disk activity.

Despite these measures, it is still possible that your system freezes, that unexpected errors occur or that processes are killed by the kernel because the system runs out of memory (which will result in "Out of memory" messages on VT4 and in the syslog).

It is possible to force the installer to use a higher lowmem level than the one based on available memory by using the boot parameter "lowmem" as described in Section "Ubuntu Installer Parameters".

Selecting Localization Options

In most cases the first questions you will be asked concern the selection of localization options to be used both for the installation and for the installed system. The localization options consist of language, location and locales.

The language you choose will be used for the rest of the installation process, provided a translation of the different dialogs is available. If no valid translation is available for the selected language, the installer will default to English.

The selected geographic location (in most cases a country) will be used later in the installation process to select the correct time zone and an Ubuntu mirror appropriate for that country. Language and country together will help determine the default locale for your system and select the correct keyboard layout.

You will first be asked to select your preferred language. The language names are listed both in English (left side) and in the language itself (right side); the names on the right side are also shown in the proper script for the language. The list is sorted on the English names. At the top of the list is an extra option that allows you to select the "C" locale instead of a language. Choosing the "C" locale will result in the installation proceeding in English; the installed system will have no localization support as the locales package will not be installed.

Next you will be asked to select your geographic location. If you selected a language that is recognized as an official language for more than one country, you will be shown a list of only those countries. To select a country that is not in that list, choose other (the last option). You will then be presented with a list of continents; selecting a continent will lead to a list of relevant countries on that continent.

If the language has only one country associated with it, a list of countries will be displayed for the continent or region the country belongs to, with that country selected as the default. Use the Go Back option to select countries on a different continent.
Note: It is important to select the country where you live or where you are located as it determines the time zone that will be configured for the installed system.
If you selected a combination of language and country for which no locale is defined and there exist multiple locales for the language, then the installer will allow you to choose which of those locales you prefer as the default locale for the installed system. In all other cases a default locale will be selected based on the selected language and country.

Any default locale selected as described in the previous paragraph will use UTF-8 as character encoding.

If you are installing at low priority, you will have the option of selecting additional locales, including so-called "legacy" locales, to be generated for the installed system; if you do, you will be asked which of the selected locales should be the default for the installed system.

Choosing a Keyboard

Keyboards are often tailored to the characters used in a language. Select a layout that conforms to the keyboard you are using, or select something close if the keyboard layout you want isn't represented. Once the system installation is complete, you'll be able to select a keyboard layout from a wider range of choices (run dpkg-reconfigure keyboard-configuration as root after you have completed the installation).

Move the highlight to the keyboard selection you desire and press Enter. Use the arrow keys to move the highlight -- they are in the same place in all national language keyboard layouts, so they are independent of the keyboard configuration.

Looking for the Ubuntu Installer ISO Image

When installing via the hd-media method, there will be a moment where you need to find and mount the Ubuntu Installer iso image in order to get the rest of the installation files. The component iso-scan does exactly this.

At first, iso-scan automatically mounts all block devices (e.g. partitions) which have some known filesystem on them and sequentially searches for filenames ending with .iso (or .ISO for that matter). Beware that the first attempt scans only files in the root directory and in the first level of subdirectories (i.e. it finds /whatever.iso, /data/whatever.iso, but not /data/tmp/whatever.iso). After an iso image has been found, iso-scan checks its content to determine if the image is a valid Ubuntu iso image or not. In the former case we are done, in the latter iso-scan seeks for another image.

In case the previous attempt to find an installer iso image fails, iso-scan will ask you whether you would like to perform a more thorough search. This pass doesn't just look into the topmost directories, but really traverses whole filesystem.

If iso-scan does not discover your installer iso image, reboot back to your original operating system and check if the image is named correctly (ending in .iso), if it is placed on a filesystem recognizable by debian-installer, and if it is not corrupted (verify the checksum). Experienced Unix users may be able to do this without rebooting on the second console.

Configuring the Network

As you enter this step, if the system detects that you have more than one network device, you'll be asked to choose which device will be your primary network interface, i.e. the one which you want to use for installation. The other interfaces won't be configured at this time. You may configure additional interfaces after installation is complete; see the interfaces(5) man page.

Automatic network configuration

By default, debian-installer tries to configure your computer's network automatically as far as possible. If the automatic configuration fails, that may be caused by many factors ranging from an unplugged network cable to missing infrastructure for automatic configuration. For further explanation in case of errors, check the error messages on the fourth console. In any case, you will be asked if you want to retry, or if you want to perform a manual setup. Sometimes the network services used for autoconfiguration can be slow in their responses, so if you are sure everything is in place, simply start the autoconfiguration attempt again. If autoconfiguration fails repeatedly, you can instead choose the manual network setup.

Manual network configuration

The manual network setup in turn asks you a number of questions about your network, notably IP address, Netmask, Gateway, Name server addresses, and a Hostname.
Note: Some technical details you might, or might not, find handy: the program assumes the network IP address is the bitwise-AND of your system's IP address and your netmask. The default broadcast address is calculated as the bitwise OR of your system's IP address with the bitwise negation of the netmask. It will also guess your gateway. If you can't find any of these answers, use the offered defaults -- if necessary, you can change them by editing /etc/network/ interfaces once the system has been installed.

IPv4 and IPv6

Ubuntu supports IPv6 as well as the "classic" IPv4. All combinations of IPv4 and IPv6 (IPv4-only, IPv6-only and dual-stack configurations) are supported. Autoconfiguration for IPv4 is done via DHCP (Dynamic Host Configuration Protocol). Autoconfiguration for IPv6 supports stateless autoconfiguration using NDP (Neighbor Discovery Protocol, including recursive DNS server (RDNSS) assignment), stateful autoconfiguration via DHCPv6 and mixed stateless/stateful autoconfiguration (address configuration via NDP, additional parameters via DHCPv6).

Configuring the Clock and Time Zone

The installer does not and cannot modify the system clock on the s390s architecture.

Depending on the location selected earlier in the installation process, you may be shown a list of time zones relevant for that location. If your location has only one time zone and you are doing a default installation, you will not be asked anything and the system will assume that time zone. In expert mode or when installing at medium priority, you will have the additional option to select "Coordinated Universal Time" (UTC) as time zone. If for some reason you wish to set a time zone for the installed system that does not match the selected location, there are two options.

  • 1 The simplest option is to just select a different time zone after the installation has been completed and you've booted into the new system. The command to do this is: # dpkg-reconfigure tzdata 2 Alternatively, the time zone can be set at the very start of the installation by passing the parameter time/zone=value when you boot the installation system. The value should of course be a valid time zone, for example Europe/London or UTC.

For automated installations the time zone can be set to any desired value using preseeding.

Setting Up Users And Passwords

Just before configuring the clock, the installer will allow you to set up the "root" account and/or an account for the first user. Other user accounts can be created after the installation has been completed.

Create an Ordinary User

The system will ask you whether you wish to create an ordinary user account at this point. This account should be your main personal log-in. The account you create at this point will be given root privileges by means of the sudo command, and the root account itself will have login disabled. If you wish, you can enable the root account later by setting a password for it with the command sudo passwd root. You should not use the root account for daily use or as your personal login, nor should you use sudo except when root privileges are really required. Why not? Well, one reason to avoid using root's privileges is that it is very easy to do irreparable damage as root. Another reason is that you might be tricked into running a Trojan-horse program -- that is a program that takes advantage of your super-user powers to compromise the security of your system behind your back. Any good book on Unix system administration will cover this topic in more detail -- consider reading one if it is new to you. You will first be prompted for the user's full name. Then you'll be asked for a name for the user account; generally your first name or something similar will suffice and indeed will be the default. Finally, you will be prompted for a password for this account.

If at any point after installation you would like to create another account, use the adduser command.

Partitioning and Mount Point Selection

At this time, after hardware detection has been executed a final time, debian-installer should be at its full strength, customized for the user's needs and ready to do some real work. As the title of this section indicates, the main task of the next few components lies in partitioning your disks, creating filesystems, assigning mount-points and optionally configuring closely related options like LVM or encrypted devices. If you are uncomfortable with partitioning, or just want to know more details, see Appendix "Partitioning for Ubuntu". First you will be given the opportunity to automatically partition either an entire drive, or available free space on a drive. This is also called "guided" partitioning. If you do not want to auto-partition, choose Manual from the menu.

Supported partitioning options

The partitioner used in debian-installer is fairly versatile. It allows to create many different partitioning schemes, using various partition tables, file systems and advanced block devices.

Exactly which options are available depends mainly on the architecture, but also on other factors. For example, on systems with limited internal memory some options may not be available. Defaults may vary as well. The type of partition table used by default can for example be different for large capacity hard disks than for smaller hard disks. Some options can only be changed when installing at medium or low debconf priority; at higher priorities sensible defaults will be used.

The installer supports various forms of advanced partitioning and use of storage devices, which in many cases can be used in combination.

  • Logical Volume Management (LVM)
  • Encryption
  • Multipath
    • See our Wiki for information. Support for multipath is only available if enabled when the installer is booted.

The following file systems are supported.

  • ext2, ext3, ext4
    • The default file system selected in most cases is ext4; for /boot partitions ext2 will be selected by default when guided partitioning is used.
  • jfs (not available on all architectures)
  • xfs (not available on all architectures)
  • reiserfs (optional; not available on all architectures)
    • Support for the Reiser file system is no longer available by default. When the installer is running at medium or low debconf priority it can be enabled by selecting the partman-reiserfs component. Only version 3 of the file system is supported.
  • btrfs (not available on all architectures)


Guided Partitioning

If you choose guided partitioning, you may have three options: to create partitions directly on the hard disk (classic method), or to create them using Logical Volume Management (LVM), or to create them using encrypted LVM.
Note: The option to use (encrypted) LVM may not be available on all architectures.
When using LVM or encrypted LVM, the installer will create most partitions inside one big partition; the advantage of this method is that partitions inside this big partition can be resized relatively easily later. In the case of encrypted LVM the big partition will not be readable without knowing a special key phrase, thus providing extra security of your (personal) data.

When using encrypted LVM, the installer will also automatically erase the disk by writing random data to it. This further improves security (as it makes it impossible to tell which parts of the disk are in use and also makes sure that any traces of previous installations are erased), but may take some time depending on the size of your disk.
Note: If you choose guided partitioning using LVM or encrypted LVM, some changes in the partition table will need to be written to the selected disk while LVM is being set up. These changes effectively erase all data that is currently on the selected hard disk and you will not be able to undo them later. However, the installer will ask you to confirm these changes before they are written to disk.
If you choose guided partitioning (either classic or using (encrypted) LVM) for a whole disk, you will first be asked to select the disk you want to use. Check that all your disks are listed and, if you have several disks, make sure you select the correct one. The order they are listed in may differ from what you are used to. The size of the disks may help to identify them.

Any data on the disk you select will eventually be lost, but you will always be asked to confirm any changes before they are written to the disk. If you have selected the classic method of partitioning, you will be able to undo any changes right until the end; when using (encrypted) LVM this is not possible.

Next, you will be able to choose from the schemes listed in the table below. All schemes have their pros and cons, some of which are discussed in Appendix "Partitioning for Ubuntu". If you are unsure, choose the first one. Bear in mind that guided partitioning needs a certain minimal amount of free space to operate with. If you don't give it at least about 1GB of space (depends on chosen scheme), guided partitioning will fail.
┌──────────────────────────────────────┬────────────┬─────────────────────────┐
│         Partitioning scheme          │  Minimum   │   Created partitions    │
│                                      │   space    │                         │
├──────────────────────────────────────┼────────────┼─────────────────────────┤
│All files in one partition            │1024MB      │/, swap                  │
├──────────────────────────────────────┼────────────┼─────────────────────────┤
│Separate /home partition              │768MB       │/, /home, swap           │
├──────────────────────────────────────┼────────────┼─────────────────────────┤
│Separate /home, /var and /tmp         │2048MB      │/, /home, /var, /tmp,    │
│partitions                            │            │swap                     │
└──────────────────────────────────────┴────────────┴─────────────────────────┘

Note: These are bare minimums - in nearly all regular scenarios there will be much more space required.
If you choose guided partitioning using (encrypted) LVM, the installer will also create a separate /boot partition. The other partitions, including the swap partition, will be created inside the LVM partition.

After selecting a scheme, the next screen will show your new partition table, including information on whether and how partitions will be formatted and where they will be mounted.
The list of partitions might look like this:
  SCSI1 (0,0,0) (sda) - 6.4 GB V7 ABCD00L
        #1 primary   16.4 MB  B f ext2       /boot
        #2 primary  551.0 MB      swap       swap
        #3 primary    5.8 GB      ext3
           pri/log    8.2 MB      FREE SPACE

  SCSI2 (1,0,0) (sdb) - 80.0 GB ST380021A
        #1 primary   15.9 MB      ext3
        #2 primary  996.0 MB      ext4
        #3 primary    3.9 GB      xfs        /home
        #5 primary    6.0 GB    f ext4       /
        #6 primary    1.0 GB    f ext3       /var
        #7 primary  498.8 MB      ext3

This example shows two hard drives divided into several partitions; the first disk has some free space. Each partition line consists of the partition number, its type, size, optional flags, file system, and mount-point (if any).
Note: This particular setup cannot be created using guided partitioning but it does show possible variation that can be achieved using manual partitioning.
This concludes the guided partitioning. If you are satisfied with the generated partition table, you can choose Finish partitioning and write changes to disk from the menu to implement the new partition table (as described at the end of this section). If you are not happy, you can choose to Undo changes to partitions and run guided partitioning again, or modify the proposed changes as described below for manual partitioning.

Manual Partitioning

A similar screen to the one shown just above will be displayed if you choose manual partitioning except that your existing partition table will be shown and without the mount points. How to manually set up your partition table and the usage of partitions by your new Ubuntu system will be covered in the remainder of this section.

If you select a pristine disk which has neither partitions nor free space on it, you will be asked if a new partition table should be created (this is needed so you can create new partitions). After this, a new line entitled "FREE SPACE" should appear in the table under the selected disk.

If you select some free space, you will have the opportunity to create a new partition. You will have to answer a quick series of questions about its size, type (primary or logical), and location (beginning or end of the free space). After this, you will be presented with a detailed overview of your new partition. The main setting is Use as:, which determines if the partition will have a file system on it, or be used for swap, software RAID, LVM, an encrypted file system, or not be used at all. Other settings include mount-point, mount options, and bootable flag; which settings are shown depends on how the partition is to be used. If you don't like the preselected defaults, feel free to change them to your liking. E.g. by selecting the option Use as:, you can choose a different filesystem for this partition, including options to use the partition for swap, software RAID, LVM, or not use it at all. When you are satisfied with your new partition, select Done setting up the partition and you will return to partman's main screen.

If you decide you want to change something about your partition, simply select the partition, which will bring you to the partition configuration menu. This is the same screen as is used when creating a new partition, so you can change the same settings. One thing that may not be very obvious at a first glance is that you can resize the partition by selecting the item displaying the size of the partition. Filesystems known to work are at least ext2, ext3, ext4 and swap. This menu also allows you to delete a partition.

Be sure to create at least two partitions: one for the root filesystem (which must be mounted as /) and one for swap. If you forget to mount the root filesystem, partman won't let you continue until you correct this issue.

Capabilities of partman can be extended with installer modules, but are dependent on your system's architecture. So if you can't see all promised goodies, check if you have loaded all required modules (e.g. partman-ext3, partman-xfs, or partman-lvm).

After you are satisfied with partitioning, select Finish partitioning and write changes to disk from the partitioning menu. You will be presented with a summary of changes made to the disks and asked to confirm that the filesystems should be created as requested.

Configuring the Logical Volume Manager (LVM)

If you are working with computers at the level of system administrator or "advanced" user, you have surely seen the situation where some disk partition (usually the most important one) was short on space, while some other partition was grossly underused and you had to manage this situation by moving stuff around, symlinking, etc.

To avoid the described situation you can use Logical Volume Manager (LVM). Simply said, with LVM you can combine your partitions (physical volumes in LVM lingo) to form a virtual disk (so called volume group), which can then be divided into virtual partitions (logical volumes). The point is that logical volumes (and of course underlying volume groups) can span across several physical disks.

Now when you realize you need more space for your old 40GB /home partition, you can simply add a new 40GB disk to the computer, join it with your existing volume group and then resize the logical volume which holds your /home filesystem and voila -- your users have some room again on their renewed 40GB partition. This example is of course a bit oversimplified. If you haven't read it yet, you should consult the LVM HOWTO.

LVM setup in debian-installer is quite simple and completely supported inside partman. First, you have to mark the partition(s) to be used as physical volumes for LVM. This is done in the Partition settings menu where you should select Use as: → physical volume for LVM.

When you return to the main partman screen, you will see a new option Configure the Logical Volume Manager. When you select that, you will first be asked to confirm pending changes to the partition table (if any) and after that the LVM configuration menu will be shown. Above the menu a summary of the LVM configuration is shown. The menu itself is context sensitive and only shows valid actions. The possible actions are:

  • Display configuration details: shows LVM device structure, names and sizes of logical volumes and more
  • Create volume group
  • Create logical volume
  • Delete volume group
  • Delete logical volume
  • Extend volume group
  • Reduce volume group
  • Finish: return to the main partman screen

Use the options in that menu to first create a volume group and then create your logical volumes inside it.

After you return to the main partman screen, any created logical volumes will be displayed in the same way as ordinary partitions (and you should treat them as such).

Configuring Encrypted Volumes

The debian-installer allows you to set up encrypted partitions. Every file you write to such a partition is immediately saved to the device in encrypted form. Access to the encrypted data is granted only after entering the passphrase used when the encrypted partition was originally created. This feature is useful to protect sensitive data in case your laptop or hard drive gets stolen. The thief might get physical access to the hard drive, but without knowing the right passphrase, the data on the hard drive will look like random characters.

The two most important partitions to encrypt are: the home partition, where your private data resides, and the swap partition, where sensitive data might be stored temporarily during operation. Of course, nothing prevents you from encrypting any other partitions that might be of interest. For example /var where database servers, mail servers or print servers store their data, or /tmp which is used by various programs to store potentially interesting temporary files. Some people may even want to encrypt their whole system. The only exception is the /boot partition which must remain unencrypted, because currently there is no way to load the kernel from an encrypted partition.
Note: Please note that the performance of encrypted partitions will be less than that of unencrypted ones because the data needs to be decrypted or encrypted for every read or write. The performance impact depends on your CPU speed, chosen cipher and a key length.
To use encryption, you have to create a new partition by selecting some free space in the main partitioning menu. Another option is to choose an existing partition (e.g. a regular partition or a LVM logical volume). In the Partition settings menu, you need to select physical volume for encryption at the Use as: option. The menu will then change to include several cryptographic options for the partition.

The encryption method supported by debian-installer is dm-crypt (included in newer Linux kernels, able to host LVM physical volumes).

Let's have a look at the options available when you select encryption via Device-mapper (dm-crypt). As always: when in doubt, use the defaults, because they have been carefully chosen with security in mind.

* Encryption: aes

  • This option lets you select the encryption algorithm (cipher) which will be used to encrypt the data on the partition. debian-installer currently supports the following block ciphers: aes, blowfish, serpent, and twofish. It is beyond the scope of this document to discuss the qualities of these different algorithms, however, it might help your decision to know that in 2000, AES was chosen by the American National Institute of Standards and Technology as the standard encryption algorithm for protecting sensitive information in the 21st century. 1

* Key size: 256

  • Here you can specify the length of the encryption key. With a larger key size, the strength of the encryption is generally improved. On the other hand, increasing the length of the key usually has a negative impact on performance. Available key sizes vary depending on the cipher. 2

* IV algorithm: xts-plain64

  • The Initialization Vector or IV algorithm is used in cryptography to ensure that applying the cipher on the same clear text data with the same key always produces a unique cipher text. The idea is to prevent the attacker from deducing information from repeated patterns in the encrypted data. From the provided alternatives, the default xts-plain64 is currently the least vulnerable to known attacks. Use the other alternatives only when you need to ensure compatibility with some previously installed system that is not able to use newer algorithms.

* Encryption key: Passphrase

  • Here you can choose the type of the encryption key for this partition.

* Passphrase

  • The encryption key will be computed^[8] on the basis of a pass-phrase which you will be able to enter later in the process.

* Random key

  • A new encryption key will be generated from random data each time you try to bring up the encrypted partition. In other words: on every shutdown the content of the partition will be lost as the key is deleted from memory. (Of course, you could try to guess the key with a brute force attack, but unless there is an unknown weakness in the cipher algorithm, it is not achievable in our lifetime.) Random keys are useful for swap partitions because you do not need to bother yourself with remembering the passphrase or wiping sensitive information from the swap partition before shutting down your computer. However, it also means that you will not be able to use the "suspend-to-disk" functionality offered by newer Linux kernels as it will be impossible (during a subsequent boot) to recover the suspended data written to the swap partition.

* Erase data: yes

  • Determines whether the content of this partition should be overwritten with random data before setting up the encryption. This is recommended because it might otherwise be possible for an attacker to discern which parts of the partition are in use and which are not. In addition, this will make it harder to recover any leftover data from previous installations.

After you have selected the desired parameters for your encrypted partitions, return back to the main partitioning menu. There should now be a new menu item called Configure encrypted volumes. After you select it, you will be asked to confirm the deletion of data on partitions marked to be erased and possibly other actions such as writing a new partition table. For large partitions this might take some time.

Next you will be asked to enter a passphrase for partitions configured to use one. Good passphrases should be longer than 8 characters, should be a mixture of letters, numbers and other characters and should not contain common dictionary words or information easily associable with you (such as birthdates, hobbies, pet names, names of family members or relatives, etc.).
Warning: Before you input any passphrases, you should have made sure that your keyboard is configured correctly and generates the expected characters. If you are unsure, you can switch to the second virtual console and type some text at the prompt. This ensures that you won't be surprised later, e.g. by trying to input a passphrase using a qwerty keyboard layout when you used an azerty layout during the installation. This situation can have several causes. Maybe you switched to another keyboard layout during the installation, or the selected keyboard layout might not have been set up yet when entering the passphrase for the root file system.

If you selected to use methods other than a passphrase to create encryption keys, they will be generated now. Because the kernel may not have gathered a sufficient amount of entropy at this early stage of the installation, the process may take a long time. You can help speed up the process by generating entropy: e.g. by pressing random keys, or by switching to the shell on the second virtual console and generating some network and disk traffic (downloading some files, feeding big files into /dev/null, etc.). This will be repeated for each partition to be encrypted.

After returning to the main partitioning menu, you will see all encrypted volumes as additional partitions which can be configured in the same way as ordinary partitions. The following example shows a volume encrypted via dm-crypt.
Encrypted volume (sda2_crypt) - 115.1 GB Linux device-mapper
     #1 115.1 GB  F ext3

Now is the time to assign mount points to the volumes and optionally change the file system types if the defaults do not suit you.

Pay attention to the identifiers in parentheses (sda2_crypt in this case) and the mount points you assigned to each encrypted volume. You will need this information later when booting the new system. The differences between the ordinary boot process and the boot process with encryption involved will be covered later in Section 7.2, "Mounting encrypted volumes".

Once you are satisfied with the partitioning scheme, continue with the installation.
Note: The IBM z Systems and LinuxONE machines also provide hardware cryptography support, but this is currently not covered in this document. Please refer to the available IBM documentation, especially:
The Virtualization Cookbook for IBM z Systems Volume 1: IBM z/VM 6.3
and
First experiences with hardware cryptographic support for OpenSSH with Linux for System

Installing the Base System

Although this stage is the least problematic, it consumes a significant fraction of the install because it downloads, verifies and unpacks the whole base system. If you have a slow computer or network connection, this could take some time.

During installation of the base system, package unpacking and setup messages are redirected to tty4. You can access this terminal by pressing Left Alt+F4; get back to the main installer process with Left Alt+F1.

The unpack/setup messages generated during this phase are also saved in /var/log/syslog.

As part of the installation, a Linux kernel will be installed. At the default priority, the installer will choose one for you that best matches your hardware. In lower priority modes, you will be able to choose from a list of available kernels.

When packages are installed using the package management system, it will by default also install packages that are recommended by those packages. Recommended packages are not strictly required for the core functionality of the selected software, but they do enhance that software and should, in the view of the package maintainers, normally be installed together with that software.
Note: For technical reasons packages installed during the installation of the base system are installed without their "Recommends". The rule described above only takes effect after this point in the installation process.

Installing Additional Software

At this point you have a usable but limited system. Most users will want to install additional software on the system to tune it to their needs, and the installer allows you do so. This step can take even longer than installing the base system if you have a slow computer or network connection.

Configuring apt

One of the tools used to install packages on a Ubuntu system is a program called apt-get, from the apt package. Other front-ends for package management, like aptitude and synaptic, are also in use. These front-ends are recommended for new users, since they integrate some additional features (package searching and status checks) in a nice user interface.

apt must be configured so that it knows from where to retrieve packages. The results of this configuration are written to the file /etc/apt/sources.list. You can examine and edit this file to your liking after the installation is complete.

If you are installing at default priority, the installer will largely take care of the configuration automatically, based on the installation method you are using and possibly using choices made earlier in the installation. In most cases the installer will automatically add a security mirror and, if you are installing the stable distribution, a mirror for the "stable-updates" service.

If you are installing at a lower priority (e.g. in expert mode), you will be able to make more decisions yourself. You can choose whether or not to use the security and/or stable-updates services, and you can choose to add packages from the "contrib" and "non-free" sections of the archive.

Using a network mirror

One question that will be asked during most installs is whether or not to use a network mirror as a source for packages. In most cases the default answer should be fine, but there are some exceptions.

If you are not installing from a full CD/DVD image, you really should use a network mirror as otherwise you will end up with only a very minimal system. However, if you have a limited Internet connection it is best not to select the desktop task in the next step of the installation.

If you are installing from a single full CD or using a full CD image, using a network mirror is not required, but is still strongly recommended because a single CD contains only a fairly limited number of packages. If you have a limited Internet connection it may still be best to not select a network mirror here, but to finish the installation using only what's available on the CD and selectively install additional packages after the installation (i.e. after you have rebooted into the new system).

If you are installing from a CD/DVD image, any packages needed during the installation should be present on the first DVD. Use of a network mirror is optional.

One advantage of adding a network mirror is that updates that have occurred since the CD/DVD set was created and have been included in a point release, will become available for installation, thus extending the life of your CD/DVD set without compromising the security or stability of the installed system.
In summary: Selecting a network mirror is generally a good idea, except if you do not have a good Internet connection. If the current version of a package is available from CD/DVD, the installer will always use that. The amount of data that will be downloaded if you do select a mirror thus depends on:

  1. the tasks you select in the next step of the installation,
  2. which packages are needed for those tasks,
  3. which of those packages are present on the CD/DVD (image) you have scanned, and
  4. whether any updated versions of packages included on the CDs or DVDs are available from a mirror (either a regular package mirror, or a mirror for security or stable-updates).


Note: The last point means that, even if you choose not to use a network mirror, some packages may still be downloaded from the Internet if there is a security or stable-updates update available for them and those services have been configured.

Choosing a network mirror

If you have selected to use a network mirror during the installation (optional for CD/DVD installs, required for netboot images), you will be presented with a list of geographically nearby (and therefore hopefully fast) network mirrors, based upon your country selection earlier in the installation process. Choosing the offered default is usually fine.

A mirror can also be specified by hand by choosing "enter information manually". You can then specify a mirror host name and an optional port number.


Selecting and Installing Software

During the installation process, you may be given the opportunity to select additional software to install. Rather than picking individual software packages from the available packages, this stage of the installation process focuses on selecting and installing predefined collections of software to quickly set up your computer to perform various tasks.

So, you have the ability to choose tasks first, and then add on more individual packages later. These tasks loosely represent a number of different jobs or things you want to do with your computer, such as X11 environment", "Web server", or "Print server". Section "Disk Space Needed for Tasks" lists the space requirements for the available tasks.

Some tasks may be pre-selected based on the characteristics of the computer you are installing. If you disagree with these selections you can deselect them. You can even opt to install no tasks at all at this point.
Tip: In the standard user interface of the installer, you can use the space bar to toggle selection of a task.

The various server tasks will install software roughly as follows. Web server: apache2; Print server: cups;
The "Standard system" task will install any package that has a priority "standard". This includes a lot of common utilities that are normally available on any Linux or Unix system. You should leave this task selected unless you know what you are doing and want a really minimal system.

If during language selection a default locale other than the "C" locale was selected, tasksel will check if any localization tasks are defined for that locale and will automatically try to install relevant localization packages. This includes for example packages containing word lists or special fonts for your language. If a desktop environment was selected, it will also install appropriate localization packages for that (if available).

Once you've selected your tasks, select Continue. At this point, aptitude will install the packages that are part of the selected tasks. If a particular program needs more information from the user, it will prompt you during this process.

You should be aware that especially the Desktop task is very large. Especially when installing from a normal CD-ROM in combination with a mirror for packages not on the CD-ROM, the installer may want to retrieve a lot of packages over the network. If you have a relatively slow Internet connection, this can take a long time. There is no option to cancel the installation of packages once it has started.

Even when packages are included on the CD-ROM, the installer may still retrieve them from the mirror if the version available on the mirror is more recent than the one included on the CD-ROM. If you are installing the stable distribution, this can happen after a point release (an update of the original stable release); if you are installing the testing distribution this will happen if you are using an older image.

Making Your System Bootable

Before a boot loader is installed, the installer will attempt to probe for other operating systems which are installed on the machine. If it finds a supported operating system, you will be informed of this during the boot loader installation step.

zipl-installer

The boot loader for the s390x architecture is "zipl" (z initial program loader). ZIPL is similar in configuration and usage to LILO, with a few exceptions. Please take a look at the Linux on z Systems - Device Drivers, Features, and Commands - Development stream (Kernel 4.4).

Finishing the Installation

This is the last step in the Ubuntu installation process during which the installer will do any last minute tasks. It mostly consists of tidying up after the debian-installer.

Reboot the Installation

After a final prompt the system will be halted. You then need to boot / IPL Ubuntu from the DASD, SCSI LUN or image file (depending on your specific environment) which you selected for the root filesystem during the first steps of the installation.

Troubleshooting

The components listed in this section are usually not involved in the installation process, but are waiting in the background to help the user in case something goes wrong.

Saving the Installation Logs

If the installation is successful, the logfiles created during the installation process will be automatically saved to /var/log/installer/ on your new Ubuntu system. Choosing Save debug logs from the main menu allows you to save the log files to teh network, hard disk, or other media. This can be useful if you encounter fatal problems during the installation and wish to study the logs on another system or attach them to an installation report.

Using the Shell and Viewing the Logs

There are several methods you can use to get a shell while running an installation. On most systems the easiest method is to switch to the second virtual console by pressing Left Alt+F2^[12] - use Left Alt+F1 to switch back to the installer itself. If you cannot switch consoles, there is usually also a way to log into the install system via ssh to verify any settings or to gather data. There is also an Execute a Shell item on the main menu that can be used to start a shell. You can get to the main menu from most dialogs by using the Go Back button one or more times. Type exit to close the shell and return to the installer.

At this point you are booted from the RAM disk, and there is a limited set of Unix utilities available for your use. You can see what programs are available with the command ls /bin /sbin /usr/bin /usr/sbin and by typing help. The shell is a Bourne shell clone called ash and has some nice features like autocompletion and history.

To edit and view files, use the text editor nano. Log files for the installation system can be found in the /var/log directory.
Note: Although you can do basically anything in a shell that the available commands allow you to do, the option to use a shell is really only there in case something goes wrong and for debugging.
Doing things manually from the shell may interfere with the installation process and result in errors or an incomplete installation. In particular, you should always use let the installer activate your swap partition and not do this yourself from a shell.

Installation Over the Network

Installations over the network are on IBM z Systems and LinuxONE machines the default method after setting up the network.

You will be asked for a new password to be used for connecting to the installation system and for its confirmation. That's all. Now you should see a screen which instructs you to login remotely as the user installer with the password you just provided. Another important detail to notice on this screen is the fingerprint of this system. You need to transfer the fingerprint securely to the person who will continue the installation remotely.

Should you decide to continue with the installation locally, you can always press Enter, which will bring you back to the main menu, where you can select another component.

Now let's switch to the other side of the wire. As a prerequisite, you need to configure your terminal for UTF-8 encoding, because that is what the installation system uses. If you do not, remote installation will be still possible, but you may encounter strange display artefacts like destroyed dialog borders or unreadable non-ascii characters. Establishing a connection with the installation system is as simple as typing:
$ ssh -l installer install_host
Where install_host is either the name or IP address of the computer being installed. Before the actual login the fingerprint of the remote system will be displayed and you will have to confirm that it is correct.


Note: The ssh server in the installer uses a default configuration that does not send keep-alive packets. In principle, a connection to the system being installed should be kept open indefinitely. However, in some situations -- depending on your local network setup -- the connection may be lost after some period of inactivity. One common case where this can happen is when there is some form of Network Address Translation (NAT) somewhere between the client and the system being installed. Depending on at which point of the installation the connection was lost, you may or may not be able to resume the installation after reconnecting.

You may be able to avoid the connection being dropped by adding the option -o ServerAliveInterval=value when starting the ssh connection, or by adding that option in your ssh configuration file. Note however that in some cases adding this option may also cause a connection to be dropped (for example if keep-alive packets are sent during a brief network outage, from which ssh would otherwise have recovered), so it should only be used when needed.


Note: If you install several computers in turn and they happen to have the same IP address or hostname, ssh will refuse to connect to such host. The reason is that it will have different fingerprint, which is usually a sign of a spoofing attack. If you are sure this is not the case, you will need to delete the relevant line from ~/.ssh/known_hosts^[13] and try again.

After the login you will be presented with an initial screen where you have two possibilities called Start menu and Start shell. The former brings you to the main installer menu, where you can continue with the installation as usual. The latter starts a shell from which you can examine and possibly fix the remote system. You should only start one SSH session for the installation menu, but may start multiple sessions for shells.


Warning: After you have started the installation remotely over SSH, you should not go back to the installation session running on the local console. Doing so may corrupt the database that holds the configuration of the new system. This in turn may result in a failed installation or problems with the installed system.

Automated Installations on s390x using preseed

A preseed installation on s390x is unique because of the different and special boot processes and the s390-specific boot parameters. Hence this topic is covered in more detail at this dedicated Wiki page.

Booting Into Your New Ubuntu System

Your system's first boot (or in terms of IBM z Systems the IPL, initial program load) is always exciting.

The Moment of Truth

If the system fails to start up correctly, don't panic. If the installation was successful, chances are good that there is only a relatively minor problem that is preventing the system from booting Ubuntu. In most cases such problems can be fixed without having to repeat the installation. One available option to fix boot problems is to use the installer's built-in rescue mode.

Mounting encrypted volumes

If you created encrypted volumes during the installation and assigned them mount points, you will be asked to enter the passphrase for each of these volumes during the boot.

For partitions encrypted using dm-crypt you will be shown the following prompt during the boot:
Starting early crypto disks... part_crypt(starting)
Enter LUKS passphrase:

In the first line of the prompt, part is the name of the underlying partition, e.g. sda2 or md0. You are now probably wondering for which volume you are actually entering the passphrase. Does it relate to your /home? Or to /var? Of course, if you have just one encrypted volume, this is easy and you can just enter the passphrase you used when setting up this volume. If you set up more than one encrypted volume during the installation, the notes you wrote down as the last step in Section "Configuring Encrypted Volumes" come in handy. If you did not make a note of the mapping between part_crypt and the mount points before, you can still find it in /etc/crypttab and /etc/fstab of your new system.

The prompt may look somewhat different when an encrypted root file system is mounted. This depends on which initramfs generator was used to generate the initrd used to boot the system. The example below is for an initrd generated using initramfs-tools:
Begin: Mounting root file system... ...
Begin: Running /scripts/local-top ...
Enter LUKS passphrase:

No characters (even asterisks) will be shown while entering the passphrase. If you enter the wrong passphrase, you have two more tries to correct it. After the third try the boot process will skip this volume and continue to mount the next filesystem. Please see Section "Troubleshooting" for further information.

After entering all passphrases the boot should continue as usual.

Troubleshooting

If some of the encrypted volumes could not be mounted because a wrong passphrase was entered, you will have to mount them manually after the boot. There are several cases.

* The first case concerns the root partition. When it is not mounted correctly, the boot process will halt and you will have to reboot the computer to try again.

* The easiest case is for encrypted volumes holding data like /home or /srv. You can simply mount them manually after the boot.

  • However for dm-crypt this is a bit tricky. First you need to register the volumes with device mapper by running: # /etc/init.d/cryptdisks start This will scan all volumes mentioned in /etc/crypttab and will create appropriate devices under the /dev directory after entering the correct passphrases. (Already registered volumes will be skipped, so you can repeat this command several times without worrying.) After successful registration you can simply mount the volumes the usual way: # mount /mount_point

* If any volume holding noncritical system files could not be mounted (/usr or /var), the system should still boot and you should be able to mount the volumes manually like in the previous case. However, you will also need to (re)start any services usually running in your default runlevel because it is very likely that they were not started. The easiest way is to just reboot the computer.

Log In

Once your system boots, you'll be presented with the login prompt. Log in using the personal login and password you selected during the installation process. Your system is now ready for use.

If you are a new user, you may want to explore the documentation which is already installed on your system as you start to use it. There are currently several documentation systems, work is proceeding on integrating the different types of documentation. Here are a few starting points.

Documentation accompanying programs you have installed can be found in /usr/share/doc/, under a subdirectory named after the program (or, more precise, the Ubuntu package that contains the program). However, more extensive documentation is often packaged separately in special documentation packages that are mostly not installed by default. For example, documentation about the package management tool apt can be found in the packages apt-doc or apt-howto.

In addition, there are some special folders within the /usr/share/doc/ hierarchy. Linux HOWTOs are installed in .gz (compressed) format, in /usr/share /doc/HOWTO/en-txt/. After installing dhelp, you will find a browsable index of documentation in /usr/share/doc/HTML/index.html.

One easy way to view these documents using a text based browser is to enter the following commands:
$ cd /usr/share/doc/
$ w3m .

The dot after the w3m command tells it to show the contents of the current directory.

If you have a graphical desktop environment installed, you can also use its web browser. Start the web browser from the application menu and enter /usr/share/doc/ in the address bar.

You can also type info command or man command to see documentation on most commands available at the command prompt. Typing help will display help on shell commands. And typing a command followed by --help will usually display a short summary of the command's usage. If a command's results scroll past the top of the screen, type | more after the command to cause the results to pause before scrolling past the top of the screen. To see a list of all commands available which begin with a certain letter, type the letter and then two tabs.

Next Steps and Where to Go From Here

Potential next steps are descrbed here at the generic Ubuntu installation guide.

Administrivia

Please read here ...

About This Document

Please read here ...

Contributing to This Document

Please read here ...

Major Contributions

Please read here ...

Trademark Acknowledgement

Please read here ...

GNU General Public License

Please read here ...

References

* Ubuntu 16.04 for Linux on IBM z Systems and LinuxONE Installation Guide (this document)
* Step-by-step Ubuntu Linux in LPAR installation example
* Step-by-step Ubuntu Linux on z/VM installation example
* Step-by-step Ubuntu Linux on KVM for IBM z Systems installation example
* Automated Ubuntu Server Installations on s390x with preseed
* IBM developerWorks - Linux on IBM z Systems
* IBM developerWorks - Ubuntu
* z/Architecture Principles of Operation (SA22-7832)
* IBM z13 and z13s Technical Introduction, SG24-8250-01
* IBM z13 Technical Guide
* IBM z13s Technical Guide
* IBM zEnterprise System Technical Introduction
* IBM zEnterprise EC12 Technical Guide
* IBM zEnterprise BC12 Technical Guide
* IBM IT infrastructure - z Systems - Linux Operating systems Tested platforms
* Open-Source Software for IBM LinuxONE and IBM z Systems
* Dockerfile for Linux on IBM z Systems examples
* IBM z/VM
* KVM for IBM z Systems
* Linux on z Systems - Device Drivers, Features, and Commands - Development stream (Kernel 4.4)
* IBM Knowledge Center - Linux for IBM z Systems
* IBM Knowledge Center - Linux for IBM z Systems, Ubuntu
* IBM HyperPAV Support on z/VM
* Getting Started with KVM for IBM z Systems
* Installation Methods for Linux on System z without Repository Server
* The Virtualization Cookbook for IBM z Systems Volume 1: IBM z/VM 6.3
* First experiences with hardware cryptographic support for OpenSSH with Linux for System
* IBM HyperPAV Support on z/VM
* Using the Dump Tools (Kernel 4.0) - SC33-8412-14
* IBM Redbooks on Linux for IBM z Systems
* Introduction to the System z Hardware Management Console
* Ubuntu 16.04 LTS release image download link
* Ubuntu Linux 16.04 Release Notes


S390X/InstallationGuide (last edited 2017-07-21 20:39:17 by frank-heimes)