<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tmhoang</id>
	<title>Alpine Linux - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tmhoang"/>
	<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/wiki/Special:Contributions/Tmhoang"/>
	<updated>2026-05-02T08:10:14Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=18621</id>
		<title>S390x/Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=18621"/>
		<updated>2021-02-02T09:37:31Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
= 1. Known Issues =&lt;br /&gt;
1. Installation on 2 or more DASDs (either ECKD and FBA) on z/VM is not supported in the installer script (&amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;) at the moment. If you want to install/extend on more than 1 DASD, see [https://wiki.alpinelinux.org/wiki/S390x#Extending_LVM_volume &amp;quot;Extending LVM volume&amp;quot;]. However, installation on 2 or more virtio (SCSI) disks on KVM are supported just like other architectures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 2. The boot media =&lt;br /&gt;
&lt;br /&gt;
For KVM, both ISO image and netboot media (kernel and initramfs) are supported.&lt;br /&gt;
&lt;br /&gt;
For z/VM, netboot media is supported.&lt;br /&gt;
&lt;br /&gt;
For LPAR, netboot media is supported. See [https://wiki.alpinelinux.org/wiki/S390x/Installation/LPAR &amp;quot;LPAR&amp;quot;] for more information.&lt;br /&gt;
&lt;br /&gt;
Boot media are found at:&lt;br /&gt;
&lt;br /&gt;
* http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel parameters (and parmfile) ==&lt;br /&gt;
The Alpine s390x boot media requires following kernel parameters to work: (Details at : &amp;lt;code&amp;gt;https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=dhcp&amp;lt;/code&amp;gt; : use DHCP for network configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=client-ip:server-ip:gw-ip:netmask:hostname:device:autoconf:dns1:dns2&amp;lt;/code&amp;gt; : use static IP configuration, each field is separated by a colon &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;client-ip&amp;lt;/code&amp;gt; ip address of the guest VM where we are going to run the installer&lt;br /&gt;
* &amp;lt;code&amp;gt;server-ip&amp;lt;/code&amp;gt; not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;gw-ip&amp;lt;/code&amp;gt;     the gateway ip address&lt;br /&gt;
* &amp;lt;code&amp;gt;netmask&amp;lt;/code&amp;gt;   the netmask&lt;br /&gt;
* &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;    the network interface of the guest VM, default is &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; if left blank&lt;br /&gt;
* &amp;lt;code&amp;gt;autoconf&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dns1&amp;lt;/code&amp;gt;      address of the DNS server&lt;br /&gt;
* &amp;lt;code&amp;gt;dns2&amp;lt;/code&amp;gt;      address of the 2nd DNS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; : the location of the Alpine repository from which packages are downloaded.&lt;br /&gt;
&lt;br /&gt;
:For stable release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/v3.10/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:For rolling release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/edge/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modloop=&amp;lt;/code&amp;gt; : the remote location of the image containing kernel&#039;s modules, required for LVM and raid setup.&lt;br /&gt;
&lt;br /&gt;
:The remote location of the &amp;lt;code&amp;gt;modloop&amp;lt;/code&amp;gt; image is the same as the kernel and initramfs (see below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; : the remote location of your SSH public key which is used to allow SSH connection into the installer. It will be downloaded and copied into &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; in the installer.&lt;br /&gt;
&lt;br /&gt;
{{Note|Fetching public keys from HTTP, HTTPS and FTPS are supported. HTTP should only be used in local development network where you own the network.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Alpine Linux security policies are against using passwords for root access via SSH as we consider using public-private key pairs is a much better approach.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;z/VM only&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt; : the addresses of the DASD devices, either ECKD or FBA DASDs. Each device is separated with a comma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; : the network interface type and its subchannels. At the moment, only QETH layer 2 is supported, thus the name &amp;lt;code&amp;gt;qeth_l2&amp;lt;/code&amp;gt; is used (see below).&lt;br /&gt;
&lt;br /&gt;
= 3. Pre-installation =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
Create a virtual disk:&lt;br /&gt;
 $ qemu-img create alpine_disk.qcow2 5G&lt;br /&gt;
&lt;br /&gt;
==== Using iso image ====&lt;br /&gt;
Download latest iso image from : http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x&lt;br /&gt;
&lt;br /&gt;
Start qemu:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -boot d -cdrom alpine-standard-3.10.0-s390x.iso&lt;br /&gt;
&lt;br /&gt;
==== Using netboot media ====&lt;br /&gt;
Download the latest [http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/vmlinuz-vanilla kernel] and [http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/initramfs-vanilla initramfs].&lt;br /&gt;
&lt;br /&gt;
Start qemu: (modify &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -kernel vmlinuz-vanilla \&lt;br /&gt;
        -initrd initramfs-vanilla \&lt;br /&gt;
        -append &amp;quot;ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1 alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.10/main modloop=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/modloop-vanilla ssh_key=https://your-website.com/your-ssh-key.pub&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you have direct access to the qemu console, &amp;lt;code&amp;gt;ssh_key&amp;lt;/code&amp;gt; might not be required.}}&lt;br /&gt;
&lt;br /&gt;
== z/VM ==&lt;br /&gt;
To ease out the process of downloading the images, punch the readers, ipl, etc., [https://github.com/trothr/znetboot &#039;&#039;&#039;ZNETBOOT&#039;&#039;&#039;] is used.&lt;br /&gt;
&lt;br /&gt;
{{Note|Using a FTP server to host the images and download them from x3270 console also works - thus no need to use ZNETBOOT. }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Create the parm file ====&lt;br /&gt;
On your workstation/laptop, create a file named &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt; in your home directory with contents below (modify &amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ZNETBOOT_KERNEL=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/vmlinuz-vanilla&lt;br /&gt;
ZNETBOOT_INITRD=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/initramfs-vanilla&lt;br /&gt;
ZNETBOOT_PROGRESS=1M&lt;br /&gt;
&lt;br /&gt;
alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.10/main&lt;br /&gt;
modloop=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/modloop-vanilla&lt;br /&gt;
&lt;br /&gt;
dasd=0.0.04c0,0.0.05d1&lt;br /&gt;
s390x_net=qeth_l2,0.0.0560,0.0.0561,0.0.0562&lt;br /&gt;
ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1&lt;br /&gt;
&lt;br /&gt;
ssh_key=https://your-website.com/your-ssh-key.pub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upload to z/VM system via 3270 client ====&lt;br /&gt;
[[File:X3270-1.png|right|300px|thumb|Figure 1.]]&lt;br /&gt;
On your workstation/laptop, download 2 files [https://raw.githubusercontent.com/trothr/znetboot/master/znetboot.exec &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;], and [https://raw.githubusercontent.com/trothr/znetboot/master/curl.rexx &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt;] to your home directory.&lt;br /&gt;
&lt;br /&gt;
Open 3270 client and log in the z/VM system with your z/VM username and password.&lt;br /&gt;
&lt;br /&gt;
Upload 3 files &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; to the z/VM environment using the 3270 client (this tutorial uses x3270). On the top left corner, click &amp;quot;File&amp;quot;, then &amp;quot;File Transfer&amp;quot;. (Figure 1.)&lt;br /&gt;
&lt;br /&gt;
Do following steps : (Figure 2.) [[File:X3270-2.png|right|300px|thumb|Figure 2.]]&lt;br /&gt;
* On &amp;quot;Local File Name&amp;quot; box, enter &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; (the file in your laptop/workstation, at &#039;&#039;&#039;~/alpine.znetboot&#039;&#039;&#039;)&lt;br /&gt;
* On &amp;quot;Host File Name&amp;quot; box, enter &#039;&#039;&#039;alpine znetboot&#039;&#039;&#039; (the file will be in z/VM console)&lt;br /&gt;
&lt;br /&gt;
{{Note|Beware the difference between &#039;&#039;&#039;the dot &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;the space &amp;lt;code&amp;gt; &amp;lt;/code&amp;gt;&#039;&#039;&#039; characters in the file names.}}&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;&#039;&#039;Send to host&#039;&#039;&#039;&lt;br /&gt;
* Choose &#039;&#039;&#039;Host is VM/CMS&#039;&#039;&#039;&lt;br /&gt;
* Choose either &#039;&#039;&#039;Fixed&#039;&#039;&#039; or &#039;&#039;&#039;Variable&#039;&#039;&#039; for &#039;&#039;&#039;Record Format&#039;&#039;&#039;&lt;br /&gt;
:Enter a number for LRECL and BLKSIZE, respectively&lt;br /&gt;
{{Note|Any line in &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; that has more 80 chars (columns) will be splitted into more than 1 line when uploaded to z/VM (CMS) console via 3270. Count the number of characters/column of the longest line in your &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; and fill it in LRECL. There is no restriction for BLKSIZE but 80 is preferred.}}&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Transfer File&#039;&#039;&#039; box&lt;br /&gt;
&lt;br /&gt;
Repeat the same steps with &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== (Optional) Check the configuration files ====&lt;br /&gt;
On 3270 client, enter following commands to check if the configuration files are correctly transferred:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit alpine znetboot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit znetboot exec&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit curl rex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &amp;lt;code&amp;gt;filel&amp;lt;/code&amp;gt; and put &amp;lt;code&amp;gt;xedit&amp;lt;/code&amp;gt; on CMD column to edit respective file.&lt;br /&gt;
&lt;br /&gt;
==== Start ZNETBOOT ====&lt;br /&gt;
On 3270 client, type below command and wait till Figure 3.: [[File:X3270-3.png|right|300px|thumb|Figure 3.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;znetboot alpine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 4. Installation =&lt;br /&gt;
If you install on z/VM, steps in this part does not involve the interaction with the 3270 client anymore. Everything is done in the terminal with SSH client.&lt;br /&gt;
&lt;br /&gt;
If you install on KVM, you can either SSH into the installer (below) or directly use the console starting qemu.&lt;br /&gt;
&lt;br /&gt;
Either installing in KVM or z/VM environments, from your workstation/laptop, you will be able to run:&lt;br /&gt;
 $ ssh root@192.168.1.2 (change ip address to what you specified earlier)&lt;br /&gt;
&lt;br /&gt;
Remaining steps are similar to installing Alpine on other architectures (x86, arm, ppc, etc.), either on KVM (using virtio/SCSI disks) or on z/VM with FBA DASDs. Installing on ECKD DASDs requires an additional step, as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is the detailed walkthrough of installing Alpine on a single ECKD DASD using LVM and extend that LVM to the second ECKD DASD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After SSH-ing into the Alpine installer, run:&lt;br /&gt;
 # setup-alpine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Select keyboard layout [none]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter system hostname (short form, e.g. &#039;foo&#039;) [localhost]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter your hostname&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available interfaces are: eth0.&lt;br /&gt;
Enter &#039;?&#039; for help on bridges, bonding and vlans.&lt;br /&gt;
Which one do you want to initialize? (or &#039;?&#039; or &#039;done&#039;) [eth0]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:type &#039;eth0&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Ip address for eth0? (or &#039;dhcp&#039;, &#039;none&#039;, &#039;?&#039;) [192.168.1.2]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter ip address or &#039;dhcp&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Netmask? [255.255.255.0]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter netmask&lt;br /&gt;
&amp;lt;code&amp;gt;Gateway? (or &#039;none&#039;) [192.168.1.1]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter gateway&#039;s ip address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Do you want to do any manual network configuration? [no]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;no&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS domain name? (e.g &#039;bar.com&#039;) []&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter domain name or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS nameserver(s)? [8.8.8.8 ]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter DNS nameserver&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Changing password for root&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter root password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which timezone are you in? (&#039;?&#039; for list) [UTC]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter timezone or &#039;?&#039; for list of timezones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;HTTP/FTP proxy URL? (e.g. &#039;http://proxy:8080&#039;, or &#039;none&#039;) [none]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter proxy or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter mirror number (1-27) or URL to add (or r/f/e/done) [f]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter a number or &#039;r&#039; or &#039;f&#039; or &#039;e&#039; or &#039;done&#039; as described&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which SSH server? (&#039;openssh&#039;, &#039;dropbear&#039; or &#039;none&#039;) [openssh]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter SSH server or press Enter for openssh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;busybox&#039; or press Enter for chrony&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; (next step is the additional step for ECKD DASDs on z/VM)&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available ECKD DASD(s) are:&lt;br /&gt;
  0.0.04c0	(3390/0c 3990/e9 IBM)&lt;br /&gt;
  0.0.05d1	(3390/0c 3990/e9 IBM)&lt;br /&gt;
Which ECKD DASD(s) would you like to be formatted using dasdfmt? (enter &#039;?&#039; for help) [all]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;all&#039; or &#039;0.0.04c0 0.0.05d1&#039; &#039;&#039;&#039;(separated by a space)&#039;&#039;&#039; to format all/both DASDs&lt;br /&gt;
:enter &#039;0.0.04c0&#039; or &#039;0.0.05d1&#039; to format respective DASD&lt;br /&gt;
:enter &#039;?&#039; for help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;WARNING: Erase ECKD DASD 0.0.04c0? [y/N]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;y&#039; to format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available disks are:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
Which disk(s) would you like to use? (or &#039;?&#039; for help or &#039;none&#039;) [dasda]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;dasda&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039;, &#039;lvm&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;lvm&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected (with LVM):&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;sys&#039; to install Alpine on disk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WARNING: The following disk(s) will be erased:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
WARNING: Erase the above disk(s) and continue? [y/N]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;y&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;&lt;br /&gt;
:the installation is finished&lt;br /&gt;
&lt;br /&gt;
At this point, don&#039;t poweroff the installer right away. Go to [https://wiki.alpinelinux.org/wiki/S390x#Copying_SSH_keys_to_new_Alpine_system &amp;quot;Copying SSH keys to new Alpine system&amp;quot;] (below) to have SSH access to your new Alpine system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copying SSH keys to new Alpine system ==&lt;br /&gt;
&lt;br /&gt;
By default, Alpine disables root login with a password via SSH. SSH keys are used instead.&lt;br /&gt;
&lt;br /&gt;
After the installer&#039;s done running (&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;), there are 2 ways to copy your SSH key into the new Alpine system:&lt;br /&gt;
* Option 1: mount the installed disk and copy the SSH keys while still at the installer&#039;s terminal&lt;br /&gt;
* Option 2: poweroff the installer, start the new Alpine system and directly add the SSH keys&lt;br /&gt;
::: if you install on KVM, boot the new Alpine system on qemu, and copy the SSH keys&lt;br /&gt;
::: if you install on z/VM, use the 3270 client to ipl the new Alpine system and copy the SSH keys&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;lvm&#039; + &#039;sys&#039; installation (like in above example), do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/vg0/lv_root /mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;sys&#039; (without LVM) installation, do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/dasda3 /mnt&amp;lt;/code&amp;gt; (change dasda to dasdb or dasdc, etc. for whichever DASD you chose)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In &#039;sys&#039; installation, 1st partition is boot, 2nd partition is swap, 3rd partition is root }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you use KVM, start qemu with new Alpine system (removing &amp;lt;code&amp;gt;-kernel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-initrd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-append&amp;lt;/code&amp;gt; options)&lt;br /&gt;
&lt;br /&gt;
If you use z/VM, open the 3270 client, login with your z/VM username and password. You may need to run &amp;lt;code&amp;gt; ipl cms&amp;lt;/code&amp;gt;. Then run &amp;lt;code&amp;gt; ipl 04c0&amp;lt;/code&amp;gt; (or whichever DASD device you chose as root disk in earlier steps).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wait for new Alpine system go up, then login as root user while in the qemu console (on KVM) or 3270 client (on z/VM). Then run:&lt;br /&gt;
::&amp;lt;code&amp;gt; # mkdir /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # wget https://your-website.com/your-ssh-key.pub -O /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 700 /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Login to new Alpine system ==&lt;br /&gt;
On your workstation/laptop, use SSH client to login new Alpine system:&lt;br /&gt;
&amp;lt;code&amp;gt; $ ssh root@192.168.1.2&amp;lt;/code&amp;gt; (or whichever ip address you used)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extending LVM volume ==&lt;br /&gt;
After logging in to your new Alpine system, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add -q util-linux e2fsprogs-extra&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  1.6G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk&lt;br /&gt;
&lt;br /&gt;
# dasdfmt -b 4096 -d cdl -yp /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# fdasd -a /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# pvcreate /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# vgextend vg0 /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# lvextend -l +100%FREE /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# resize2fs /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk &lt;br /&gt;
└─dasdb1         94:5    0  2.3G  0 part &lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 5. Tips =&lt;br /&gt;
If you want to disable swap partition, after finishing NTP client step, quit the installer by pressing &amp;lt;code&amp;gt;Ctrl + C&amp;lt;/code&amp;gt;. Then run following command to complete remaining steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# setup-disk -s 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you do &#039;sys&#039; installation, there will be no swap partition anymore and 1st partition will be boot, 2nd partition will be root}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:IBM]]&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=18620</id>
		<title>S390x/Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=18620"/>
		<updated>2021-02-02T09:36:56Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
= 1. Known Issues =&lt;br /&gt;
1. Installation on 2 or more DASDs (either ECKD and FBA) on z/VM is not supported in the installer script (&amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;) at the moment. If you want to install/extend on more than 1 DASD, see [https://wiki.alpinelinux.org/wiki/S390x#Extending_LVM_volume &amp;quot;Extending LVM volume&amp;quot;]. However, installation on 2 or more virtio (SCSI) disks on KVM are supported just like other architectures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 2. The boot media =&lt;br /&gt;
&lt;br /&gt;
For KVM, both ISO image and netboot media (kernel and initramfs) are supported.&lt;br /&gt;
&lt;br /&gt;
For z/VM, netboot media is supported.&lt;br /&gt;
&lt;br /&gt;
For LPAR, netboot media is supported. See [https://wiki.alpinelinux.org/wiki/S390x/Installation/LPAR &amp;quot;LPAR&amp;quot;] for more information.&lt;br /&gt;
&lt;br /&gt;
Boot media are found at:&lt;br /&gt;
&lt;br /&gt;
* http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel parameters (and parmfile) ==&lt;br /&gt;
The Alpine s390x boot media requires following kernel parameters to work: (Details at : &amp;lt;code&amp;gt;https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=dhcp&amp;lt;/code&amp;gt; : use DHCP for network configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=client-ip:server-ip:gw-ip:netmask:hostname:device:autoconf:dns1:dns2&amp;lt;/code&amp;gt; : use static IP configuration, each field is separated by a colon &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;client-ip&amp;lt;/code&amp;gt; ip address of the guest VM where we are going to run the installer&lt;br /&gt;
* &amp;lt;code&amp;gt;server-ip&amp;lt;/code&amp;gt; not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;gw-ip&amp;lt;/code&amp;gt;     the gateway ip address&lt;br /&gt;
* &amp;lt;code&amp;gt;netmask&amp;lt;/code&amp;gt;   the netmask&lt;br /&gt;
* &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;    the network interface of the guest VM, default is &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; if left blank&lt;br /&gt;
* &amp;lt;code&amp;gt;autoconf&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dns1&amp;lt;/code&amp;gt;      address of the DNS server&lt;br /&gt;
* &amp;lt;code&amp;gt;dns2&amp;lt;/code&amp;gt;      address of the 2nd DNS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; : the location of the Alpine repository from which packages are downloaded.&lt;br /&gt;
&lt;br /&gt;
:For stable release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/v3.10/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:For rolling release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/edge/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modloop=&amp;lt;/code&amp;gt; : the remote location of the image containing kernel&#039;s modules, required for LVM and raid setup.&lt;br /&gt;
&lt;br /&gt;
:The remote location of the &amp;lt;code&amp;gt;modloop&amp;lt;/code&amp;gt; image is the same as the kernel and initramfs (see below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; : the remote location of your SSH public key which is used to allow SSH connection into the installer. It will be downloaded and copied into &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; in the installer.&lt;br /&gt;
&lt;br /&gt;
{{Note|Fetching public keys from HTTP, HTTPS and FTPS are supported. HTTP should only be used in local development network where you own the network.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Alpine Linux security policies are against using passwords for root access via SSH as we consider using public-private key pairs is a much better approach.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;z/VM only&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt; : the addresses of the DASD devices, either ECKD or FBA DASDs. Each device is separated with a comma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; : the network interface type and its subchannels. At the moment, only QETH layer 2 is supported, thus the name &amp;lt;code&amp;gt;qeth_l2&amp;lt;/code&amp;gt; is used (see below).&lt;br /&gt;
&lt;br /&gt;
= 3. Pre-installation =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
Create a virtual disk:&lt;br /&gt;
 $ qemu-img create alpine_disk.qcow2 5G&lt;br /&gt;
&lt;br /&gt;
==== Using iso image ====&lt;br /&gt;
Download latest iso image from : http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x&lt;br /&gt;
&lt;br /&gt;
Start qemu:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -boot d -cdrom alpine-standard-3.10.0-s390x.iso&lt;br /&gt;
&lt;br /&gt;
==== Using netboot media ====&lt;br /&gt;
Download the latest [http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/vmlinuz-vanilla kernel] and [http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/initramfs-vanilla initramfs].&lt;br /&gt;
&lt;br /&gt;
Start qemu: (modify &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -kernel vmlinuz-vanilla \&lt;br /&gt;
        -initrd initramfs-vanilla \&lt;br /&gt;
        -append &amp;quot;ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1 alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.10/main modloop=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/modloop-vanilla ssh_key=https://your-website.com/your-ssh-key.pub&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you have direct access to the qemu console, &amp;lt;code&amp;gt;ssh_key&amp;lt;/code&amp;gt; might not be required.}}&lt;br /&gt;
&lt;br /&gt;
== z/VM ==&lt;br /&gt;
To ease out the process of downloading the images, punch the readers, ipl, etc., [https://github.com/trothr/znetboot &#039;&#039;&#039;ZNETBOOT&#039;&#039;&#039;] is used.&lt;br /&gt;
&lt;br /&gt;
{{Note|Using a FTP server to host the images and download them from x3270 console also works.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Create the parm file ====&lt;br /&gt;
On your workstation/laptop, create a file named &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt; in your home directory with contents below (modify &amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ZNETBOOT_KERNEL=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/vmlinuz-vanilla&lt;br /&gt;
ZNETBOOT_INITRD=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/initramfs-vanilla&lt;br /&gt;
ZNETBOOT_PROGRESS=1M&lt;br /&gt;
&lt;br /&gt;
alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.10/main&lt;br /&gt;
modloop=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/modloop-vanilla&lt;br /&gt;
&lt;br /&gt;
dasd=0.0.04c0,0.0.05d1&lt;br /&gt;
s390x_net=qeth_l2,0.0.0560,0.0.0561,0.0.0562&lt;br /&gt;
ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1&lt;br /&gt;
&lt;br /&gt;
ssh_key=https://your-website.com/your-ssh-key.pub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upload to z/VM system via 3270 client ====&lt;br /&gt;
[[File:X3270-1.png|right|300px|thumb|Figure 1.]]&lt;br /&gt;
On your workstation/laptop, download 2 files [https://raw.githubusercontent.com/trothr/znetboot/master/znetboot.exec &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;], and [https://raw.githubusercontent.com/trothr/znetboot/master/curl.rexx &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt;] to your home directory.&lt;br /&gt;
&lt;br /&gt;
Open 3270 client and log in the z/VM system with your z/VM username and password.&lt;br /&gt;
&lt;br /&gt;
Upload 3 files &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; to the z/VM environment using the 3270 client (this tutorial uses x3270). On the top left corner, click &amp;quot;File&amp;quot;, then &amp;quot;File Transfer&amp;quot;. (Figure 1.)&lt;br /&gt;
&lt;br /&gt;
Do following steps : (Figure 2.) [[File:X3270-2.png|right|300px|thumb|Figure 2.]]&lt;br /&gt;
* On &amp;quot;Local File Name&amp;quot; box, enter &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; (the file in your laptop/workstation, at &#039;&#039;&#039;~/alpine.znetboot&#039;&#039;&#039;)&lt;br /&gt;
* On &amp;quot;Host File Name&amp;quot; box, enter &#039;&#039;&#039;alpine znetboot&#039;&#039;&#039; (the file will be in z/VM console)&lt;br /&gt;
&lt;br /&gt;
{{Note|Beware the difference between &#039;&#039;&#039;the dot &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;the space &amp;lt;code&amp;gt; &amp;lt;/code&amp;gt;&#039;&#039;&#039; characters in the file names.}}&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;&#039;&#039;Send to host&#039;&#039;&#039;&lt;br /&gt;
* Choose &#039;&#039;&#039;Host is VM/CMS&#039;&#039;&#039;&lt;br /&gt;
* Choose either &#039;&#039;&#039;Fixed&#039;&#039;&#039; or &#039;&#039;&#039;Variable&#039;&#039;&#039; for &#039;&#039;&#039;Record Format&#039;&#039;&#039;&lt;br /&gt;
:Enter a number for LRECL and BLKSIZE, respectively&lt;br /&gt;
{{Note|Any line in &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; that has more 80 chars (columns) will be splitted into more than 1 line when uploaded to z/VM (CMS) console via 3270. Count the number of characters/column of the longest line in your &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; and fill it in LRECL. There is no restriction for BLKSIZE but 80 is preferred.}}&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Transfer File&#039;&#039;&#039; box&lt;br /&gt;
&lt;br /&gt;
Repeat the same steps with &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== (Optional) Check the configuration files ====&lt;br /&gt;
On 3270 client, enter following commands to check if the configuration files are correctly transferred:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit alpine znetboot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit znetboot exec&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit curl rex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &amp;lt;code&amp;gt;filel&amp;lt;/code&amp;gt; and put &amp;lt;code&amp;gt;xedit&amp;lt;/code&amp;gt; on CMD column to edit respective file.&lt;br /&gt;
&lt;br /&gt;
==== Start ZNETBOOT ====&lt;br /&gt;
On 3270 client, type below command and wait till Figure 3.: [[File:X3270-3.png|right|300px|thumb|Figure 3.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;znetboot alpine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 4. Installation =&lt;br /&gt;
If you install on z/VM, steps in this part does not involve the interaction with the 3270 client anymore. Everything is done in the terminal with SSH client.&lt;br /&gt;
&lt;br /&gt;
If you install on KVM, you can either SSH into the installer (below) or directly use the console starting qemu.&lt;br /&gt;
&lt;br /&gt;
Either installing in KVM or z/VM environments, from your workstation/laptop, you will be able to run:&lt;br /&gt;
 $ ssh root@192.168.1.2 (change ip address to what you specified earlier)&lt;br /&gt;
&lt;br /&gt;
Remaining steps are similar to installing Alpine on other architectures (x86, arm, ppc, etc.), either on KVM (using virtio/SCSI disks) or on z/VM with FBA DASDs. Installing on ECKD DASDs requires an additional step, as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is the detailed walkthrough of installing Alpine on a single ECKD DASD using LVM and extend that LVM to the second ECKD DASD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After SSH-ing into the Alpine installer, run:&lt;br /&gt;
 # setup-alpine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Select keyboard layout [none]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter system hostname (short form, e.g. &#039;foo&#039;) [localhost]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter your hostname&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available interfaces are: eth0.&lt;br /&gt;
Enter &#039;?&#039; for help on bridges, bonding and vlans.&lt;br /&gt;
Which one do you want to initialize? (or &#039;?&#039; or &#039;done&#039;) [eth0]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:type &#039;eth0&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Ip address for eth0? (or &#039;dhcp&#039;, &#039;none&#039;, &#039;?&#039;) [192.168.1.2]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter ip address or &#039;dhcp&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Netmask? [255.255.255.0]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter netmask&lt;br /&gt;
&amp;lt;code&amp;gt;Gateway? (or &#039;none&#039;) [192.168.1.1]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter gateway&#039;s ip address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Do you want to do any manual network configuration? [no]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;no&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS domain name? (e.g &#039;bar.com&#039;) []&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter domain name or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS nameserver(s)? [8.8.8.8 ]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter DNS nameserver&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Changing password for root&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter root password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which timezone are you in? (&#039;?&#039; for list) [UTC]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter timezone or &#039;?&#039; for list of timezones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;HTTP/FTP proxy URL? (e.g. &#039;http://proxy:8080&#039;, or &#039;none&#039;) [none]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter proxy or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter mirror number (1-27) or URL to add (or r/f/e/done) [f]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter a number or &#039;r&#039; or &#039;f&#039; or &#039;e&#039; or &#039;done&#039; as described&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which SSH server? (&#039;openssh&#039;, &#039;dropbear&#039; or &#039;none&#039;) [openssh]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter SSH server or press Enter for openssh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;busybox&#039; or press Enter for chrony&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; (next step is the additional step for ECKD DASDs on z/VM)&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available ECKD DASD(s) are:&lt;br /&gt;
  0.0.04c0	(3390/0c 3990/e9 IBM)&lt;br /&gt;
  0.0.05d1	(3390/0c 3990/e9 IBM)&lt;br /&gt;
Which ECKD DASD(s) would you like to be formatted using dasdfmt? (enter &#039;?&#039; for help) [all]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;all&#039; or &#039;0.0.04c0 0.0.05d1&#039; &#039;&#039;&#039;(separated by a space)&#039;&#039;&#039; to format all/both DASDs&lt;br /&gt;
:enter &#039;0.0.04c0&#039; or &#039;0.0.05d1&#039; to format respective DASD&lt;br /&gt;
:enter &#039;?&#039; for help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;WARNING: Erase ECKD DASD 0.0.04c0? [y/N]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;y&#039; to format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available disks are:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
Which disk(s) would you like to use? (or &#039;?&#039; for help or &#039;none&#039;) [dasda]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;dasda&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039;, &#039;lvm&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;lvm&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected (with LVM):&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;sys&#039; to install Alpine on disk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WARNING: The following disk(s) will be erased:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
WARNING: Erase the above disk(s) and continue? [y/N]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;y&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;&lt;br /&gt;
:the installation is finished&lt;br /&gt;
&lt;br /&gt;
At this point, don&#039;t poweroff the installer right away. Go to [https://wiki.alpinelinux.org/wiki/S390x#Copying_SSH_keys_to_new_Alpine_system &amp;quot;Copying SSH keys to new Alpine system&amp;quot;] (below) to have SSH access to your new Alpine system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copying SSH keys to new Alpine system ==&lt;br /&gt;
&lt;br /&gt;
By default, Alpine disables root login with a password via SSH. SSH keys are used instead.&lt;br /&gt;
&lt;br /&gt;
After the installer&#039;s done running (&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;), there are 2 ways to copy your SSH key into the new Alpine system:&lt;br /&gt;
* Option 1: mount the installed disk and copy the SSH keys while still at the installer&#039;s terminal&lt;br /&gt;
* Option 2: poweroff the installer, start the new Alpine system and directly add the SSH keys&lt;br /&gt;
::: if you install on KVM, boot the new Alpine system on qemu, and copy the SSH keys&lt;br /&gt;
::: if you install on z/VM, use the 3270 client to ipl the new Alpine system and copy the SSH keys&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;lvm&#039; + &#039;sys&#039; installation (like in above example), do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/vg0/lv_root /mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;sys&#039; (without LVM) installation, do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/dasda3 /mnt&amp;lt;/code&amp;gt; (change dasda to dasdb or dasdc, etc. for whichever DASD you chose)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In &#039;sys&#039; installation, 1st partition is boot, 2nd partition is swap, 3rd partition is root }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you use KVM, start qemu with new Alpine system (removing &amp;lt;code&amp;gt;-kernel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-initrd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-append&amp;lt;/code&amp;gt; options)&lt;br /&gt;
&lt;br /&gt;
If you use z/VM, open the 3270 client, login with your z/VM username and password. You may need to run &amp;lt;code&amp;gt; ipl cms&amp;lt;/code&amp;gt;. Then run &amp;lt;code&amp;gt; ipl 04c0&amp;lt;/code&amp;gt; (or whichever DASD device you chose as root disk in earlier steps).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wait for new Alpine system go up, then login as root user while in the qemu console (on KVM) or 3270 client (on z/VM). Then run:&lt;br /&gt;
::&amp;lt;code&amp;gt; # mkdir /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # wget https://your-website.com/your-ssh-key.pub -O /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 700 /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Login to new Alpine system ==&lt;br /&gt;
On your workstation/laptop, use SSH client to login new Alpine system:&lt;br /&gt;
&amp;lt;code&amp;gt; $ ssh root@192.168.1.2&amp;lt;/code&amp;gt; (or whichever ip address you used)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extending LVM volume ==&lt;br /&gt;
After logging in to your new Alpine system, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add -q util-linux e2fsprogs-extra&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  1.6G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk&lt;br /&gt;
&lt;br /&gt;
# dasdfmt -b 4096 -d cdl -yp /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# fdasd -a /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# pvcreate /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# vgextend vg0 /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# lvextend -l +100%FREE /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# resize2fs /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk &lt;br /&gt;
└─dasdb1         94:5    0  2.3G  0 part &lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 5. Tips =&lt;br /&gt;
If you want to disable swap partition, after finishing NTP client step, quit the installer by pressing &amp;lt;code&amp;gt;Ctrl + C&amp;lt;/code&amp;gt;. Then run following command to complete remaining steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# setup-disk -s 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you do &#039;sys&#039; installation, there will be no swap partition anymore and 1st partition will be boot, 2nd partition will be root}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:IBM]]&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=18619</id>
		<title>S390x/Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=18619"/>
		<updated>2021-02-02T09:33:25Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC right}}&lt;br /&gt;
&lt;br /&gt;
= 1. Known Issues =&lt;br /&gt;
1. Installation on 2 or more DASDs (either ECKD and FBA) on z/VM is not supported in the installer script (&amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;) at the moment. If you want to install/extend on more than 1 DASD, see [https://wiki.alpinelinux.org/wiki/S390x#Extending_LVM_volume &amp;quot;Extending LVM volume&amp;quot;]. However, installation on 2 or more virtio (SCSI) disks on KVM are supported just like other architectures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 2. The boot media =&lt;br /&gt;
&lt;br /&gt;
For KVM, both ISO image and netboot media (kernel and initramfs) are supported.&lt;br /&gt;
&lt;br /&gt;
For z/VM, netboot media is supported.&lt;br /&gt;
&lt;br /&gt;
For LPAR, netboot media is supported. See [https://wiki.alpinelinux.org/wiki/S390x/Installation/LPAR &amp;quot;LPAR&amp;quot;] for more information.&lt;br /&gt;
&lt;br /&gt;
Boot media are found at:&lt;br /&gt;
&lt;br /&gt;
* http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel parameters (and parmfile) ==&lt;br /&gt;
The Alpine s390x boot media requires following kernel parameters to work: (Details at : &amp;lt;code&amp;gt;https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=dhcp&amp;lt;/code&amp;gt; : use DHCP for network configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=client-ip:server-ip:gw-ip:netmask:hostname:device:autoconf:dns1:dns2&amp;lt;/code&amp;gt; : use static IP configuration, each field is separated by a colon &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;client-ip&amp;lt;/code&amp;gt; ip address of the guest VM where we are going to run the installer&lt;br /&gt;
* &amp;lt;code&amp;gt;server-ip&amp;lt;/code&amp;gt; not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;gw-ip&amp;lt;/code&amp;gt;     the gateway ip address&lt;br /&gt;
* &amp;lt;code&amp;gt;netmask&amp;lt;/code&amp;gt;   the netmask&lt;br /&gt;
* &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;    the network interface of the guest VM, default is &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; if left blank&lt;br /&gt;
* &amp;lt;code&amp;gt;autoconf&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dns1&amp;lt;/code&amp;gt;      address of the DNS server&lt;br /&gt;
* &amp;lt;code&amp;gt;dns2&amp;lt;/code&amp;gt;      address of the 2nd DNS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; : the location of the Alpine repository from which packages are downloaded.&lt;br /&gt;
&lt;br /&gt;
:For stable release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/v3.10/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:For rolling release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/edge/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modloop=&amp;lt;/code&amp;gt; : the remote location of the image containing kernel&#039;s modules, required for LVM and raid setup.&lt;br /&gt;
&lt;br /&gt;
:The remote location of the &amp;lt;code&amp;gt;modloop&amp;lt;/code&amp;gt; image is the same as the kernel and initramfs (see below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; : the remote location of your SSH public key which is used to allow SSH connection into the installer. It will be downloaded and copied into &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; in the installer.&lt;br /&gt;
&lt;br /&gt;
{{Note|Fetching public keys from HTTP, HTTPS and FTPS are supported. HTTP should only be used in local development network where you own the network.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Alpine Linux security policies are against using passwords for root access via SSH as we consider using public-private key pairs is a much better approach.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;z/VM only&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt; : the addresses of the DASD devices, either ECKD or FBA DASDs. Each device is separated with a comma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; : the network interface type and its subchannels. At the moment, only QETH layer 2 is supported, thus the name &amp;lt;code&amp;gt;qeth_l2&amp;lt;/code&amp;gt; is used (see below).&lt;br /&gt;
&lt;br /&gt;
= 3. Pre-installation =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
Create a virtual disk:&lt;br /&gt;
 $ qemu-img create alpine_disk.qcow2 5G&lt;br /&gt;
&lt;br /&gt;
==== Using iso image ====&lt;br /&gt;
Download latest iso image from : http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x&lt;br /&gt;
&lt;br /&gt;
Start qemu:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -boot d -cdrom alpine-standard-3.10.0-s390x.iso&lt;br /&gt;
&lt;br /&gt;
==== Using netboot media ====&lt;br /&gt;
Download the latest [http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/vmlinuz-vanilla kernel] and [http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/initramfs-vanilla initramfs].&lt;br /&gt;
&lt;br /&gt;
Start qemu: (modify &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -kernel vmlinuz-vanilla \&lt;br /&gt;
        -initrd initramfs-vanilla \&lt;br /&gt;
        -append &amp;quot;ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1 alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.10/main modloop=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/modloop-vanilla ssh_key=https://your-website.com/your-ssh-key.pub&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you have direct access to the qemu console, &amp;lt;code&amp;gt;ssh_key&amp;lt;/code&amp;gt; might not be required.}}&lt;br /&gt;
&lt;br /&gt;
== z/VM ==&lt;br /&gt;
To ease out the process of downloading the images, punch the readers, ipl, etc., [https://github.com/trothr/znetboot &#039;&#039;&#039;ZNETBOOT&#039;&#039;&#039;] is used. &#039;&#039;&#039;Using a FTP server to host the images and download them from x3270 console also works.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
==== Create the parm file ====&lt;br /&gt;
On your workstation/laptop, create a file named &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt; in your home directory with contents below (modify &amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ZNETBOOT_KERNEL=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/vmlinuz-vanilla&lt;br /&gt;
ZNETBOOT_INITRD=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/initramfs-vanilla&lt;br /&gt;
ZNETBOOT_PROGRESS=1M&lt;br /&gt;
&lt;br /&gt;
alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.10/main&lt;br /&gt;
modloop=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/modloop-vanilla&lt;br /&gt;
&lt;br /&gt;
dasd=0.0.04c0,0.0.05d1&lt;br /&gt;
s390x_net=qeth_l2,0.0.0560,0.0.0561,0.0.0562&lt;br /&gt;
ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1&lt;br /&gt;
&lt;br /&gt;
ssh_key=https://your-website.com/your-ssh-key.pub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upload to z/VM system via 3270 client ====&lt;br /&gt;
[[File:X3270-1.png|right|300px|thumb|Figure 1.]]&lt;br /&gt;
On your workstation/laptop, download 2 files [https://raw.githubusercontent.com/trothr/znetboot/master/znetboot.exec &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;], and [https://raw.githubusercontent.com/trothr/znetboot/master/curl.rexx &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt;] to your home directory.&lt;br /&gt;
&lt;br /&gt;
Open 3270 client and log in the z/VM system with your z/VM username and password.&lt;br /&gt;
&lt;br /&gt;
Upload 3 files &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; to the z/VM environment using the 3270 client (this tutorial uses x3270). On the top left corner, click &amp;quot;File&amp;quot;, then &amp;quot;File Transfer&amp;quot;. (Figure 1.)&lt;br /&gt;
&lt;br /&gt;
Do following steps : (Figure 2.) [[File:X3270-2.png|right|300px|thumb|Figure 2.]]&lt;br /&gt;
* On &amp;quot;Local File Name&amp;quot; box, enter &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; (the file in your laptop/workstation, at &#039;&#039;&#039;~/alpine.znetboot&#039;&#039;&#039;)&lt;br /&gt;
* On &amp;quot;Host File Name&amp;quot; box, enter &#039;&#039;&#039;alpine znetboot&#039;&#039;&#039; (the file will be in z/VM console)&lt;br /&gt;
&lt;br /&gt;
{{Note|Beware the difference between &#039;&#039;&#039;the dot &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;the space &amp;lt;code&amp;gt; &amp;lt;/code&amp;gt;&#039;&#039;&#039; characters in the file names.}}&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;&#039;&#039;Send to host&#039;&#039;&#039;&lt;br /&gt;
* Choose &#039;&#039;&#039;Host is VM/CMS&#039;&#039;&#039;&lt;br /&gt;
* Choose either &#039;&#039;&#039;Fixed&#039;&#039;&#039; or &#039;&#039;&#039;Variable&#039;&#039;&#039; for &#039;&#039;&#039;Record Format&#039;&#039;&#039;&lt;br /&gt;
:Enter a number for LRECL and BLKSIZE, respectively&lt;br /&gt;
{{Note|Any line in &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; that has more 80 chars (columns) will be splitted into more than 1 line when uploaded to z/VM (CMS) console via 3270. Count the number of characters/column of the longest line in your &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; and fill it in LRECL. There is no restriction for BLKSIZE but 80 is preferred.}}&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Transfer File&#039;&#039;&#039; box&lt;br /&gt;
&lt;br /&gt;
Repeat the same steps with &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== (Optional) Check the configuration files ====&lt;br /&gt;
On 3270 client, enter following commands to check if the configuration files are correctly transferred:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit alpine znetboot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit znetboot exec&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit curl rex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &amp;lt;code&amp;gt;filel&amp;lt;/code&amp;gt; and put &amp;lt;code&amp;gt;xedit&amp;lt;/code&amp;gt; on CMD column to edit respective file.&lt;br /&gt;
&lt;br /&gt;
==== Start ZNETBOOT ====&lt;br /&gt;
On 3270 client, type below command and wait till Figure 3.: [[File:X3270-3.png|right|300px|thumb|Figure 3.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;znetboot alpine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 4. Installation =&lt;br /&gt;
If you install on z/VM, steps in this part does not involve the interaction with the 3270 client anymore. Everything is done in the terminal with SSH client.&lt;br /&gt;
&lt;br /&gt;
If you install on KVM, you can either SSH into the installer (below) or directly use the console starting qemu.&lt;br /&gt;
&lt;br /&gt;
Either installing in KVM or z/VM environments, from your workstation/laptop, you will be able to run:&lt;br /&gt;
 $ ssh root@192.168.1.2 (change ip address to what you specified earlier)&lt;br /&gt;
&lt;br /&gt;
Remaining steps are similar to installing Alpine on other architectures (x86, arm, ppc, etc.), either on KVM (using virtio/SCSI disks) or on z/VM with FBA DASDs. Installing on ECKD DASDs requires an additional step, as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is the detailed walkthrough of installing Alpine on a single ECKD DASD using LVM and extend that LVM to the second ECKD DASD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After SSH-ing into the Alpine installer, run:&lt;br /&gt;
 # setup-alpine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Select keyboard layout [none]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter system hostname (short form, e.g. &#039;foo&#039;) [localhost]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter your hostname&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available interfaces are: eth0.&lt;br /&gt;
Enter &#039;?&#039; for help on bridges, bonding and vlans.&lt;br /&gt;
Which one do you want to initialize? (or &#039;?&#039; or &#039;done&#039;) [eth0]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:type &#039;eth0&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Ip address for eth0? (or &#039;dhcp&#039;, &#039;none&#039;, &#039;?&#039;) [192.168.1.2]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter ip address or &#039;dhcp&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Netmask? [255.255.255.0]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter netmask&lt;br /&gt;
&amp;lt;code&amp;gt;Gateway? (or &#039;none&#039;) [192.168.1.1]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter gateway&#039;s ip address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Do you want to do any manual network configuration? [no]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;no&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS domain name? (e.g &#039;bar.com&#039;) []&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter domain name or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS nameserver(s)? [8.8.8.8 ]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter DNS nameserver&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Changing password for root&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter root password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which timezone are you in? (&#039;?&#039; for list) [UTC]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter timezone or &#039;?&#039; for list of timezones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;HTTP/FTP proxy URL? (e.g. &#039;http://proxy:8080&#039;, or &#039;none&#039;) [none]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter proxy or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter mirror number (1-27) or URL to add (or r/f/e/done) [f]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter a number or &#039;r&#039; or &#039;f&#039; or &#039;e&#039; or &#039;done&#039; as described&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which SSH server? (&#039;openssh&#039;, &#039;dropbear&#039; or &#039;none&#039;) [openssh]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter SSH server or press Enter for openssh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;busybox&#039; or press Enter for chrony&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; (next step is the additional step for ECKD DASDs on z/VM)&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available ECKD DASD(s) are:&lt;br /&gt;
  0.0.04c0	(3390/0c 3990/e9 IBM)&lt;br /&gt;
  0.0.05d1	(3390/0c 3990/e9 IBM)&lt;br /&gt;
Which ECKD DASD(s) would you like to be formatted using dasdfmt? (enter &#039;?&#039; for help) [all]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;all&#039; or &#039;0.0.04c0 0.0.05d1&#039; &#039;&#039;&#039;(separated by a space)&#039;&#039;&#039; to format all/both DASDs&lt;br /&gt;
:enter &#039;0.0.04c0&#039; or &#039;0.0.05d1&#039; to format respective DASD&lt;br /&gt;
:enter &#039;?&#039; for help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;WARNING: Erase ECKD DASD 0.0.04c0? [y/N]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;y&#039; to format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available disks are:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
Which disk(s) would you like to use? (or &#039;?&#039; for help or &#039;none&#039;) [dasda]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;dasda&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039;, &#039;lvm&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;lvm&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected (with LVM):&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;sys&#039; to install Alpine on disk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WARNING: The following disk(s) will be erased:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
WARNING: Erase the above disk(s) and continue? [y/N]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;y&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;&lt;br /&gt;
:the installation is finished&lt;br /&gt;
&lt;br /&gt;
At this point, don&#039;t poweroff the installer right away. Go to [https://wiki.alpinelinux.org/wiki/S390x#Copying_SSH_keys_to_new_Alpine_system &amp;quot;Copying SSH keys to new Alpine system&amp;quot;] (below) to have SSH access to your new Alpine system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copying SSH keys to new Alpine system ==&lt;br /&gt;
&lt;br /&gt;
By default, Alpine disables root login with a password via SSH. SSH keys are used instead.&lt;br /&gt;
&lt;br /&gt;
After the installer&#039;s done running (&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;), there are 2 ways to copy your SSH key into the new Alpine system:&lt;br /&gt;
* Option 1: mount the installed disk and copy the SSH keys while still at the installer&#039;s terminal&lt;br /&gt;
* Option 2: poweroff the installer, start the new Alpine system and directly add the SSH keys&lt;br /&gt;
::: if you install on KVM, boot the new Alpine system on qemu, and copy the SSH keys&lt;br /&gt;
::: if you install on z/VM, use the 3270 client to ipl the new Alpine system and copy the SSH keys&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;lvm&#039; + &#039;sys&#039; installation (like in above example), do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/vg0/lv_root /mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;sys&#039; (without LVM) installation, do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/dasda3 /mnt&amp;lt;/code&amp;gt; (change dasda to dasdb or dasdc, etc. for whichever DASD you chose)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In &#039;sys&#039; installation, 1st partition is boot, 2nd partition is swap, 3rd partition is root }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you use KVM, start qemu with new Alpine system (removing &amp;lt;code&amp;gt;-kernel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-initrd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-append&amp;lt;/code&amp;gt; options)&lt;br /&gt;
&lt;br /&gt;
If you use z/VM, open the 3270 client, login with your z/VM username and password. You may need to run &amp;lt;code&amp;gt; ipl cms&amp;lt;/code&amp;gt;. Then run &amp;lt;code&amp;gt; ipl 04c0&amp;lt;/code&amp;gt; (or whichever DASD device you chose as root disk in earlier steps).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wait for new Alpine system go up, then login as root user while in the qemu console (on KVM) or 3270 client (on z/VM). Then run:&lt;br /&gt;
::&amp;lt;code&amp;gt; # mkdir /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # wget https://your-website.com/your-ssh-key.pub -O /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 700 /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Login to new Alpine system ==&lt;br /&gt;
On your workstation/laptop, use SSH client to login new Alpine system:&lt;br /&gt;
&amp;lt;code&amp;gt; $ ssh root@192.168.1.2&amp;lt;/code&amp;gt; (or whichever ip address you used)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extending LVM volume ==&lt;br /&gt;
After logging in to your new Alpine system, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add -q util-linux e2fsprogs-extra&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  1.6G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk&lt;br /&gt;
&lt;br /&gt;
# dasdfmt -b 4096 -d cdl -yp /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# fdasd -a /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# pvcreate /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# vgextend vg0 /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# lvextend -l +100%FREE /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# resize2fs /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk &lt;br /&gt;
└─dasdb1         94:5    0  2.3G  0 part &lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 5. Tips =&lt;br /&gt;
If you want to disable swap partition, after finishing NTP client step, quit the installer by pressing &amp;lt;code&amp;gt;Ctrl + C&amp;lt;/code&amp;gt;. Then run following command to complete remaining steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# setup-disk -s 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you do &#039;sys&#039; installation, there will be no swap partition anymore and 1st partition will be boot, 2nd partition will be root}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:IBM]]&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=16039</id>
		<title>S390x/Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=16039"/>
		<updated>2019-07-03T12:11:29Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 1. Known Issues =&lt;br /&gt;
1. Installation on 2 or more DASDs (either ECKD and FBA) on z/VM is not supported in the installer script (&amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;) at the moment. If you want to install/extend on more than 1 DASD, see [https://wiki.alpinelinux.org/wiki/S390x#Extending_LVM_volume &amp;quot;Extending LVM volume&amp;quot;]. However, installation on 2 or more virtio (SCSI) disks on KVM are supported just like other architectures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 2. The boot media =&lt;br /&gt;
&lt;br /&gt;
For KVM, both ISO image and netboot media (kernel and initramfs) are supported.&lt;br /&gt;
&lt;br /&gt;
For z/VM, netboot media is supported.&lt;br /&gt;
&lt;br /&gt;
For LPAR, netboot media is supported. See [https://wiki.alpinelinux.org/wiki/S390x/Installation/LPAR &amp;quot;LPAR&amp;quot;] for more information.&lt;br /&gt;
&lt;br /&gt;
Boot media are found at:&lt;br /&gt;
&lt;br /&gt;
* http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel parameters (and parmfile) ==&lt;br /&gt;
The Alpine s390x boot media requires following kernel parameters to work: (Details at : &amp;lt;code&amp;gt;https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=dhcp&amp;lt;/code&amp;gt; : use DHCP for network configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=client-ip:server-ip:gw-ip:netmask:hostname:device:autoconf:dns1:dns2&amp;lt;/code&amp;gt; : use static IP configuration, each field is separated by a colon &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;client-ip&amp;lt;/code&amp;gt; ip address of the guest VM where we are going to run the installer&lt;br /&gt;
* &amp;lt;code&amp;gt;server-ip&amp;lt;/code&amp;gt; not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;gw-ip&amp;lt;/code&amp;gt;     the gateway ip address&lt;br /&gt;
* &amp;lt;code&amp;gt;netmask&amp;lt;/code&amp;gt;   the netmask&lt;br /&gt;
* &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;    the network interface of the guest VM, default is &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; if left blank&lt;br /&gt;
* &amp;lt;code&amp;gt;autoconf&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dns1&amp;lt;/code&amp;gt;      address of the DNS server&lt;br /&gt;
* &amp;lt;code&amp;gt;dns2&amp;lt;/code&amp;gt;      address of the 2nd DNS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; : the location of the Alpine repository from which packages are downloaded.&lt;br /&gt;
&lt;br /&gt;
:For stable release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/v3.10/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:For rolling release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/edge/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modloop=&amp;lt;/code&amp;gt; : the remote location of the image containing kernel&#039;s modules, required for LVM and raid setup.&lt;br /&gt;
&lt;br /&gt;
:The remote location of the &amp;lt;code&amp;gt;modloop&amp;lt;/code&amp;gt; image is the same as the kernel and initramfs (see below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; : the remote location of your SSH public key which is used to allow SSH connection into the installer. It will be downloaded and copied into &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; in the installer.&lt;br /&gt;
&lt;br /&gt;
{{Note|Fetching public keys from HTTP, HTTPS and FTPS are supported. HTTP should only be used in local development network where you own the network.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Alpine Linux security policies are against using passwords for root access via SSH as we consider using public-private key pairs is a much better approach.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;z/VM only&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt; : the addresses of the DASD devices, either ECKD or FBA DASDs. Each device is separated with a comma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; : the network interface type and its subchannels. At the moment, only QETH layer 2 is supported, thus the name &amp;lt;code&amp;gt;qeth_l2&amp;lt;/code&amp;gt; is used (see below).&lt;br /&gt;
&lt;br /&gt;
= 3. Pre-installation =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
Create a virtual disk:&lt;br /&gt;
 $ qemu-img create alpine_disk.qcow2 5G&lt;br /&gt;
&lt;br /&gt;
==== Using iso image ====&lt;br /&gt;
Download latest iso image from : http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x&lt;br /&gt;
&lt;br /&gt;
Start qemu:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -boot d -cdrom alpine-standard-3.10.0-s390x.iso&lt;br /&gt;
&lt;br /&gt;
==== Using netboot media ====&lt;br /&gt;
Download the latest [http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/vmlinuz-vanilla kernel] and [http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/initramfs-vanilla initramfs].&lt;br /&gt;
&lt;br /&gt;
Start qemu: (modify &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -kernel vmlinuz-vanilla \&lt;br /&gt;
        -initrd initramfs-vanilla \&lt;br /&gt;
        -append &amp;quot;ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1 alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.10/main modloop=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/modloop-vanilla ssh_key=https://your-website.com/your-ssh-key.pub&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you have direct access to the qemu console, &amp;lt;code&amp;gt;ssh_key&amp;lt;/code&amp;gt; might not be required.}}&lt;br /&gt;
&lt;br /&gt;
== z/VM ==&lt;br /&gt;
To ease out the process of downloading the images, punch the readers, ipl, etc., [https://github.com/trothr/znetboot &#039;&#039;&#039;ZNETBOOT&#039;&#039;&#039;] is used.&lt;br /&gt;
&lt;br /&gt;
==== Create the parm file ====&lt;br /&gt;
On your workstation/laptop, create a file named &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt; in your home directory with contents below (modify &amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ZNETBOOT_KERNEL=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/vmlinuz-vanilla&lt;br /&gt;
ZNETBOOT_INITRD=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/initramfs-vanilla&lt;br /&gt;
ZNETBOOT_PROGRESS=1M&lt;br /&gt;
&lt;br /&gt;
alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.10/main&lt;br /&gt;
modloop=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/modloop-vanilla&lt;br /&gt;
&lt;br /&gt;
dasd=0.0.04c0,0.0.05d1&lt;br /&gt;
s390x_net=qeth_l2,0.0.0560,0.0.0561,0.0.0562&lt;br /&gt;
ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1&lt;br /&gt;
&lt;br /&gt;
ssh_key=https://your-website.com/your-ssh-key.pub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upload to z/VM system via 3270 client ====&lt;br /&gt;
[[File:X3270-1.png|right|300px|thumb|Figure 1.]]&lt;br /&gt;
On your workstation/laptop, download 2 files [https://raw.githubusercontent.com/trothr/znetboot/master/znetboot.exec &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;], and [https://raw.githubusercontent.com/trothr/znetboot/master/curl.rexx &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt;] to your home directory.&lt;br /&gt;
&lt;br /&gt;
Open 3270 client and log in the z/VM system with your z/VM username and password.&lt;br /&gt;
&lt;br /&gt;
Upload 3 files &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; to the z/VM environment using the 3270 client (this tutorial uses x3270). On the top left corner, click &amp;quot;File&amp;quot;, then &amp;quot;File Transfer&amp;quot;. (Figure 1.)&lt;br /&gt;
&lt;br /&gt;
Do following steps : (Figure 2.) [[File:X3270-2.png|right|300px|thumb|Figure 2.]]&lt;br /&gt;
* On &amp;quot;Local File Name&amp;quot; box, enter &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; (the file in your laptop/workstation, at &#039;&#039;&#039;~/alpine.znetboot&#039;&#039;&#039;)&lt;br /&gt;
* On &amp;quot;Host File Name&amp;quot; box, enter &#039;&#039;&#039;alpine znetboot&#039;&#039;&#039; (the file will be in z/VM console)&lt;br /&gt;
&lt;br /&gt;
{{Note|Beware the difference between &#039;&#039;&#039;the dot &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;the space &amp;lt;code&amp;gt; &amp;lt;/code&amp;gt;&#039;&#039;&#039; characters in the file names.}}&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;&#039;&#039;Send to host&#039;&#039;&#039;&lt;br /&gt;
* Choose &#039;&#039;&#039;Host is VM/CMS&#039;&#039;&#039;&lt;br /&gt;
* Choose either &#039;&#039;&#039;Fixed&#039;&#039;&#039; or &#039;&#039;&#039;Variable&#039;&#039;&#039; for &#039;&#039;&#039;Record Format&#039;&#039;&#039;&lt;br /&gt;
:Enter a number for LRECL and BLKSIZE, respectively&lt;br /&gt;
{{Note|Any line in &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; that has more 80 chars (columns) will be splitted into more than 1 line when uploaded to z/VM (CMS) console via 3270. Count the number of characters/column of the longest line in your &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; and fill it in LRECL. There is no restriction for BLKSIZE but 80 is preferred.}}&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Transfer File&#039;&#039;&#039; box&lt;br /&gt;
&lt;br /&gt;
Repeat the same steps with &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== (Optional) Check the configuration files ====&lt;br /&gt;
On 3270 client, enter following commands to check if the configuration files are correctly transferred:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit alpine znetboot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit znetboot exec&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit curl rex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &amp;lt;code&amp;gt;filel&amp;lt;/code&amp;gt; and put &amp;lt;code&amp;gt;xedit&amp;lt;/code&amp;gt; on CMD column to edit respective file.&lt;br /&gt;
&lt;br /&gt;
==== Start ZNETBOOT ====&lt;br /&gt;
On 3270 client, type below command and wait till Figure 3.: [[File:X3270-3.png|right|300px|thumb|Figure 3.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;znetboot alpine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 4. Installation =&lt;br /&gt;
If you install on z/VM, steps in this part does not involve the interaction with the 3270 client anymore. Everything is done in the terminal with SSH client.&lt;br /&gt;
&lt;br /&gt;
If you install on KVM, you can either SSH into the installer (below) or directly use the console starting qemu.&lt;br /&gt;
&lt;br /&gt;
Either installing in KVM or z/VM environments, from your workstation/laptop, you will be able to run:&lt;br /&gt;
 $ ssh root@192.168.1.2 (change ip address to what you specified earlier)&lt;br /&gt;
&lt;br /&gt;
Remaining steps are similar to installing Alpine on other architectures (x86, arm, ppc, etc.), either on KVM (using virtio/SCSI disks) or on z/VM with FBA DASDs. Installing on ECKD DASDs requires an additional step, as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is the detailed walkthrough of installing Alpine on a single ECKD DASD using LVM and extend that LVM to the second ECKD DASD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After SSH-ing into the Alpine installer, run:&lt;br /&gt;
 # setup-alpine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Select keyboard layout [none]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter system hostname (short form, e.g. &#039;foo&#039;) [localhost]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter your hostname&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available interfaces are: eth0.&lt;br /&gt;
Enter &#039;?&#039; for help on bridges, bonding and vlans.&lt;br /&gt;
Which one do you want to initialize? (or &#039;?&#039; or &#039;done&#039;) [eth0]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:type &#039;eth0&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Ip address for eth0? (or &#039;dhcp&#039;, &#039;none&#039;, &#039;?&#039;) [192.168.1.2]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter ip address or &#039;dhcp&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Netmask? [255.255.255.0]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter netmask&lt;br /&gt;
&amp;lt;code&amp;gt;Gateway? (or &#039;none&#039;) [192.168.1.1]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter gateway&#039;s ip address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Do you want to do any manual network configuration? [no]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;no&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS domain name? (e.g &#039;bar.com&#039;) []&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter domain name or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS nameserver(s)? [8.8.8.8 ]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter DNS nameserver&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Changing password for root&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter root password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which timezone are you in? (&#039;?&#039; for list) [UTC]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter timezone or &#039;?&#039; for list of timezones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;HTTP/FTP proxy URL? (e.g. &#039;http://proxy:8080&#039;, or &#039;none&#039;) [none]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter proxy or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter mirror number (1-27) or URL to add (or r/f/e/done) [f]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter a number or &#039;r&#039; or &#039;f&#039; or &#039;e&#039; or &#039;done&#039; as described&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which SSH server? (&#039;openssh&#039;, &#039;dropbear&#039; or &#039;none&#039;) [openssh]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter SSH server or press Enter for openssh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;busybox&#039; or press Enter for chrony&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; (next step is the additional step for ECKD DASDs on z/VM)&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available ECKD DASD(s) are:&lt;br /&gt;
  0.0.04c0	(3390/0c 3990/e9 IBM)&lt;br /&gt;
  0.0.05d1	(3390/0c 3990/e9 IBM)&lt;br /&gt;
Which ECKD DASD(s) would you like to be formatted using dasdfmt? (enter &#039;?&#039; for help) [all]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;all&#039; or &#039;0.0.04c0 0.0.05d1&#039; &#039;&#039;&#039;(separated by a space)&#039;&#039;&#039; to format all/both DASDs&lt;br /&gt;
:enter &#039;0.0.04c0&#039; or &#039;0.0.05d1&#039; to format respective DASD&lt;br /&gt;
:enter &#039;?&#039; for help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;WARNING: Erase ECKD DASD 0.0.04c0? [y/N]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;y&#039; to format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available disks are:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
Which disk(s) would you like to use? (or &#039;?&#039; for help or &#039;none&#039;) [dasda]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;dasda&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039;, &#039;lvm&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;lvm&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected (with LVM):&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;sys&#039; to install Alpine on disk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WARNING: The following disk(s) will be erased:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
WARNING: Erase the above disk(s) and continue? [y/N]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;y&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;&lt;br /&gt;
:the installation is finished&lt;br /&gt;
&lt;br /&gt;
At this point, don&#039;t poweroff the installer right away. Go to [https://wiki.alpinelinux.org/wiki/S390x#Copying_SSH_keys_to_new_Alpine_system &amp;quot;Copying SSH keys to new Alpine system&amp;quot;] (below) to have SSH access to your new Alpine system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copying SSH keys to new Alpine system ==&lt;br /&gt;
&lt;br /&gt;
By default, Alpine disables root login with a password via SSH. SSH keys are used instead.&lt;br /&gt;
&lt;br /&gt;
After the installer&#039;s done running (&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;), there are 2 ways to copy your SSH key into the new Alpine system:&lt;br /&gt;
* Option 1: mount the installed disk and copy the SSH keys while still at the installer&#039;s terminal&lt;br /&gt;
* Option 2: poweroff the installer, start the new Alpine system and directly add the SSH keys&lt;br /&gt;
::: if you install on KVM, boot the new Alpine system on qemu, and copy the SSH keys&lt;br /&gt;
::: if you install on z/VM, use the 3270 client to ipl the new Alpine system and copy the SSH keys&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;lvm&#039; + &#039;sys&#039; installation (like in above example), do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/vg0/lv_root /mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;sys&#039; (without LVM) installation, do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/dasda3 /mnt&amp;lt;/code&amp;gt; (change dasda to dasdb or dasdc, etc. for whichever DASD you chose)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In &#039;sys&#039; installation, 1st partition is boot, 2nd partition is swap, 3rd partition is root }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you use KVM, start qemu with new Alpine system (removing &amp;lt;code&amp;gt;-kernel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-initrd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-append&amp;lt;/code&amp;gt; options)&lt;br /&gt;
&lt;br /&gt;
If you use z/VM, open the 3270 client, login with your z/VM username and password. You may need to run &amp;lt;code&amp;gt; ipl cms&amp;lt;/code&amp;gt;. Then run &amp;lt;code&amp;gt; ipl 04c0&amp;lt;/code&amp;gt; (or whichever DASD device you chose as root disk in earlier steps).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wait for new Alpine system go up, then login as root user while in the qemu console (on KVM) or 3270 client (on z/VM). Then run:&lt;br /&gt;
::&amp;lt;code&amp;gt; # mkdir /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # wget https://your-website.com/your-ssh-key.pub -O /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 700 /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Login to new Alpine system ==&lt;br /&gt;
On your workstation/laptop, use SSH client to login new Alpine system:&lt;br /&gt;
&amp;lt;code&amp;gt; $ ssh root@192.168.1.2&amp;lt;/code&amp;gt; (or whichever ip address you used)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extending LVM volume ==&lt;br /&gt;
After logging in to your new Alpine system, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add -q util-linux e2fsprogs-extra&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  1.6G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk&lt;br /&gt;
&lt;br /&gt;
# dasdfmt -b 4096 -d cdl -yp /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# fdasd -a /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# pvcreate /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# vgextend vg0 /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# lvextend -l +100%FREE /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# resize2fs /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk &lt;br /&gt;
└─dasdb1         94:5    0  2.3G  0 part &lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 5. Tips =&lt;br /&gt;
If you want to disable swap partition, after finishing NTP client step, quit the installer by pressing &amp;lt;code&amp;gt;Ctrl + C&amp;lt;/code&amp;gt;. Then run following command to complete remaining steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# setup-disk -s 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you do &#039;sys&#039; installation, there will be no swap partition anymore and 1st partition will be boot, 2nd partition will be root}}&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=16038</id>
		<title>S390x/Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=16038"/>
		<updated>2019-07-03T12:10:43Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: update to v3.10&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 1. Known Issues =&lt;br /&gt;
1. Installation on 2 or more DASDs (either ECKD and FBA) on z/VM is not supported in the installer script (&amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;) at the moment. If you want to install/extend on more than 1 DASD, see [https://wiki.alpinelinux.org/wiki/S390x#Extending_LVM_volume &amp;quot;Extending LVM volume&amp;quot;]. However, installation on 2 or more virtio (SCSI) disks on KVM are supported just like other architectures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 2. The boot media =&lt;br /&gt;
&lt;br /&gt;
For KVM, both ISO image and netboot media (kernel and initramfs) are supported.&lt;br /&gt;
&lt;br /&gt;
For z/VM, netboot media is supported.&lt;br /&gt;
&lt;br /&gt;
For LPAR, netboot media is supported. See [https://wiki.alpinelinux.org/wiki/S390x/Installation/LPAR &amp;quot;LPAR&amp;quot;] for more information.&lt;br /&gt;
&lt;br /&gt;
Boot media are found at:&lt;br /&gt;
&lt;br /&gt;
* http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel parameters (and parmfile) ==&lt;br /&gt;
The Alpine s390x boot media requires following kernel parameters to work: (Details at : &amp;lt;code&amp;gt;https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=dhcp&amp;lt;/code&amp;gt; : use DHCP for network configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=client-ip:server-ip:gw-ip:netmask:hostname:device:autoconf:dns1:dns2&amp;lt;/code&amp;gt; : use static IP configuration, each field is separated by a colon &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;client-ip&amp;lt;/code&amp;gt; ip address of the guest VM where we are going to run the installer&lt;br /&gt;
* &amp;lt;code&amp;gt;server-ip&amp;lt;/code&amp;gt; not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;gw-ip&amp;lt;/code&amp;gt;     the gateway ip address&lt;br /&gt;
* &amp;lt;code&amp;gt;netmask&amp;lt;/code&amp;gt;   the netmask&lt;br /&gt;
* &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;    the network interface of the guest VM, default is &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; if left blank&lt;br /&gt;
* &amp;lt;code&amp;gt;autoconf&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dns1&amp;lt;/code&amp;gt;      address of the DNS server&lt;br /&gt;
* &amp;lt;code&amp;gt;dns2&amp;lt;/code&amp;gt;      address of the 2nd DNS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; : the location of the Alpine repository from which packages are downloaded.&lt;br /&gt;
&lt;br /&gt;
:For stable release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/v3.10/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:For rolling release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/edge/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modloop=&amp;lt;/code&amp;gt; : the remote location of the image containing kernel&#039;s modules, required for LVM and raid setup.&lt;br /&gt;
&lt;br /&gt;
:The remote location of the &amp;lt;code&amp;gt;modloop&amp;lt;/code&amp;gt; image is the same as the kernel and initramfs (see below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; : the remote location of your SSH public key which is used to allow SSH connection into the installer. It will be downloaded and copied into &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; in the installer.&lt;br /&gt;
&lt;br /&gt;
{{Note|Fetching public keys from HTTP, HTTPS and FTPS are supported. HTTP should only be used in local development network where you own the network.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Alpine Linux security policies are against using passwords for root access via SSH as we consider using public-private key pairs is a much better approach.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;z/VM only&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt; : the addresses of the DASD devices, either ECKD or FBA DASDs. Each device is separated with a comma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; : the network interface type and its subchannels. At the moment, only QETH layer 2 is supported, thus the name &amp;lt;code&amp;gt;qeth_l2&amp;lt;/code&amp;gt; is used (see below).&lt;br /&gt;
&lt;br /&gt;
= 3. Pre-installation =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
Create a virtual disk:&lt;br /&gt;
 $ qemu-img create alpine_disk.qcow2 5G&lt;br /&gt;
&lt;br /&gt;
==== Using iso image ====&lt;br /&gt;
Download latest iso image from : http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x&lt;br /&gt;
&lt;br /&gt;
Start qemu:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -boot d -cdrom alpine-standard-3.9.0-s390x.iso&lt;br /&gt;
&lt;br /&gt;
==== Using netboot media ====&lt;br /&gt;
Download the latest [http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/vmlinuz-vanilla kernel] and [http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/initramfs-vanilla initramfs].&lt;br /&gt;
&lt;br /&gt;
Start qemu: (modify &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -kernel vmlinuz-vanilla \&lt;br /&gt;
        -initrd initramfs-vanilla \&lt;br /&gt;
        -append &amp;quot;ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1 alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.10/main modloop=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/modloop-vanilla ssh_key=https://your-website.com/your-ssh-key.pub&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you have direct access to the qemu console, &amp;lt;code&amp;gt;ssh_key&amp;lt;/code&amp;gt; might not be required.}}&lt;br /&gt;
&lt;br /&gt;
== z/VM ==&lt;br /&gt;
To ease out the process of downloading the images, punch the readers, ipl, etc., [https://github.com/trothr/znetboot &#039;&#039;&#039;ZNETBOOT&#039;&#039;&#039;] is used.&lt;br /&gt;
&lt;br /&gt;
==== Create the parm file ====&lt;br /&gt;
On your workstation/laptop, create a file named &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt; in your home directory with contents below (modify &amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ZNETBOOT_KERNEL=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/vmlinuz-vanilla&lt;br /&gt;
ZNETBOOT_INITRD=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/initramfs-vanilla&lt;br /&gt;
ZNETBOOT_PROGRESS=1M&lt;br /&gt;
&lt;br /&gt;
alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.10/main&lt;br /&gt;
modloop=http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/s390x/netboot/modloop-vanilla&lt;br /&gt;
&lt;br /&gt;
dasd=0.0.04c0,0.0.05d1&lt;br /&gt;
s390x_net=qeth_l2,0.0.0560,0.0.0561,0.0.0562&lt;br /&gt;
ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1&lt;br /&gt;
&lt;br /&gt;
ssh_key=https://your-website.com/your-ssh-key.pub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upload to z/VM system via 3270 client ====&lt;br /&gt;
[[File:X3270-1.png|right|300px|thumb|Figure 1.]]&lt;br /&gt;
On your workstation/laptop, download 2 files [https://raw.githubusercontent.com/trothr/znetboot/master/znetboot.exec &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;], and [https://raw.githubusercontent.com/trothr/znetboot/master/curl.rexx &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt;] to your home directory.&lt;br /&gt;
&lt;br /&gt;
Open 3270 client and log in the z/VM system with your z/VM username and password.&lt;br /&gt;
&lt;br /&gt;
Upload 3 files &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; to the z/VM environment using the 3270 client (this tutorial uses x3270). On the top left corner, click &amp;quot;File&amp;quot;, then &amp;quot;File Transfer&amp;quot;. (Figure 1.)&lt;br /&gt;
&lt;br /&gt;
Do following steps : (Figure 2.) [[File:X3270-2.png|right|300px|thumb|Figure 2.]]&lt;br /&gt;
* On &amp;quot;Local File Name&amp;quot; box, enter &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; (the file in your laptop/workstation, at &#039;&#039;&#039;~/alpine.znetboot&#039;&#039;&#039;)&lt;br /&gt;
* On &amp;quot;Host File Name&amp;quot; box, enter &#039;&#039;&#039;alpine znetboot&#039;&#039;&#039; (the file will be in z/VM console)&lt;br /&gt;
&lt;br /&gt;
{{Note|Beware the difference between &#039;&#039;&#039;the dot &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;the space &amp;lt;code&amp;gt; &amp;lt;/code&amp;gt;&#039;&#039;&#039; characters in the file names.}}&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;&#039;&#039;Send to host&#039;&#039;&#039;&lt;br /&gt;
* Choose &#039;&#039;&#039;Host is VM/CMS&#039;&#039;&#039;&lt;br /&gt;
* Choose either &#039;&#039;&#039;Fixed&#039;&#039;&#039; or &#039;&#039;&#039;Variable&#039;&#039;&#039; for &#039;&#039;&#039;Record Format&#039;&#039;&#039;&lt;br /&gt;
:Enter a number for LRECL and BLKSIZE, respectively&lt;br /&gt;
{{Note|Any line in &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; that has more 80 chars (columns) will be splitted into more than 1 line when uploaded to z/VM (CMS) console via 3270. Count the number of characters/column of the longest line in your &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; and fill it in LRECL. There is no restriction for BLKSIZE but 80 is preferred.}}&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Transfer File&#039;&#039;&#039; box&lt;br /&gt;
&lt;br /&gt;
Repeat the same steps with &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== (Optional) Check the configuration files ====&lt;br /&gt;
On 3270 client, enter following commands to check if the configuration files are correctly transferred:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit alpine znetboot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit znetboot exec&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit curl rex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &amp;lt;code&amp;gt;filel&amp;lt;/code&amp;gt; and put &amp;lt;code&amp;gt;xedit&amp;lt;/code&amp;gt; on CMD column to edit respective file.&lt;br /&gt;
&lt;br /&gt;
==== Start ZNETBOOT ====&lt;br /&gt;
On 3270 client, type below command and wait till Figure 3.: [[File:X3270-3.png|right|300px|thumb|Figure 3.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;znetboot alpine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 4. Installation =&lt;br /&gt;
If you install on z/VM, steps in this part does not involve the interaction with the 3270 client anymore. Everything is done in the terminal with SSH client.&lt;br /&gt;
&lt;br /&gt;
If you install on KVM, you can either SSH into the installer (below) or directly use the console starting qemu.&lt;br /&gt;
&lt;br /&gt;
Either installing in KVM or z/VM environments, from your workstation/laptop, you will be able to run:&lt;br /&gt;
 $ ssh root@192.168.1.2 (change ip address to what you specified earlier)&lt;br /&gt;
&lt;br /&gt;
Remaining steps are similar to installing Alpine on other architectures (x86, arm, ppc, etc.), either on KVM (using virtio/SCSI disks) or on z/VM with FBA DASDs. Installing on ECKD DASDs requires an additional step, as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is the detailed walkthrough of installing Alpine on a single ECKD DASD using LVM and extend that LVM to the second ECKD DASD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After SSH-ing into the Alpine installer, run:&lt;br /&gt;
 # setup-alpine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Select keyboard layout [none]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter system hostname (short form, e.g. &#039;foo&#039;) [localhost]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter your hostname&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available interfaces are: eth0.&lt;br /&gt;
Enter &#039;?&#039; for help on bridges, bonding and vlans.&lt;br /&gt;
Which one do you want to initialize? (or &#039;?&#039; or &#039;done&#039;) [eth0]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:type &#039;eth0&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Ip address for eth0? (or &#039;dhcp&#039;, &#039;none&#039;, &#039;?&#039;) [192.168.1.2]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter ip address or &#039;dhcp&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Netmask? [255.255.255.0]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter netmask&lt;br /&gt;
&amp;lt;code&amp;gt;Gateway? (or &#039;none&#039;) [192.168.1.1]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter gateway&#039;s ip address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Do you want to do any manual network configuration? [no]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;no&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS domain name? (e.g &#039;bar.com&#039;) []&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter domain name or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS nameserver(s)? [8.8.8.8 ]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter DNS nameserver&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Changing password for root&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter root password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which timezone are you in? (&#039;?&#039; for list) [UTC]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter timezone or &#039;?&#039; for list of timezones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;HTTP/FTP proxy URL? (e.g. &#039;http://proxy:8080&#039;, or &#039;none&#039;) [none]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter proxy or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter mirror number (1-27) or URL to add (or r/f/e/done) [f]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter a number or &#039;r&#039; or &#039;f&#039; or &#039;e&#039; or &#039;done&#039; as described&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which SSH server? (&#039;openssh&#039;, &#039;dropbear&#039; or &#039;none&#039;) [openssh]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter SSH server or press Enter for openssh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;busybox&#039; or press Enter for chrony&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; (next step is the additional step for ECKD DASDs on z/VM)&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available ECKD DASD(s) are:&lt;br /&gt;
  0.0.04c0	(3390/0c 3990/e9 IBM)&lt;br /&gt;
  0.0.05d1	(3390/0c 3990/e9 IBM)&lt;br /&gt;
Which ECKD DASD(s) would you like to be formatted using dasdfmt? (enter &#039;?&#039; for help) [all]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;all&#039; or &#039;0.0.04c0 0.0.05d1&#039; &#039;&#039;&#039;(separated by a space)&#039;&#039;&#039; to format all/both DASDs&lt;br /&gt;
:enter &#039;0.0.04c0&#039; or &#039;0.0.05d1&#039; to format respective DASD&lt;br /&gt;
:enter &#039;?&#039; for help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;WARNING: Erase ECKD DASD 0.0.04c0? [y/N]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;y&#039; to format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available disks are:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
Which disk(s) would you like to use? (or &#039;?&#039; for help or &#039;none&#039;) [dasda]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;dasda&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039;, &#039;lvm&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;lvm&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected (with LVM):&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;sys&#039; to install Alpine on disk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WARNING: The following disk(s) will be erased:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
WARNING: Erase the above disk(s) and continue? [y/N]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;y&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;&lt;br /&gt;
:the installation is finished&lt;br /&gt;
&lt;br /&gt;
At this point, don&#039;t poweroff the installer right away. Go to [https://wiki.alpinelinux.org/wiki/S390x#Copying_SSH_keys_to_new_Alpine_system &amp;quot;Copying SSH keys to new Alpine system&amp;quot;] (below) to have SSH access to your new Alpine system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copying SSH keys to new Alpine system ==&lt;br /&gt;
&lt;br /&gt;
By default, Alpine disables root login with a password via SSH. SSH keys are used instead.&lt;br /&gt;
&lt;br /&gt;
After the installer&#039;s done running (&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;), there are 2 ways to copy your SSH key into the new Alpine system:&lt;br /&gt;
* Option 1: mount the installed disk and copy the SSH keys while still at the installer&#039;s terminal&lt;br /&gt;
* Option 2: poweroff the installer, start the new Alpine system and directly add the SSH keys&lt;br /&gt;
::: if you install on KVM, boot the new Alpine system on qemu, and copy the SSH keys&lt;br /&gt;
::: if you install on z/VM, use the 3270 client to ipl the new Alpine system and copy the SSH keys&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;lvm&#039; + &#039;sys&#039; installation (like in above example), do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/vg0/lv_root /mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;sys&#039; (without LVM) installation, do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/dasda3 /mnt&amp;lt;/code&amp;gt; (change dasda to dasdb or dasdc, etc. for whichever DASD you chose)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In &#039;sys&#039; installation, 1st partition is boot, 2nd partition is swap, 3rd partition is root }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you use KVM, start qemu with new Alpine system (removing &amp;lt;code&amp;gt;-kernel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-initrd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-append&amp;lt;/code&amp;gt; options)&lt;br /&gt;
&lt;br /&gt;
If you use z/VM, open the 3270 client, login with your z/VM username and password. You may need to run &amp;lt;code&amp;gt; ipl cms&amp;lt;/code&amp;gt;. Then run &amp;lt;code&amp;gt; ipl 04c0&amp;lt;/code&amp;gt; (or whichever DASD device you chose as root disk in earlier steps).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wait for new Alpine system go up, then login as root user while in the qemu console (on KVM) or 3270 client (on z/VM). Then run:&lt;br /&gt;
::&amp;lt;code&amp;gt; # mkdir /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # wget https://your-website.com/your-ssh-key.pub -O /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 700 /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Login to new Alpine system ==&lt;br /&gt;
On your workstation/laptop, use SSH client to login new Alpine system:&lt;br /&gt;
&amp;lt;code&amp;gt; $ ssh root@192.168.1.2&amp;lt;/code&amp;gt; (or whichever ip address you used)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extending LVM volume ==&lt;br /&gt;
After logging in to your new Alpine system, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add -q util-linux e2fsprogs-extra&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  1.6G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk&lt;br /&gt;
&lt;br /&gt;
# dasdfmt -b 4096 -d cdl -yp /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# fdasd -a /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# pvcreate /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# vgextend vg0 /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# lvextend -l +100%FREE /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# resize2fs /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk &lt;br /&gt;
└─dasdb1         94:5    0  2.3G  0 part &lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 5. Tips =&lt;br /&gt;
If you want to disable swap partition, after finishing NTP client step, quit the installer by pressing &amp;lt;code&amp;gt;Ctrl + C&amp;lt;/code&amp;gt;. Then run following command to complete remaining steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# setup-disk -s 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you do &#039;sys&#039; installation, there will be no swap partition anymore and 1st partition will be boot, 2nd partition will be root}}&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=15984</id>
		<title>S390x/Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=15984"/>
		<updated>2019-06-06T22:53:10Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 1. Known Issues =&lt;br /&gt;
1. Installation on 2 or more DASDs (either ECKD and FBA) on z/VM is not supported in the installer script (&amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;) at the moment. If you want to install/extend on more than 1 DASD, see [https://wiki.alpinelinux.org/wiki/S390x#Extending_LVM_volume &amp;quot;Extending LVM volume&amp;quot;]. However, installation on 2 or more virtio (SCSI) disks on KVM are supported just like other architectures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 2. The boot media =&lt;br /&gt;
&lt;br /&gt;
For KVM, both ISO image and netboot media (kernel and initramfs) are supported.&lt;br /&gt;
&lt;br /&gt;
For z/VM, netboot media is supported.&lt;br /&gt;
&lt;br /&gt;
For LPAR, netboot media is supported. See [https://wiki.alpinelinux.org/wiki/S390x/Installation/LPAR &amp;quot;LPAR&amp;quot;] for more information.&lt;br /&gt;
&lt;br /&gt;
Boot media are found at:&lt;br /&gt;
&lt;br /&gt;
* http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel parameters (and parmfile) ==&lt;br /&gt;
The Alpine s390x boot media requires following kernel parameters to work: (Details at : &amp;lt;code&amp;gt;https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=dhcp&amp;lt;/code&amp;gt; : use DHCP for network configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=client-ip:server-ip:gw-ip:netmask:hostname:device:autoconf:dns1:dns2&amp;lt;/code&amp;gt; : use static IP configuration, each field is separated by a colon &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;client-ip&amp;lt;/code&amp;gt; ip address of the guest VM where we are going to run the installer&lt;br /&gt;
* &amp;lt;code&amp;gt;server-ip&amp;lt;/code&amp;gt; not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;gw-ip&amp;lt;/code&amp;gt;     the gateway ip address&lt;br /&gt;
* &amp;lt;code&amp;gt;netmask&amp;lt;/code&amp;gt;   the netmask&lt;br /&gt;
* &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;    the network interface of the guest VM, default is &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; if left blank&lt;br /&gt;
* &amp;lt;code&amp;gt;autoconf&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dns1&amp;lt;/code&amp;gt;      address of the DNS server&lt;br /&gt;
* &amp;lt;code&amp;gt;dns2&amp;lt;/code&amp;gt;      address of the 2nd DNS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; : the location of the Alpine repository from which packages are downloaded.&lt;br /&gt;
&lt;br /&gt;
:For stable release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/v3.9/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:For rolling release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/edge/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modloop=&amp;lt;/code&amp;gt; : the remote location of the image containing kernel&#039;s modules, required for LVM and raid setup.&lt;br /&gt;
&lt;br /&gt;
:The remote location of the &amp;lt;code&amp;gt;modloop&amp;lt;/code&amp;gt; image is the same as the kernel and initramfs (see below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; : the remote location of your SSH public key which is used to allow SSH connection into the installer. It will be downloaded and copied into &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; in the installer.&lt;br /&gt;
&lt;br /&gt;
{{Note|Fetching public keys from HTTP, HTTPS and FTPS are supported. HTTP should only be used in local development network where you own the network.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Alpine Linux security policies are against using passwords for root access via SSH as we consider using public-private key pairs is a much better approach.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;z/VM only&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt; : the addresses of the DASD devices, either ECKD or FBA DASDs. Each device is separated with a comma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; : the network interface type and its subchannels. At the moment, only QETH layer 2 is supported, thus the name &amp;lt;code&amp;gt;qeth_l2&amp;lt;/code&amp;gt; is used (see below).&lt;br /&gt;
&lt;br /&gt;
= 3. Pre-installation =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
Create a virtual disk:&lt;br /&gt;
 $ qemu-img create alpine_disk.qcow2 5G&lt;br /&gt;
&lt;br /&gt;
==== Using iso image ====&lt;br /&gt;
Download latest iso image from : http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x&lt;br /&gt;
&lt;br /&gt;
Start qemu:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -boot d -cdrom alpine-standard-3.9.0-s390x.iso&lt;br /&gt;
&lt;br /&gt;
==== Using netboot media ====&lt;br /&gt;
Download the latest [http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/vmlinuz-vanilla kernel] and [http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/initramfs-vanilla initramfs].&lt;br /&gt;
&lt;br /&gt;
Start qemu: (modify &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -kernel vmlinuz-vanilla \&lt;br /&gt;
        -initrd initramfs-vanilla \&lt;br /&gt;
        -append &amp;quot;ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1 alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.9/main modloop=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/modloop-vanilla ssh_key=https://your-website.com/your-ssh-key.pub&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you have direct access to the qemu console, &amp;lt;code&amp;gt;ssh_key&amp;lt;/code&amp;gt; might not be required.}}&lt;br /&gt;
&lt;br /&gt;
== z/VM ==&lt;br /&gt;
To ease out the process of downloading the images, punch the readers, ipl, etc., [https://github.com/trothr/znetboot &#039;&#039;&#039;ZNETBOOT&#039;&#039;&#039;] is used.&lt;br /&gt;
&lt;br /&gt;
==== Create the parm file ====&lt;br /&gt;
On your workstation/laptop, create a file named &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt; in your home directory with contents below (modify &amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ZNETBOOT_KERNEL=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/vmlinuz-vanilla&lt;br /&gt;
ZNETBOOT_INITRD=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/initramfs-vanilla&lt;br /&gt;
ZNETBOOT_PROGRESS=1M&lt;br /&gt;
&lt;br /&gt;
alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.9/main&lt;br /&gt;
modloop=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/modloop-vanilla&lt;br /&gt;
&lt;br /&gt;
dasd=0.0.04c0,0.0.05d1&lt;br /&gt;
s390x_net=qeth_l2,0.0.0560,0.0.0561,0.0.0562&lt;br /&gt;
ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1&lt;br /&gt;
&lt;br /&gt;
ssh_key=https://your-website.com/your-ssh-key.pub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upload to z/VM system via 3270 client ====&lt;br /&gt;
[[File:X3270-1.png|right|300px|thumb|Figure 1.]]&lt;br /&gt;
On your workstation/laptop, download 2 files [https://raw.githubusercontent.com/trothr/znetboot/master/znetboot.exec &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;], and [https://raw.githubusercontent.com/trothr/znetboot/master/curl.rexx &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt;] to your home directory.&lt;br /&gt;
&lt;br /&gt;
Open 3270 client and log in the z/VM system with your z/VM username and password.&lt;br /&gt;
&lt;br /&gt;
Upload 3 files &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; to the z/VM environment using the 3270 client (this tutorial uses x3270). On the top left corner, click &amp;quot;File&amp;quot;, then &amp;quot;File Transfer&amp;quot;. (Figure 1.)&lt;br /&gt;
&lt;br /&gt;
Do following steps : (Figure 2.) [[File:X3270-2.png|right|300px|thumb|Figure 2.]]&lt;br /&gt;
* On &amp;quot;Local File Name&amp;quot; box, enter &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; (the file in your laptop/workstation, at &#039;&#039;&#039;~/alpine.znetboot&#039;&#039;&#039;)&lt;br /&gt;
* On &amp;quot;Host File Name&amp;quot; box, enter &#039;&#039;&#039;alpine znetboot&#039;&#039;&#039; (the file will be in z/VM console)&lt;br /&gt;
&lt;br /&gt;
{{Note|Beware the difference between &#039;&#039;&#039;the dot &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;the space &amp;lt;code&amp;gt; &amp;lt;/code&amp;gt;&#039;&#039;&#039; characters in the file names.}}&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;&#039;&#039;Send to host&#039;&#039;&#039;&lt;br /&gt;
* Choose &#039;&#039;&#039;Host is VM/CMS&#039;&#039;&#039;&lt;br /&gt;
* Choose either &#039;&#039;&#039;Fixed&#039;&#039;&#039; or &#039;&#039;&#039;Variable&#039;&#039;&#039; for &#039;&#039;&#039;Record Format&#039;&#039;&#039;&lt;br /&gt;
:Enter a number for LRECL and BLKSIZE, respectively&lt;br /&gt;
{{Note|Any line in &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; that has more 80 chars (columns) will be splitted into more than 1 line when uploaded to z/VM (CMS) console via 3270. Count the number of characters/column of the longest line in your &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; and fill it in LRECL. There is no restriction for BLKSIZE but 80 is preferred.}}&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Transfer File&#039;&#039;&#039; box&lt;br /&gt;
&lt;br /&gt;
Repeat the same steps with &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== (Optional) Check the configuration files ====&lt;br /&gt;
On 3270 client, enter following commands to check if the configuration files are correctly transferred:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit alpine znetboot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit znetboot exec&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit curl rex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &amp;lt;code&amp;gt;filel&amp;lt;/code&amp;gt; and put &amp;lt;code&amp;gt;xedit&amp;lt;/code&amp;gt; on CMD column to edit respective file.&lt;br /&gt;
&lt;br /&gt;
==== Start ZNETBOOT ====&lt;br /&gt;
On 3270 client, type below command and wait till Figure 3.: [[File:X3270-3.png|right|300px|thumb|Figure 3.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;znetboot alpine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 4. Installation =&lt;br /&gt;
If you install on z/VM, steps in this part does not involve the interaction with the 3270 client anymore. Everything is done in the terminal with SSH client.&lt;br /&gt;
&lt;br /&gt;
If you install on KVM, you can either SSH into the installer (below) or directly use the console starting qemu.&lt;br /&gt;
&lt;br /&gt;
Either installing in KVM or z/VM environments, from your workstation/laptop, you will be able to run:&lt;br /&gt;
 $ ssh root@192.168.1.2 (change ip address to what you specified earlier)&lt;br /&gt;
&lt;br /&gt;
Remaining steps are similar to installing Alpine on other architectures (x86, arm, ppc, etc.), either on KVM (using virtio/SCSI disks) or on z/VM with FBA DASDs. Installing on ECKD DASDs requires an additional step, as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is the detailed walkthrough of installing Alpine on a single ECKD DASD using LVM and extend that LVM to the second ECKD DASD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After SSH-ing into the Alpine installer, run:&lt;br /&gt;
 # setup-alpine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Select keyboard layout [none]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter system hostname (short form, e.g. &#039;foo&#039;) [localhost]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter your hostname&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available interfaces are: eth0.&lt;br /&gt;
Enter &#039;?&#039; for help on bridges, bonding and vlans.&lt;br /&gt;
Which one do you want to initialize? (or &#039;?&#039; or &#039;done&#039;) [eth0]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:type &#039;eth0&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Ip address for eth0? (or &#039;dhcp&#039;, &#039;none&#039;, &#039;?&#039;) [192.168.1.2]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter ip address or &#039;dhcp&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Netmask? [255.255.255.0]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter netmask&lt;br /&gt;
&amp;lt;code&amp;gt;Gateway? (or &#039;none&#039;) [192.168.1.1]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter gateway&#039;s ip address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Do you want to do any manual network configuration? [no]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;no&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS domain name? (e.g &#039;bar.com&#039;) []&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter domain name or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS nameserver(s)? [8.8.8.8 ]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter DNS nameserver&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Changing password for root&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter root password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which timezone are you in? (&#039;?&#039; for list) [UTC]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter timezone or &#039;?&#039; for list of timezones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;HTTP/FTP proxy URL? (e.g. &#039;http://proxy:8080&#039;, or &#039;none&#039;) [none]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter proxy or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter mirror number (1-27) or URL to add (or r/f/e/done) [f]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter a number or &#039;r&#039; or &#039;f&#039; or &#039;e&#039; or &#039;done&#039; as described&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which SSH server? (&#039;openssh&#039;, &#039;dropbear&#039; or &#039;none&#039;) [openssh]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter SSH server or press Enter for openssh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;busybox&#039; or press Enter for chrony&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; (next step is the additional step for ECKD DASDs on z/VM)&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available ECKD DASD(s) are:&lt;br /&gt;
  0.0.04c0	(3390/0c 3990/e9 IBM)&lt;br /&gt;
  0.0.05d1	(3390/0c 3990/e9 IBM)&lt;br /&gt;
Which ECKD DASD(s) would you like to be formatted using dasdfmt? (enter &#039;?&#039; for help) [all]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;all&#039; or &#039;0.0.04c0 0.0.05d1&#039; &#039;&#039;&#039;(separated by a space)&#039;&#039;&#039; to format all/both DASDs&lt;br /&gt;
:enter &#039;0.0.04c0&#039; or &#039;0.0.05d1&#039; to format respective DASD&lt;br /&gt;
:enter &#039;?&#039; for help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;WARNING: Erase ECKD DASD 0.0.04c0? [y/N]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;y&#039; to format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available disks are:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
Which disk(s) would you like to use? (or &#039;?&#039; for help or &#039;none&#039;) [dasda]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;dasda&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039;, &#039;lvm&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;lvm&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected (with LVM):&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;sys&#039; to install Alpine on disk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WARNING: The following disk(s) will be erased:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
WARNING: Erase the above disk(s) and continue? [y/N]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;y&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;&lt;br /&gt;
:the installation is finished&lt;br /&gt;
&lt;br /&gt;
At this point, don&#039;t poweroff the installer right away. Go to [https://wiki.alpinelinux.org/wiki/S390x#Copying_SSH_keys_to_new_Alpine_system &amp;quot;Copying SSH keys to new Alpine system&amp;quot;] (below) to have SSH access to your new Alpine system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copying SSH keys to new Alpine system ==&lt;br /&gt;
&lt;br /&gt;
By default, Alpine disables root login with a password via SSH. SSH keys are used instead.&lt;br /&gt;
&lt;br /&gt;
After the installer&#039;s done running (&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;), there are 2 ways to copy your SSH key into the new Alpine system:&lt;br /&gt;
* Option 1: mount the installed disk and copy the SSH keys while still at the installer&#039;s terminal&lt;br /&gt;
* Option 2: poweroff the installer, start the new Alpine system and directly add the SSH keys&lt;br /&gt;
::: if you install on KVM, boot the new Alpine system on qemu, and copy the SSH keys&lt;br /&gt;
::: if you install on z/VM, use the 3270 client to ipl the new Alpine system and copy the SSH keys&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;lvm&#039; + &#039;sys&#039; installation (like in above example), do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/vg0/lv_root /mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;sys&#039; (without LVM) installation, do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/dasda3 /mnt&amp;lt;/code&amp;gt; (change dasda to dasdb or dasdc, etc. for whichever DASD you chose)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In &#039;sys&#039; installation, 1st partition is boot, 2nd partition is swap, 3rd partition is root }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you use KVM, start qemu with new Alpine system (removing &amp;lt;code&amp;gt;-kernel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-initrd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-append&amp;lt;/code&amp;gt; options)&lt;br /&gt;
&lt;br /&gt;
If you use z/VM, open the 3270 client, login with your z/VM username and password. You may need to run &amp;lt;code&amp;gt; ipl cms&amp;lt;/code&amp;gt;. Then run &amp;lt;code&amp;gt; ipl 04c0&amp;lt;/code&amp;gt; (or whichever DASD device you chose as root disk in earlier steps).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wait for new Alpine system go up, then login as root user while in the qemu console (on KVM) or 3270 client (on z/VM). Then run:&lt;br /&gt;
::&amp;lt;code&amp;gt; # mkdir /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # wget https://your-website.com/your-ssh-key.pub -O /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 700 /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Login to new Alpine system ==&lt;br /&gt;
On your workstation/laptop, use SSH client to login new Alpine system:&lt;br /&gt;
&amp;lt;code&amp;gt; $ ssh root@192.168.1.2&amp;lt;/code&amp;gt; (or whichever ip address you used)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extending LVM volume ==&lt;br /&gt;
After logging in to your new Alpine system, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add -q util-linux e2fsprogs-extra&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  1.6G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk&lt;br /&gt;
&lt;br /&gt;
# dasdfmt -b 4096 -d cdl -yp /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# fdasd -a /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# pvcreate /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# vgextend vg0 /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# lvextend -l +100%FREE /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# resize2fs /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk &lt;br /&gt;
└─dasdb1         94:5    0  2.3G  0 part &lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 5. Tips =&lt;br /&gt;
If you want to disable swap partition, after finishing NTP client step, quit the installer by pressing &amp;lt;code&amp;gt;Ctrl + C&amp;lt;/code&amp;gt;. Then run following command to complete remaining steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# setup-disk -s 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you do &#039;sys&#039; installation, there will be no swap partition anymore and 1st partition will be boot, 2nd partition will be root}}&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Known_Issues&amp;diff=15935</id>
		<title>S390x/Known Issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Known_Issues&amp;diff=15935"/>
		<updated>2019-05-09T20:29:21Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=15934</id>
		<title>S390x/Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=15934"/>
		<updated>2019-05-09T20:16:19Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: /* z/VM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 1. Known Issues =&lt;br /&gt;
1. Installation on 2 or more DASDs (either ECKD and FBA) on z/VM is not supported in the installer script (&amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;) at the moment. If you want to install/extend on more than 1 DASD, see [https://wiki.alpinelinux.org/wiki/S390x#Extending_LVM_volume &amp;quot;Extending LVM volume&amp;quot;]. However, installation on 2 or more virtio (SCSI) disks on KVM are supported just like other architectures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 2. The boot media =&lt;br /&gt;
&lt;br /&gt;
For KVM, both ISO image and netboot media (kernel and initramfs) are supported.&lt;br /&gt;
&lt;br /&gt;
For z/VM, netboot media is supported.&lt;br /&gt;
&lt;br /&gt;
For LPAR, not yet supported.&lt;br /&gt;
&lt;br /&gt;
Boot media are found at:&lt;br /&gt;
&lt;br /&gt;
* http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel parameters (and parmfile) ==&lt;br /&gt;
The Alpine s390x boot media requires following kernel parameters to work: (Details at : &amp;lt;code&amp;gt;https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=dhcp&amp;lt;/code&amp;gt; : use DHCP for network configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=client-ip:server-ip:gw-ip:netmask:hostname:device:autoconf:dns1:dns2&amp;lt;/code&amp;gt; : use static IP configuration, each field is separated by a colon &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;client-ip&amp;lt;/code&amp;gt; ip address of the guest VM where we are going to run the installer&lt;br /&gt;
* &amp;lt;code&amp;gt;server-ip&amp;lt;/code&amp;gt; not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;gw-ip&amp;lt;/code&amp;gt;     the gateway ip address&lt;br /&gt;
* &amp;lt;code&amp;gt;netmask&amp;lt;/code&amp;gt;   the netmask&lt;br /&gt;
* &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;    the network interface of the guest VM, default is &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; if left blank&lt;br /&gt;
* &amp;lt;code&amp;gt;autoconf&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dns1&amp;lt;/code&amp;gt;      address of the DNS server&lt;br /&gt;
* &amp;lt;code&amp;gt;dns2&amp;lt;/code&amp;gt;      address of the 2nd DNS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; : the location of the Alpine repository from which packages are downloaded.&lt;br /&gt;
&lt;br /&gt;
:For stable release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/v3.9/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:For rolling release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/edge/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modloop=&amp;lt;/code&amp;gt; : the remote location of the image containing kernel&#039;s modules, required for LVM and raid setup.&lt;br /&gt;
&lt;br /&gt;
:The remote location of the &amp;lt;code&amp;gt;modloop&amp;lt;/code&amp;gt; image is the same as the kernel and initramfs (see below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; : the remote location of your SSH public key which is used to allow SSH connection into the installer. It will be downloaded and copied into &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; in the installer.&lt;br /&gt;
&lt;br /&gt;
{{Note|Fetching public keys from HTTP, HTTPS and FTPS are supported. HTTP should only be used in local development network where you own the network.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Alpine Linux security policies are against using passwords for root access via SSH as we consider using public-private key pairs is a much better approach.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;z/VM only&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt; : the addresses of the DASD devices, either ECKD or FBA DASDs. Each device is separated with a comma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; : the network interface type and its subchannels. At the moment, only QETH layer 2 is supported, thus the name &amp;lt;code&amp;gt;qeth_l2&amp;lt;/code&amp;gt; is used (see below).&lt;br /&gt;
&lt;br /&gt;
= 3. Pre-installation =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
Create a virtual disk:&lt;br /&gt;
 $ qemu-img create alpine_disk.qcow2 5G&lt;br /&gt;
&lt;br /&gt;
==== Using iso image ====&lt;br /&gt;
Download latest iso image from : http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x&lt;br /&gt;
&lt;br /&gt;
Start qemu:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -boot d -cdrom alpine-standard-3.9.0-s390x.iso&lt;br /&gt;
&lt;br /&gt;
==== Using netboot media ====&lt;br /&gt;
Download the latest [http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/vmlinuz-vanilla kernel] and [http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/initramfs-vanilla initramfs].&lt;br /&gt;
&lt;br /&gt;
Start qemu: (modify &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -kernel vmlinuz-vanilla \&lt;br /&gt;
        -initrd initramfs-vanilla \&lt;br /&gt;
        -append &amp;quot;ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1 alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.9/main modloop=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/modloop-vanilla ssh_key=https://your-website.com/your-ssh-key.pub&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you have direct access to the qemu console, &amp;lt;code&amp;gt;ssh_key&amp;lt;/code&amp;gt; might not be required.}}&lt;br /&gt;
&lt;br /&gt;
== z/VM ==&lt;br /&gt;
To ease out the process of downloading the images, punch the readers, ipl, etc., [https://github.com/trothr/znetboot &#039;&#039;&#039;ZNETBOOT&#039;&#039;&#039;] is used.&lt;br /&gt;
&lt;br /&gt;
==== Create the parm file ====&lt;br /&gt;
On your workstation/laptop, create a file named &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt; in your home directory with contents below (modify &amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ZNETBOOT_KERNEL=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/vmlinuz-vanilla&lt;br /&gt;
ZNETBOOT_INITRD=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/initramfs-vanilla&lt;br /&gt;
ZNETBOOT_PROGRESS=1M&lt;br /&gt;
&lt;br /&gt;
alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.9/main&lt;br /&gt;
modloop=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/modloop-vanilla&lt;br /&gt;
&lt;br /&gt;
dasd=0.0.04c0,0.0.05d1&lt;br /&gt;
s390x_net=qeth_l2,0.0.0560,0.0.0561,0.0.0562&lt;br /&gt;
ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1&lt;br /&gt;
&lt;br /&gt;
ssh_key=https://your-website.com/your-ssh-key.pub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upload to z/VM system via 3270 client ====&lt;br /&gt;
[[File:X3270-1.png|right|300px|thumb|Figure 1.]]&lt;br /&gt;
On your workstation/laptop, download 2 files [https://raw.githubusercontent.com/trothr/znetboot/master/znetboot.exec &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;], and [https://raw.githubusercontent.com/trothr/znetboot/master/curl.rexx &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt;] to your home directory.&lt;br /&gt;
&lt;br /&gt;
Open 3270 client and log in the z/VM system with your z/VM username and password.&lt;br /&gt;
&lt;br /&gt;
Upload 3 files &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; to the z/VM environment using the 3270 client (this tutorial uses x3270). On the top left corner, click &amp;quot;File&amp;quot;, then &amp;quot;File Transfer&amp;quot;. (Figure 1.)&lt;br /&gt;
&lt;br /&gt;
Do following steps : (Figure 2.) [[File:X3270-2.png|right|300px|thumb|Figure 2.]]&lt;br /&gt;
* On &amp;quot;Local File Name&amp;quot; box, enter &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; (the file in your laptop/workstation, at &#039;&#039;&#039;~/alpine.znetboot&#039;&#039;&#039;)&lt;br /&gt;
* On &amp;quot;Host File Name&amp;quot; box, enter &#039;&#039;&#039;alpine znetboot&#039;&#039;&#039; (the file will be in z/VM console)&lt;br /&gt;
&lt;br /&gt;
{{Note|Beware the difference between &#039;&#039;&#039;the dot &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;the space &amp;lt;code&amp;gt; &amp;lt;/code&amp;gt;&#039;&#039;&#039; characters in the file names.}}&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;&#039;&#039;Send to host&#039;&#039;&#039;&lt;br /&gt;
* Choose &#039;&#039;&#039;Host is VM/CMS&#039;&#039;&#039;&lt;br /&gt;
* Choose either &#039;&#039;&#039;Fixed&#039;&#039;&#039; or &#039;&#039;&#039;Variable&#039;&#039;&#039; for &#039;&#039;&#039;Record Format&#039;&#039;&#039;&lt;br /&gt;
:Enter a number for LRECL and BLKSIZE, respectively&lt;br /&gt;
{{Note|Any line in &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; that has more 80 chars (columns) will be splitted into more than 1 line when uploaded to z/VM (CMS) console via 3270. Count the number of characters/column of the longest line in your &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; and fill it in LRECL. There is no restriction for BLKSIZE but 80 is preferred.}}&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Transfer File&#039;&#039;&#039; box&lt;br /&gt;
&lt;br /&gt;
Repeat the same steps with &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== (Optional) Check the configuration files ====&lt;br /&gt;
On 3270 client, enter following commands to check if the configuration files are correctly transferred:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit alpine znetboot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit znetboot exec&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit curl rex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &amp;lt;code&amp;gt;filel&amp;lt;/code&amp;gt; and put &amp;lt;code&amp;gt;xedit&amp;lt;/code&amp;gt; on CMD column to edit respective file.&lt;br /&gt;
&lt;br /&gt;
==== Start ZNETBOOT ====&lt;br /&gt;
On 3270 client, type below command and wait till Figure 3.: [[File:X3270-3.png|right|300px|thumb|Figure 3.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;znetboot alpine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 4. Installation =&lt;br /&gt;
If you install on z/VM, steps in this part does not involve the interaction with the 3270 client anymore. Everything is done in the terminal with SSH client.&lt;br /&gt;
&lt;br /&gt;
If you install on KVM, you can either SSH into the installer (below) or directly use the console starting qemu.&lt;br /&gt;
&lt;br /&gt;
Either installing in KVM or z/VM environments, from your workstation/laptop, you will be able to run:&lt;br /&gt;
 $ ssh root@192.168.1.2 (change ip address to what you specified earlier)&lt;br /&gt;
&lt;br /&gt;
Remaining steps are similar to installing Alpine on other architectures (x86, arm, ppc, etc.), either on KVM (using virtio/SCSI disks) or on z/VM with FBA DASDs. Installing on ECKD DASDs requires an additional step, as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is the detailed walkthrough of installing Alpine on a single ECKD DASD using LVM and extend that LVM to the second ECKD DASD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After SSH-ing into the Alpine installer, run:&lt;br /&gt;
 # setup-alpine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Select keyboard layout [none]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter system hostname (short form, e.g. &#039;foo&#039;) [localhost]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter your hostname&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available interfaces are: eth0.&lt;br /&gt;
Enter &#039;?&#039; for help on bridges, bonding and vlans.&lt;br /&gt;
Which one do you want to initialize? (or &#039;?&#039; or &#039;done&#039;) [eth0]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:type &#039;eth0&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Ip address for eth0? (or &#039;dhcp&#039;, &#039;none&#039;, &#039;?&#039;) [192.168.1.2]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter ip address or &#039;dhcp&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Netmask? [255.255.255.0]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter netmask&lt;br /&gt;
&amp;lt;code&amp;gt;Gateway? (or &#039;none&#039;) [192.168.1.1]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter gateway&#039;s ip address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Do you want to do any manual network configuration? [no]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;no&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS domain name? (e.g &#039;bar.com&#039;) []&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter domain name or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS nameserver(s)? [8.8.8.8 ]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter DNS nameserver&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Changing password for root&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter root password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which timezone are you in? (&#039;?&#039; for list) [UTC]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter timezone or &#039;?&#039; for list of timezones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;HTTP/FTP proxy URL? (e.g. &#039;http://proxy:8080&#039;, or &#039;none&#039;) [none]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter proxy or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter mirror number (1-27) or URL to add (or r/f/e/done) [f]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter a number or &#039;r&#039; or &#039;f&#039; or &#039;e&#039; or &#039;done&#039; as described&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which SSH server? (&#039;openssh&#039;, &#039;dropbear&#039; or &#039;none&#039;) [openssh]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter SSH server or press Enter for openssh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;busybox&#039; or press Enter for chrony&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; (next step is the additional step for ECKD DASDs on z/VM)&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available ECKD DASD(s) are:&lt;br /&gt;
  0.0.04c0	(3390/0c 3990/e9 IBM)&lt;br /&gt;
  0.0.05d1	(3390/0c 3990/e9 IBM)&lt;br /&gt;
Which ECKD DASD(s) would you like to be formatted using dasdfmt? (enter &#039;?&#039; for help) [all]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;all&#039; or &#039;0.0.04c0 0.0.05d1&#039; &#039;&#039;&#039;(separated by a space)&#039;&#039;&#039; to format all/both DASDs&lt;br /&gt;
:enter &#039;0.0.04c0&#039; or &#039;0.0.05d1&#039; to format respective DASD&lt;br /&gt;
:enter &#039;?&#039; for help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;WARNING: Erase ECKD DASD 0.0.04c0? [y/N]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;y&#039; to format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available disks are:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
Which disk(s) would you like to use? (or &#039;?&#039; for help or &#039;none&#039;) [dasda]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;dasda&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039;, &#039;lvm&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;lvm&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected (with LVM):&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;sys&#039; to install Alpine on disk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WARNING: The following disk(s) will be erased:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
WARNING: Erase the above disk(s) and continue? [y/N]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;y&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;&lt;br /&gt;
:the installation is finished&lt;br /&gt;
&lt;br /&gt;
At this point, don&#039;t poweroff the installer right away. Go to [https://wiki.alpinelinux.org/wiki/S390x#Copying_SSH_keys_to_new_Alpine_system &amp;quot;Copying SSH keys to new Alpine system&amp;quot;] (below) to have SSH access to your new Alpine system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copying SSH keys to new Alpine system ==&lt;br /&gt;
&lt;br /&gt;
By default, Alpine disables root login with a password via SSH. SSH keys are used instead.&lt;br /&gt;
&lt;br /&gt;
After the installer&#039;s done running (&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;), there are 2 ways to copy your SSH key into the new Alpine system:&lt;br /&gt;
* Option 1: mount the installed disk and copy the SSH keys while still at the installer&#039;s terminal&lt;br /&gt;
* Option 2: poweroff the installer, start the new Alpine system and directly add the SSH keys&lt;br /&gt;
::: if you install on KVM, boot the new Alpine system on qemu, and copy the SSH keys&lt;br /&gt;
::: if you install on z/VM, use the 3270 client to ipl the new Alpine system and copy the SSH keys&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;lvm&#039; + &#039;sys&#039; installation (like in above example), do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/vg0/lv_root /mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;sys&#039; (without LVM) installation, do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/dasda3 /mnt&amp;lt;/code&amp;gt; (change dasda to dasdb or dasdc, etc. for whichever DASD you chose)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In &#039;sys&#039; installation, 1st partition is boot, 2nd partition is swap, 3rd partition is root }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you use KVM, start qemu with new Alpine system (removing &amp;lt;code&amp;gt;-kernel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-initrd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-append&amp;lt;/code&amp;gt; options)&lt;br /&gt;
&lt;br /&gt;
If you use z/VM, open the 3270 client, login with your z/VM username and password. You may need to run &amp;lt;code&amp;gt; ipl cms&amp;lt;/code&amp;gt;. Then run &amp;lt;code&amp;gt; ipl 04c0&amp;lt;/code&amp;gt; (or whichever DASD device you chose as root disk in earlier steps).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wait for new Alpine system go up, then login as root user while in the qemu console (on KVM) or 3270 client (on z/VM). Then run:&lt;br /&gt;
::&amp;lt;code&amp;gt; # mkdir /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # wget https://your-website.com/your-ssh-key.pub -O /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 700 /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Login to new Alpine system ==&lt;br /&gt;
On your workstation/laptop, use SSH client to login new Alpine system:&lt;br /&gt;
&amp;lt;code&amp;gt; $ ssh root@192.168.1.2&amp;lt;/code&amp;gt; (or whichever ip address you used)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extending LVM volume ==&lt;br /&gt;
After logging in to your new Alpine system, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add -q util-linux e2fsprogs-extra&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  1.6G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk&lt;br /&gt;
&lt;br /&gt;
# dasdfmt -b 4096 -d cdl -yp /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# fdasd -a /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# pvcreate /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# vgextend vg0 /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# lvextend -l +100%FREE /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# resize2fs /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk &lt;br /&gt;
└─dasdb1         94:5    0  2.3G  0 part &lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 5. Tips =&lt;br /&gt;
If you want to disable swap partition, after finishing NTP client step, quit the installer by pressing &amp;lt;code&amp;gt;Ctrl + C&amp;lt;/code&amp;gt;. Then run following command to complete remaining steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# setup-disk -s 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you do &#039;sys&#039; installation, there will be no swap partition anymore and 1st partition will be boot, 2nd partition will be root}}&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=15933</id>
		<title>S390x/Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=15933"/>
		<updated>2019-05-09T20:11:44Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: /* Using netboot media */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 1. Known Issues =&lt;br /&gt;
1. Installation on 2 or more DASDs (either ECKD and FBA) on z/VM is not supported in the installer script (&amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;) at the moment. If you want to install/extend on more than 1 DASD, see [https://wiki.alpinelinux.org/wiki/S390x#Extending_LVM_volume &amp;quot;Extending LVM volume&amp;quot;]. However, installation on 2 or more virtio (SCSI) disks on KVM are supported just like other architectures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 2. The boot media =&lt;br /&gt;
&lt;br /&gt;
For KVM, both ISO image and netboot media (kernel and initramfs) are supported.&lt;br /&gt;
&lt;br /&gt;
For z/VM, netboot media is supported.&lt;br /&gt;
&lt;br /&gt;
For LPAR, not yet supported.&lt;br /&gt;
&lt;br /&gt;
Boot media are found at:&lt;br /&gt;
&lt;br /&gt;
* http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel parameters (and parmfile) ==&lt;br /&gt;
The Alpine s390x boot media requires following kernel parameters to work: (Details at : &amp;lt;code&amp;gt;https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=dhcp&amp;lt;/code&amp;gt; : use DHCP for network configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=client-ip:server-ip:gw-ip:netmask:hostname:device:autoconf:dns1:dns2&amp;lt;/code&amp;gt; : use static IP configuration, each field is separated by a colon &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;client-ip&amp;lt;/code&amp;gt; ip address of the guest VM where we are going to run the installer&lt;br /&gt;
* &amp;lt;code&amp;gt;server-ip&amp;lt;/code&amp;gt; not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;gw-ip&amp;lt;/code&amp;gt;     the gateway ip address&lt;br /&gt;
* &amp;lt;code&amp;gt;netmask&amp;lt;/code&amp;gt;   the netmask&lt;br /&gt;
* &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;    the network interface of the guest VM, default is &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; if left blank&lt;br /&gt;
* &amp;lt;code&amp;gt;autoconf&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dns1&amp;lt;/code&amp;gt;      address of the DNS server&lt;br /&gt;
* &amp;lt;code&amp;gt;dns2&amp;lt;/code&amp;gt;      address of the 2nd DNS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; : the location of the Alpine repository from which packages are downloaded.&lt;br /&gt;
&lt;br /&gt;
:For stable release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/v3.9/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:For rolling release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/edge/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modloop=&amp;lt;/code&amp;gt; : the remote location of the image containing kernel&#039;s modules, required for LVM and raid setup.&lt;br /&gt;
&lt;br /&gt;
:The remote location of the &amp;lt;code&amp;gt;modloop&amp;lt;/code&amp;gt; image is the same as the kernel and initramfs (see below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; : the remote location of your SSH public key which is used to allow SSH connection into the installer. It will be downloaded and copied into &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; in the installer.&lt;br /&gt;
&lt;br /&gt;
{{Note|Fetching public keys from HTTP, HTTPS and FTPS are supported. HTTP should only be used in local development network where you own the network.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Alpine Linux security policies are against using passwords for root access via SSH as we consider using public-private key pairs is a much better approach.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;z/VM only&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt; : the addresses of the DASD devices, either ECKD or FBA DASDs. Each device is separated with a comma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; : the network interface type and its subchannels. At the moment, only QETH layer 2 is supported, thus the name &amp;lt;code&amp;gt;qeth_l2&amp;lt;/code&amp;gt; is used (see below).&lt;br /&gt;
&lt;br /&gt;
= 3. Pre-installation =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
Create a virtual disk:&lt;br /&gt;
 $ qemu-img create alpine_disk.qcow2 5G&lt;br /&gt;
&lt;br /&gt;
==== Using iso image ====&lt;br /&gt;
Download latest iso image from : http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x&lt;br /&gt;
&lt;br /&gt;
Start qemu:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -boot d -cdrom alpine-standard-3.9.0-s390x.iso&lt;br /&gt;
&lt;br /&gt;
==== Using netboot media ====&lt;br /&gt;
Download the latest [http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/vmlinuz-vanilla kernel] and [http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/initramfs-vanilla initramfs].&lt;br /&gt;
&lt;br /&gt;
Start qemu: (modify &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -kernel vmlinuz-vanilla \&lt;br /&gt;
        -initrd initramfs-vanilla \&lt;br /&gt;
        -append &amp;quot;ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1 alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.9/main modloop=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/modloop-vanilla ssh_key=https://your-website.com/your-ssh-key.pub&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you have direct access to the qemu console, &amp;lt;code&amp;gt;ssh_key&amp;lt;/code&amp;gt; might not be required.}}&lt;br /&gt;
&lt;br /&gt;
== z/VM ==&lt;br /&gt;
To ease out the process of downloading the images, punch the readers, ipl, etc., [https://github.com/trothr/znetboot &#039;&#039;&#039;ZNETBOOT&#039;&#039;&#039;] is used.&lt;br /&gt;
&lt;br /&gt;
==== Create the parm file ====&lt;br /&gt;
On your workstation/laptop, create a file named &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt; in your home directory with contents below (modify &amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ZNETBOOT_KERNEL=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/vmlinuz-vanilla&lt;br /&gt;
ZNETBOOT_INITRD=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/initramfs-vanilla&lt;br /&gt;
ZNETBOOT_PROGRESS=1M&lt;br /&gt;
&lt;br /&gt;
alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.9/main&lt;br /&gt;
modloop=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/modloop-vanilla&lt;br /&gt;
&lt;br /&gt;
dasd=0.0.04c0,0.0.05d1&lt;br /&gt;
s390x_net=qeth_l2,0.0.0560,0.0.0561,0.0.0562&lt;br /&gt;
ip=192.168.1.2::192.168.1.1:255.255.255.0:none:eth0:none:8.8.8.8&lt;br /&gt;
&lt;br /&gt;
ssh_key=https://your-website.com/your-ssh-key.pub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upload to z/VM system via 3270 client ====&lt;br /&gt;
[[File:X3270-1.png|right|300px|thumb|Figure 1.]]&lt;br /&gt;
On your workstation/laptop, download 2 files [https://raw.githubusercontent.com/trothr/znetboot/master/znetboot.exec &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;], and [https://raw.githubusercontent.com/trothr/znetboot/master/curl.rexx &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt;] to your home directory.&lt;br /&gt;
&lt;br /&gt;
Open 3270 client and log in the z/VM system with your z/VM username and password.&lt;br /&gt;
&lt;br /&gt;
Upload 3 files &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; to the z/VM environment using the 3270 client (this tutorial uses x3270). On the top left corner, click &amp;quot;File&amp;quot;, then &amp;quot;File Transfer&amp;quot;. (Figure 1.)&lt;br /&gt;
&lt;br /&gt;
Do following steps : (Figure 2.) [[File:X3270-2.png|right|300px|thumb|Figure 2.]]&lt;br /&gt;
* On &amp;quot;Local File Name&amp;quot; box, enter &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; (the file in your laptop/workstation, at &#039;&#039;&#039;~/alpine.znetboot&#039;&#039;&#039;)&lt;br /&gt;
* On &amp;quot;Host File Name&amp;quot; box, enter &#039;&#039;&#039;alpine znetboot&#039;&#039;&#039; (the file will be in z/VM console)&lt;br /&gt;
&lt;br /&gt;
{{Note|Beware the difference between &#039;&#039;&#039;the dot &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;the space &amp;lt;code&amp;gt; &amp;lt;/code&amp;gt;&#039;&#039;&#039; characters in the file names.}}&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;&#039;&#039;Send to host&#039;&#039;&#039;&lt;br /&gt;
* Choose &#039;&#039;&#039;Host is VM/CMS&#039;&#039;&#039;&lt;br /&gt;
* Choose either &#039;&#039;&#039;Fixed&#039;&#039;&#039; or &#039;&#039;&#039;Variable&#039;&#039;&#039; for &#039;&#039;&#039;Record Format&#039;&#039;&#039;&lt;br /&gt;
:Enter a number for LRECL and BLKSIZE, respectively&lt;br /&gt;
{{Note|Any line in &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; that has more 80 chars (columns) will be splitted into more than 1 line when uploaded to z/VM (CMS) console via 3270. Count the number of characters/column of the longest line in your &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; and fill it in LRECL. There is no restriction for BLKSIZE but 80 is preferred.}}&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Transfer File&#039;&#039;&#039; box&lt;br /&gt;
&lt;br /&gt;
Repeat the same steps with &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== (Optional) Check the configuration files ====&lt;br /&gt;
On 3270 client, enter following commands to check if the configuration files are correctly transferred:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit alpine znetboot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit znetboot exec&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit curl rex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &amp;lt;code&amp;gt;filel&amp;lt;/code&amp;gt; and put &amp;lt;code&amp;gt;xedit&amp;lt;/code&amp;gt; on CMD column to edit respective file.&lt;br /&gt;
&lt;br /&gt;
==== Start ZNETBOOT ====&lt;br /&gt;
On 3270 client, type below command and wait till Figure 3.: [[File:X3270-3.png|right|300px|thumb|Figure 3.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;znetboot alpine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 4. Installation =&lt;br /&gt;
If you install on z/VM, steps in this part does not involve the interaction with the 3270 client anymore. Everything is done in the terminal with SSH client.&lt;br /&gt;
&lt;br /&gt;
If you install on KVM, you can either SSH into the installer (below) or directly use the console starting qemu.&lt;br /&gt;
&lt;br /&gt;
Either installing in KVM or z/VM environments, from your workstation/laptop, you will be able to run:&lt;br /&gt;
 $ ssh root@192.168.1.2 (change ip address to what you specified earlier)&lt;br /&gt;
&lt;br /&gt;
Remaining steps are similar to installing Alpine on other architectures (x86, arm, ppc, etc.), either on KVM (using virtio/SCSI disks) or on z/VM with FBA DASDs. Installing on ECKD DASDs requires an additional step, as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is the detailed walkthrough of installing Alpine on a single ECKD DASD using LVM and extend that LVM to the second ECKD DASD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After SSH-ing into the Alpine installer, run:&lt;br /&gt;
 # setup-alpine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Select keyboard layout [none]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter system hostname (short form, e.g. &#039;foo&#039;) [localhost]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter your hostname&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available interfaces are: eth0.&lt;br /&gt;
Enter &#039;?&#039; for help on bridges, bonding and vlans.&lt;br /&gt;
Which one do you want to initialize? (or &#039;?&#039; or &#039;done&#039;) [eth0]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:type &#039;eth0&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Ip address for eth0? (or &#039;dhcp&#039;, &#039;none&#039;, &#039;?&#039;) [192.168.1.2]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter ip address or &#039;dhcp&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Netmask? [255.255.255.0]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter netmask&lt;br /&gt;
&amp;lt;code&amp;gt;Gateway? (or &#039;none&#039;) [192.168.1.1]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter gateway&#039;s ip address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Do you want to do any manual network configuration? [no]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;no&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS domain name? (e.g &#039;bar.com&#039;) []&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter domain name or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS nameserver(s)? [8.8.8.8 ]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter DNS nameserver&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Changing password for root&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter root password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which timezone are you in? (&#039;?&#039; for list) [UTC]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter timezone or &#039;?&#039; for list of timezones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;HTTP/FTP proxy URL? (e.g. &#039;http://proxy:8080&#039;, or &#039;none&#039;) [none]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter proxy or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter mirror number (1-27) or URL to add (or r/f/e/done) [f]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter a number or &#039;r&#039; or &#039;f&#039; or &#039;e&#039; or &#039;done&#039; as described&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which SSH server? (&#039;openssh&#039;, &#039;dropbear&#039; or &#039;none&#039;) [openssh]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter SSH server or press Enter for openssh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;busybox&#039; or press Enter for chrony&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; (next step is the additional step for ECKD DASDs on z/VM)&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available ECKD DASD(s) are:&lt;br /&gt;
  0.0.04c0	(3390/0c 3990/e9 IBM)&lt;br /&gt;
  0.0.05d1	(3390/0c 3990/e9 IBM)&lt;br /&gt;
Which ECKD DASD(s) would you like to be formatted using dasdfmt? (enter &#039;?&#039; for help) [all]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;all&#039; or &#039;0.0.04c0 0.0.05d1&#039; &#039;&#039;&#039;(separated by a space)&#039;&#039;&#039; to format all/both DASDs&lt;br /&gt;
:enter &#039;0.0.04c0&#039; or &#039;0.0.05d1&#039; to format respective DASD&lt;br /&gt;
:enter &#039;?&#039; for help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;WARNING: Erase ECKD DASD 0.0.04c0? [y/N]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;y&#039; to format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available disks are:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
Which disk(s) would you like to use? (or &#039;?&#039; for help or &#039;none&#039;) [dasda]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;dasda&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039;, &#039;lvm&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;lvm&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected (with LVM):&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;sys&#039; to install Alpine on disk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WARNING: The following disk(s) will be erased:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
WARNING: Erase the above disk(s) and continue? [y/N]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;y&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;&lt;br /&gt;
:the installation is finished&lt;br /&gt;
&lt;br /&gt;
At this point, don&#039;t poweroff the installer right away. Go to [https://wiki.alpinelinux.org/wiki/S390x#Copying_SSH_keys_to_new_Alpine_system &amp;quot;Copying SSH keys to new Alpine system&amp;quot;] (below) to have SSH access to your new Alpine system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copying SSH keys to new Alpine system ==&lt;br /&gt;
&lt;br /&gt;
By default, Alpine disables root login with a password via SSH. SSH keys are used instead.&lt;br /&gt;
&lt;br /&gt;
After the installer&#039;s done running (&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;), there are 2 ways to copy your SSH key into the new Alpine system:&lt;br /&gt;
* Option 1: mount the installed disk and copy the SSH keys while still at the installer&#039;s terminal&lt;br /&gt;
* Option 2: poweroff the installer, start the new Alpine system and directly add the SSH keys&lt;br /&gt;
::: if you install on KVM, boot the new Alpine system on qemu, and copy the SSH keys&lt;br /&gt;
::: if you install on z/VM, use the 3270 client to ipl the new Alpine system and copy the SSH keys&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;lvm&#039; + &#039;sys&#039; installation (like in above example), do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/vg0/lv_root /mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;sys&#039; (without LVM) installation, do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/dasda3 /mnt&amp;lt;/code&amp;gt; (change dasda to dasdb or dasdc, etc. for whichever DASD you chose)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In &#039;sys&#039; installation, 1st partition is boot, 2nd partition is swap, 3rd partition is root }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you use KVM, start qemu with new Alpine system (removing &amp;lt;code&amp;gt;-kernel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-initrd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-append&amp;lt;/code&amp;gt; options)&lt;br /&gt;
&lt;br /&gt;
If you use z/VM, open the 3270 client, login with your z/VM username and password. You may need to run &amp;lt;code&amp;gt; ipl cms&amp;lt;/code&amp;gt;. Then run &amp;lt;code&amp;gt; ipl 04c0&amp;lt;/code&amp;gt; (or whichever DASD device you chose as root disk in earlier steps).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wait for new Alpine system go up, then login as root user while in the qemu console (on KVM) or 3270 client (on z/VM). Then run:&lt;br /&gt;
::&amp;lt;code&amp;gt; # mkdir /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # wget https://your-website.com/your-ssh-key.pub -O /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 700 /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Login to new Alpine system ==&lt;br /&gt;
On your workstation/laptop, use SSH client to login new Alpine system:&lt;br /&gt;
&amp;lt;code&amp;gt; $ ssh root@192.168.1.2&amp;lt;/code&amp;gt; (or whichever ip address you used)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extending LVM volume ==&lt;br /&gt;
After logging in to your new Alpine system, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add -q util-linux e2fsprogs-extra&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  1.6G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk&lt;br /&gt;
&lt;br /&gt;
# dasdfmt -b 4096 -d cdl -yp /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# fdasd -a /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# pvcreate /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# vgextend vg0 /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# lvextend -l +100%FREE /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# resize2fs /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk &lt;br /&gt;
└─dasdb1         94:5    0  2.3G  0 part &lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 5. Tips =&lt;br /&gt;
If you want to disable swap partition, after finishing NTP client step, quit the installer by pressing &amp;lt;code&amp;gt;Ctrl + C&amp;lt;/code&amp;gt;. Then run following command to complete remaining steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# setup-disk -s 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you do &#039;sys&#039; installation, there will be no swap partition anymore and 1st partition will be boot, 2nd partition will be root}}&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=15931</id>
		<title>S390x/Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=15931"/>
		<updated>2019-05-09T20:05:27Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: /* Kernel parameters (and parmfile) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 1. Known Issues =&lt;br /&gt;
1. Installation on 2 or more DASDs (either ECKD and FBA) on z/VM is not supported in the installer script (&amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;) at the moment. If you want to install/extend on more than 1 DASD, see [https://wiki.alpinelinux.org/wiki/S390x#Extending_LVM_volume &amp;quot;Extending LVM volume&amp;quot;]. However, installation on 2 or more virtio (SCSI) disks on KVM are supported just like other architectures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 2. The boot media =&lt;br /&gt;
&lt;br /&gt;
For KVM, both ISO image and netboot media (kernel and initramfs) are supported.&lt;br /&gt;
&lt;br /&gt;
For z/VM, netboot media is supported.&lt;br /&gt;
&lt;br /&gt;
For LPAR, not yet supported.&lt;br /&gt;
&lt;br /&gt;
Boot media are found at:&lt;br /&gt;
&lt;br /&gt;
* http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel parameters (and parmfile) ==&lt;br /&gt;
The Alpine s390x boot media requires following kernel parameters to work: (Details at : &amp;lt;code&amp;gt;https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=dhcp&amp;lt;/code&amp;gt; : use DHCP for network configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=client-ip:server-ip:gw-ip:netmask:hostname:device:autoconf:dns1:dns2&amp;lt;/code&amp;gt; : use static IP configuration, each field is separated by a colon &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;client-ip&amp;lt;/code&amp;gt; ip address of the guest VM where we are going to run the installer&lt;br /&gt;
* &amp;lt;code&amp;gt;server-ip&amp;lt;/code&amp;gt; not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;gw-ip&amp;lt;/code&amp;gt;     the gateway ip address&lt;br /&gt;
* &amp;lt;code&amp;gt;netmask&amp;lt;/code&amp;gt;   the netmask&lt;br /&gt;
* &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;    the network interface of the guest VM, default is &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; if left blank&lt;br /&gt;
* &amp;lt;code&amp;gt;autoconf&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dns1&amp;lt;/code&amp;gt;      address of the DNS server&lt;br /&gt;
* &amp;lt;code&amp;gt;dns2&amp;lt;/code&amp;gt;      address of the 2nd DNS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; : the location of the Alpine repository from which packages are downloaded.&lt;br /&gt;
&lt;br /&gt;
:For stable release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/v3.9/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:For rolling release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/edge/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modloop=&amp;lt;/code&amp;gt; : the remote location of the image containing kernel&#039;s modules, required for LVM and raid setup.&lt;br /&gt;
&lt;br /&gt;
:The remote location of the &amp;lt;code&amp;gt;modloop&amp;lt;/code&amp;gt; image is the same as the kernel and initramfs (see below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; : the remote location of your SSH public key which is used to allow SSH connection into the installer. It will be downloaded and copied into &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; in the installer.&lt;br /&gt;
&lt;br /&gt;
{{Note|Fetching public keys from HTTP, HTTPS and FTPS are supported. HTTP should only be used in local development network where you own the network.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Alpine Linux security policies are against using passwords for root access via SSH as we consider using public-private key pairs is a much better approach.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;z/VM only&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt; : the addresses of the DASD devices, either ECKD or FBA DASDs. Each device is separated with a comma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; : the network interface type and its subchannels. At the moment, only QETH layer 2 is supported, thus the name &amp;lt;code&amp;gt;qeth_l2&amp;lt;/code&amp;gt; is used (see below).&lt;br /&gt;
&lt;br /&gt;
= 3. Pre-installation =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
Create a virtual disk:&lt;br /&gt;
 $ qemu-img create alpine_disk.qcow2 5G&lt;br /&gt;
&lt;br /&gt;
==== Using iso image ====&lt;br /&gt;
Download latest iso image from : http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x&lt;br /&gt;
&lt;br /&gt;
Start qemu:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -boot d -cdrom alpine-standard-3.9.0-s390x.iso&lt;br /&gt;
&lt;br /&gt;
==== Using netboot media ====&lt;br /&gt;
Download the latest [http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/vmlinuz-vanilla kernel] and [http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/initramfs-vanilla initramfs].&lt;br /&gt;
&lt;br /&gt;
Start qemu: (modify &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -kernel vmlinuz-vanilla \&lt;br /&gt;
        -initrd initramfs-vanilla \&lt;br /&gt;
        -append &amp;quot;ip=192.168.1.2::192.168.1.1:255.255.255.0:none:eth0:none:8.8.8.8 alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.9/main modloop=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/modloop-vanilla ssh_key=https://your-website.com/your-ssh-key.pub&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you have direct access to the qemu console, &amp;lt;code&amp;gt;ssh_key&amp;lt;/code&amp;gt; might not be required.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== z/VM ==&lt;br /&gt;
To ease out the process of downloading the images, punch the readers, ipl, etc., [https://github.com/trothr/znetboot &#039;&#039;&#039;ZNETBOOT&#039;&#039;&#039;] is used.&lt;br /&gt;
&lt;br /&gt;
==== Create the parm file ====&lt;br /&gt;
On your workstation/laptop, create a file named &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt; in your home directory with contents below (modify &amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ZNETBOOT_KERNEL=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/vmlinuz-vanilla&lt;br /&gt;
ZNETBOOT_INITRD=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/initramfs-vanilla&lt;br /&gt;
ZNETBOOT_PROGRESS=1M&lt;br /&gt;
&lt;br /&gt;
alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.9/main&lt;br /&gt;
modloop=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/modloop-vanilla&lt;br /&gt;
&lt;br /&gt;
dasd=0.0.04c0,0.0.05d1&lt;br /&gt;
s390x_net=qeth_l2,0.0.0560,0.0.0561,0.0.0562&lt;br /&gt;
ip=192.168.1.2::192.168.1.1:255.255.255.0:none:eth0:none:8.8.8.8&lt;br /&gt;
&lt;br /&gt;
ssh_key=https://your-website.com/your-ssh-key.pub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upload to z/VM system via 3270 client ====&lt;br /&gt;
[[File:X3270-1.png|right|300px|thumb|Figure 1.]]&lt;br /&gt;
On your workstation/laptop, download 2 files [https://raw.githubusercontent.com/trothr/znetboot/master/znetboot.exec &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;], and [https://raw.githubusercontent.com/trothr/znetboot/master/curl.rexx &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt;] to your home directory.&lt;br /&gt;
&lt;br /&gt;
Open 3270 client and log in the z/VM system with your z/VM username and password.&lt;br /&gt;
&lt;br /&gt;
Upload 3 files &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; to the z/VM environment using the 3270 client (this tutorial uses x3270). On the top left corner, click &amp;quot;File&amp;quot;, then &amp;quot;File Transfer&amp;quot;. (Figure 1.)&lt;br /&gt;
&lt;br /&gt;
Do following steps : (Figure 2.) [[File:X3270-2.png|right|300px|thumb|Figure 2.]]&lt;br /&gt;
* On &amp;quot;Local File Name&amp;quot; box, enter &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; (the file in your laptop/workstation, at &#039;&#039;&#039;~/alpine.znetboot&#039;&#039;&#039;)&lt;br /&gt;
* On &amp;quot;Host File Name&amp;quot; box, enter &#039;&#039;&#039;alpine znetboot&#039;&#039;&#039; (the file will be in z/VM console)&lt;br /&gt;
&lt;br /&gt;
{{Note|Beware the difference between &#039;&#039;&#039;the dot &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;the space &amp;lt;code&amp;gt; &amp;lt;/code&amp;gt;&#039;&#039;&#039; characters in the file names.}}&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;&#039;&#039;Send to host&#039;&#039;&#039;&lt;br /&gt;
* Choose &#039;&#039;&#039;Host is VM/CMS&#039;&#039;&#039;&lt;br /&gt;
* Choose either &#039;&#039;&#039;Fixed&#039;&#039;&#039; or &#039;&#039;&#039;Variable&#039;&#039;&#039; for &#039;&#039;&#039;Record Format&#039;&#039;&#039;&lt;br /&gt;
:Enter a number for LRECL and BLKSIZE, respectively&lt;br /&gt;
{{Note|Any line in &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; that has more 80 chars (columns) will be splitted into more than 1 line when uploaded to z/VM (CMS) console via 3270. Count the number of characters/column of the longest line in your &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; and fill it in LRECL. There is no restriction for BLKSIZE but 80 is preferred.}}&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Transfer File&#039;&#039;&#039; box&lt;br /&gt;
&lt;br /&gt;
Repeat the same steps with &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== (Optional) Check the configuration files ====&lt;br /&gt;
On 3270 client, enter following commands to check if the configuration files are correctly transferred:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit alpine znetboot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit znetboot exec&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit curl rex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &amp;lt;code&amp;gt;filel&amp;lt;/code&amp;gt; and put &amp;lt;code&amp;gt;xedit&amp;lt;/code&amp;gt; on CMD column to edit respective file.&lt;br /&gt;
&lt;br /&gt;
==== Start ZNETBOOT ====&lt;br /&gt;
On 3270 client, type below command and wait till Figure 3.: [[File:X3270-3.png|right|300px|thumb|Figure 3.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;znetboot alpine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 4. Installation =&lt;br /&gt;
If you install on z/VM, steps in this part does not involve the interaction with the 3270 client anymore. Everything is done in the terminal with SSH client.&lt;br /&gt;
&lt;br /&gt;
If you install on KVM, you can either SSH into the installer (below) or directly use the console starting qemu.&lt;br /&gt;
&lt;br /&gt;
Either installing in KVM or z/VM environments, from your workstation/laptop, you will be able to run:&lt;br /&gt;
 $ ssh root@192.168.1.2 (change ip address to what you specified earlier)&lt;br /&gt;
&lt;br /&gt;
Remaining steps are similar to installing Alpine on other architectures (x86, arm, ppc, etc.), either on KVM (using virtio/SCSI disks) or on z/VM with FBA DASDs. Installing on ECKD DASDs requires an additional step, as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is the detailed walkthrough of installing Alpine on a single ECKD DASD using LVM and extend that LVM to the second ECKD DASD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After SSH-ing into the Alpine installer, run:&lt;br /&gt;
 # setup-alpine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Select keyboard layout [none]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter system hostname (short form, e.g. &#039;foo&#039;) [localhost]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter your hostname&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available interfaces are: eth0.&lt;br /&gt;
Enter &#039;?&#039; for help on bridges, bonding and vlans.&lt;br /&gt;
Which one do you want to initialize? (or &#039;?&#039; or &#039;done&#039;) [eth0]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:type &#039;eth0&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Ip address for eth0? (or &#039;dhcp&#039;, &#039;none&#039;, &#039;?&#039;) [192.168.1.2]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter ip address or &#039;dhcp&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Netmask? [255.255.255.0]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter netmask&lt;br /&gt;
&amp;lt;code&amp;gt;Gateway? (or &#039;none&#039;) [192.168.1.1]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter gateway&#039;s ip address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Do you want to do any manual network configuration? [no]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;no&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS domain name? (e.g &#039;bar.com&#039;) []&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter domain name or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS nameserver(s)? [8.8.8.8 ]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter DNS nameserver&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Changing password for root&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter root password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which timezone are you in? (&#039;?&#039; for list) [UTC]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter timezone or &#039;?&#039; for list of timezones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;HTTP/FTP proxy URL? (e.g. &#039;http://proxy:8080&#039;, or &#039;none&#039;) [none]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter proxy or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter mirror number (1-27) or URL to add (or r/f/e/done) [f]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter a number or &#039;r&#039; or &#039;f&#039; or &#039;e&#039; or &#039;done&#039; as described&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which SSH server? (&#039;openssh&#039;, &#039;dropbear&#039; or &#039;none&#039;) [openssh]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter SSH server or press Enter for openssh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;busybox&#039; or press Enter for chrony&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; (next step is the additional step for ECKD DASDs on z/VM)&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available ECKD DASD(s) are:&lt;br /&gt;
  0.0.04c0	(3390/0c 3990/e9 IBM)&lt;br /&gt;
  0.0.05d1	(3390/0c 3990/e9 IBM)&lt;br /&gt;
Which ECKD DASD(s) would you like to be formatted using dasdfmt? (enter &#039;?&#039; for help) [all]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;all&#039; or &#039;0.0.04c0 0.0.05d1&#039; &#039;&#039;&#039;(separated by a space)&#039;&#039;&#039; to format all/both DASDs&lt;br /&gt;
:enter &#039;0.0.04c0&#039; or &#039;0.0.05d1&#039; to format respective DASD&lt;br /&gt;
:enter &#039;?&#039; for help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;WARNING: Erase ECKD DASD 0.0.04c0? [y/N]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;y&#039; to format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available disks are:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
Which disk(s) would you like to use? (or &#039;?&#039; for help or &#039;none&#039;) [dasda]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;dasda&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039;, &#039;lvm&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;lvm&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected (with LVM):&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;sys&#039; to install Alpine on disk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WARNING: The following disk(s) will be erased:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
WARNING: Erase the above disk(s) and continue? [y/N]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;y&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;&lt;br /&gt;
:the installation is finished&lt;br /&gt;
&lt;br /&gt;
At this point, don&#039;t poweroff the installer right away. Go to [https://wiki.alpinelinux.org/wiki/S390x#Copying_SSH_keys_to_new_Alpine_system &amp;quot;Copying SSH keys to new Alpine system&amp;quot;] (below) to have SSH access to your new Alpine system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copying SSH keys to new Alpine system ==&lt;br /&gt;
&lt;br /&gt;
By default, Alpine disables root login with a password via SSH. SSH keys are used instead.&lt;br /&gt;
&lt;br /&gt;
After the installer&#039;s done running (&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;), there are 2 ways to copy your SSH key into the new Alpine system:&lt;br /&gt;
* Option 1: mount the installed disk and copy the SSH keys while still at the installer&#039;s terminal&lt;br /&gt;
* Option 2: poweroff the installer, start the new Alpine system and directly add the SSH keys&lt;br /&gt;
::: if you install on KVM, boot the new Alpine system on qemu, and copy the SSH keys&lt;br /&gt;
::: if you install on z/VM, use the 3270 client to ipl the new Alpine system and copy the SSH keys&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;lvm&#039; + &#039;sys&#039; installation (like in above example), do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/vg0/lv_root /mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;sys&#039; (without LVM) installation, do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/dasda3 /mnt&amp;lt;/code&amp;gt; (change dasda to dasdb or dasdc, etc. for whichever DASD you chose)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In &#039;sys&#039; installation, 1st partition is boot, 2nd partition is swap, 3rd partition is root }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you use KVM, start qemu with new Alpine system (removing &amp;lt;code&amp;gt;-kernel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-initrd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-append&amp;lt;/code&amp;gt; options)&lt;br /&gt;
&lt;br /&gt;
If you use z/VM, open the 3270 client, login with your z/VM username and password. You may need to run &amp;lt;code&amp;gt; ipl cms&amp;lt;/code&amp;gt;. Then run &amp;lt;code&amp;gt; ipl 04c0&amp;lt;/code&amp;gt; (or whichever DASD device you chose as root disk in earlier steps).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wait for new Alpine system go up, then login as root user while in the qemu console (on KVM) or 3270 client (on z/VM). Then run:&lt;br /&gt;
::&amp;lt;code&amp;gt; # mkdir /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # wget https://your-website.com/your-ssh-key.pub -O /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 700 /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Login to new Alpine system ==&lt;br /&gt;
On your workstation/laptop, use SSH client to login new Alpine system:&lt;br /&gt;
&amp;lt;code&amp;gt; $ ssh root@192.168.1.2&amp;lt;/code&amp;gt; (or whichever ip address you used)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extending LVM volume ==&lt;br /&gt;
After logging in to your new Alpine system, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add -q util-linux e2fsprogs-extra&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  1.6G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk&lt;br /&gt;
&lt;br /&gt;
# dasdfmt -b 4096 -d cdl -yp /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# fdasd -a /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# pvcreate /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# vgextend vg0 /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# lvextend -l +100%FREE /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# resize2fs /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk &lt;br /&gt;
└─dasdb1         94:5    0  2.3G  0 part &lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 5. Tips =&lt;br /&gt;
If you want to disable swap partition, after finishing NTP client step, quit the installer by pressing &amp;lt;code&amp;gt;Ctrl + C&amp;lt;/code&amp;gt;. Then run following command to complete remaining steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# setup-disk -s 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you do &#039;sys&#039; installation, there will be no swap partition anymore and 1st partition will be boot, 2nd partition will be root}}&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Tips&amp;diff=15870</id>
		<title>S390x/Tips</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Tips&amp;diff=15870"/>
		<updated>2019-04-05T09:42:40Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: Redirected page to S390x/tips&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[S390x/tips]]&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x&amp;diff=15869</id>
		<title>S390x</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x&amp;diff=15869"/>
		<updated>2019-04-05T09:41:08Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Installation guide =&lt;br /&gt;
Visit: https://wiki.alpinelinux.org/wiki/S390x/Installation&lt;br /&gt;
&lt;br /&gt;
= Docker with Alpine =&lt;br /&gt;
Running Alpine s390x containers on Docker: https://wiki.alpinelinux.org/wiki/S390x/Docker&lt;br /&gt;
&lt;br /&gt;
= Known Issues =&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/S390x/Known_Issues&lt;br /&gt;
&lt;br /&gt;
= s390-tools =&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/S390x/s390-tools&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/S390x/Tips&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x&amp;diff=15867</id>
		<title>S390x</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x&amp;diff=15867"/>
		<updated>2019-04-05T09:36:05Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Installation guide =&lt;br /&gt;
Visit: https://wiki.alpinelinux.org/wiki/S390x/Installation&lt;br /&gt;
&lt;br /&gt;
= Docker with Alpine =&lt;br /&gt;
Running Alpine s390x containers on Docker: https://wiki.alpinelinux.org/wiki/S390x/Docker&lt;br /&gt;
&lt;br /&gt;
= Known Issues =&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/S390x/Known_Issues&lt;br /&gt;
&lt;br /&gt;
= s390-tools =&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/S390x/s390-tools&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/S390x/tips&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x&amp;diff=15817</id>
		<title>S390x</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x&amp;diff=15817"/>
		<updated>2019-03-18T16:04:24Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Installation guide =&lt;br /&gt;
Visit: https://wiki.alpinelinux.org/wiki/S390x/Installation&lt;br /&gt;
&lt;br /&gt;
= Docker with Alpine =&lt;br /&gt;
Running Alpine s390x containers on Docker: https://wiki.alpinelinux.org/wiki/S390x/Docker&lt;br /&gt;
&lt;br /&gt;
= Known Issues =&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/S390x/Known_Issues&lt;br /&gt;
&lt;br /&gt;
= s390-tools =&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/S390x/s390-tools&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/s390-tools&amp;diff=15816</id>
		<title>S390x/s390-tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/s390-tools&amp;diff=15816"/>
		<updated>2019-03-18T16:04:05Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: Created page with &amp;quot;Place holder.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Place holder.&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390X&amp;diff=15815</id>
		<title>S390X</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390X&amp;diff=15815"/>
		<updated>2019-03-18T16:03:29Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: Created page with &amp;quot;https://wiki.alpinelinux.org/wiki/s390x&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;https://wiki.alpinelinux.org/wiki/s390x&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=User:Tmhoang&amp;diff=15808</id>
		<title>User:Tmhoang</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=User:Tmhoang&amp;diff=15808"/>
		<updated>2019-03-18T13:56:22Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Personal notes&lt;br /&gt;
&lt;br /&gt;
https://pi3g.com/2019/01/10/alpine-boot-process-on-the-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/Setting_up_a_OpenVPN_server&lt;br /&gt;
&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/Running_Alpine_Linux_As_a_QEMU_networked_Guest&lt;br /&gt;
&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/Installing_Alpine_Linux_in_a_chroot&lt;br /&gt;
&lt;br /&gt;
https://lists.strace.io/pipermail/strace-devel/2019-March/008662.html&lt;br /&gt;
&lt;br /&gt;
https://bugs.alpinelinux.org/issues/9504&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=User:Tmhoang&amp;diff=15807</id>
		<title>User:Tmhoang</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=User:Tmhoang&amp;diff=15807"/>
		<updated>2019-03-18T13:55:30Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Personal notes&lt;br /&gt;
&lt;br /&gt;
https://pi3g.com/2019/01/10/alpine-boot-process-on-the-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/Setting_up_a_OpenVPN_server&lt;br /&gt;
&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/Running_Alpine_Linux_As_a_QEMU_networked_Guest&lt;br /&gt;
&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/Installing_Alpine_Linux_in_a_chroot&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=User:Tmhoang&amp;diff=15806</id>
		<title>User:Tmhoang</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=User:Tmhoang&amp;diff=15806"/>
		<updated>2019-03-18T13:55:25Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Personal notes&lt;br /&gt;
https://pi3g.com/2019/01/10/alpine-boot-process-on-the-raspberry-pi/&lt;br /&gt;
&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/Setting_up_a_OpenVPN_server&lt;br /&gt;
&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/Running_Alpine_Linux_As_a_QEMU_networked_Guest&lt;br /&gt;
&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/Installing_Alpine_Linux_in_a_chroot&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=User:Tmhoang&amp;diff=15805</id>
		<title>User:Tmhoang</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=User:Tmhoang&amp;diff=15805"/>
		<updated>2019-03-18T13:55:17Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: Created page with &amp;quot;Personal notes https://pi3g.com/2019/01/10/alpine-boot-process-on-the-raspberry-pi/ https://wiki.alpinelinux.org/wiki/Setting_up_a_OpenVPN_server https://wiki.alpinelinux.org/...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Personal notes&lt;br /&gt;
https://pi3g.com/2019/01/10/alpine-boot-process-on-the-raspberry-pi/&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/Setting_up_a_OpenVPN_server&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/Running_Alpine_Linux_As_a_QEMU_networked_Guest&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/Installing_Alpine_Linux_in_a_chroot&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=15720</id>
		<title>S390x/Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=15720"/>
		<updated>2019-02-20T13:29:41Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: update to 3.9.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 1. Known Issues =&lt;br /&gt;
1. Installation on 2 or more DASDs (either ECKD and FBA) on z/VM is not supported in the installer script (&amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;) at the moment. If you want to install/extend on more than 1 DASD, see [https://wiki.alpinelinux.org/wiki/S390x#Extending_LVM_volume &amp;quot;Extending LVM volume&amp;quot;]. However, installation on 2 or more virtio (SCSI) disks on KVM are supported just like other architectures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 2. The boot media =&lt;br /&gt;
&lt;br /&gt;
For KVM, both ISO image and netboot media (kernel and initramfs) are supported.&lt;br /&gt;
&lt;br /&gt;
For z/VM, netboot media is supported.&lt;br /&gt;
&lt;br /&gt;
For LPAR, not yet supported.&lt;br /&gt;
&lt;br /&gt;
Boot media are found at:&lt;br /&gt;
&lt;br /&gt;
* http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel parameters (and parmfile) ==&lt;br /&gt;
The Alpine s390x boot media requires following kernel parameters to work:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=dhcp&amp;lt;/code&amp;gt; : use DHCP for network configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=client-ip:server-ip:gw-ip:netmask:hostname:device:autoconf:dns1:dns2&amp;lt;/code&amp;gt; : use static IP configuration, each field is separated by a colon &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;client-ip&amp;lt;/code&amp;gt; ip address of the guest VM where we are going to run the installer&lt;br /&gt;
* &amp;lt;code&amp;gt;server-ip&amp;lt;/code&amp;gt; not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;gw-ip&amp;lt;/code&amp;gt;     the gateway ip address&lt;br /&gt;
* &amp;lt;code&amp;gt;netmask&amp;lt;/code&amp;gt;   the netmask&lt;br /&gt;
* &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;    the network interface of the guest VM, default is &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; if left blank&lt;br /&gt;
* &amp;lt;code&amp;gt;autoconf&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dns1&amp;lt;/code&amp;gt;      address of the DNS server&lt;br /&gt;
* &amp;lt;code&amp;gt;dns2&amp;lt;/code&amp;gt;      address of the 2nd DNS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; : the location of the Alpine repository from which packages are downloaded.&lt;br /&gt;
&lt;br /&gt;
:For stable release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/v3.9/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:For rolling release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/edge/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modloop=&amp;lt;/code&amp;gt; : the remote location of the image containing kernel&#039;s modules, required for LVM and raid setup.&lt;br /&gt;
&lt;br /&gt;
:The remote location of the &amp;lt;code&amp;gt;modloop&amp;lt;/code&amp;gt; image is the same as the kernel and initramfs (see below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; : the remote location of your SSH public key which is used to allow SSH connection into the installer. It will be downloaded and copied into &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; in the installer.&lt;br /&gt;
&lt;br /&gt;
{{Note|Fetching public keys from HTTP, HTTPS and FTPS are supported. HTTP should only be used in local development network where you own the network.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Alpine Linux security policies are against using passwords for root access via SSH as we consider using public-private key pairs is a much better approach.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;z/VM only&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt; : the addresses of the DASD devices, either ECKD or FBA DASDs. Each device is separated with a comma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; : the network interface type and its subchannels. At the moment, only QETH layer 2 is supported, thus the name &amp;lt;code&amp;gt;qeth_l2&amp;lt;/code&amp;gt; is used (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 3. Pre-installation =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
Create a virtual disk:&lt;br /&gt;
 $ qemu-img create alpine_disk.qcow2 5G&lt;br /&gt;
&lt;br /&gt;
==== Using iso image ====&lt;br /&gt;
Download latest iso image from : http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x&lt;br /&gt;
&lt;br /&gt;
Start qemu:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -boot d -cdrom alpine-standard-3.9.0-s390x.iso&lt;br /&gt;
&lt;br /&gt;
==== Using netboot media ====&lt;br /&gt;
Download the latest [http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/vmlinuz-vanilla kernel] and [http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/initramfs-vanilla initramfs].&lt;br /&gt;
&lt;br /&gt;
Start qemu: (modify &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -kernel vmlinuz-vanilla \&lt;br /&gt;
        -initrd initramfs-vanilla \&lt;br /&gt;
        -append &amp;quot;ip=192.168.1.2::192.168.1.1:255.255.255.0:none:eth0:none:8.8.8.8 alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.9/main modloop=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/modloop-vanilla ssh_key=https://your-website.com/your-ssh-key.pub&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you have direct access to the qemu console, &amp;lt;code&amp;gt;ssh_key&amp;lt;/code&amp;gt; might not be required.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== z/VM ==&lt;br /&gt;
To ease out the process of downloading the images, punch the readers, ipl, etc., [https://github.com/trothr/znetboot &#039;&#039;&#039;ZNETBOOT&#039;&#039;&#039;] is used.&lt;br /&gt;
&lt;br /&gt;
==== Create the parm file ====&lt;br /&gt;
On your workstation/laptop, create a file named &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt; in your home directory with contents below (modify &amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ZNETBOOT_KERNEL=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/vmlinuz-vanilla&lt;br /&gt;
ZNETBOOT_INITRD=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/initramfs-vanilla&lt;br /&gt;
ZNETBOOT_PROGRESS=1M&lt;br /&gt;
&lt;br /&gt;
alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.9/main&lt;br /&gt;
modloop=http://dl-cdn.alpinelinux.org/alpine/v3.9/releases/s390x/netboot/modloop-vanilla&lt;br /&gt;
&lt;br /&gt;
dasd=0.0.04c0,0.0.05d1&lt;br /&gt;
s390x_net=qeth_l2,0.0.0560,0.0.0561,0.0.0562&lt;br /&gt;
ip=192.168.1.2::192.168.1.1:255.255.255.0:none:eth0:none:8.8.8.8&lt;br /&gt;
&lt;br /&gt;
ssh_key=https://your-website.com/your-ssh-key.pub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upload to z/VM system via 3270 client ====&lt;br /&gt;
[[File:X3270-1.png|right|300px|thumb|Figure 1.]]&lt;br /&gt;
On your workstation/laptop, download 2 files [https://raw.githubusercontent.com/trothr/znetboot/master/znetboot.exec &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;], and [https://raw.githubusercontent.com/trothr/znetboot/master/curl.rexx &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt;] to your home directory.&lt;br /&gt;
&lt;br /&gt;
Open 3270 client and log in the z/VM system with your z/VM username and password.&lt;br /&gt;
&lt;br /&gt;
Upload 3 files &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; to the z/VM environment using the 3270 client (this tutorial uses x3270). On the top left corner, click &amp;quot;File&amp;quot;, then &amp;quot;File Transfer&amp;quot;. (Figure 1.)&lt;br /&gt;
&lt;br /&gt;
Do following steps : (Figure 2.) [[File:X3270-2.png|right|300px|thumb|Figure 2.]]&lt;br /&gt;
* On &amp;quot;Local File Name&amp;quot; box, enter &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; (the file in your laptop/workstation, at &#039;&#039;&#039;~/alpine.znetboot&#039;&#039;&#039;)&lt;br /&gt;
* On &amp;quot;Host File Name&amp;quot; box, enter &#039;&#039;&#039;alpine znetboot&#039;&#039;&#039; (the file will be in z/VM console)&lt;br /&gt;
&lt;br /&gt;
{{Note|Beware the difference between &#039;&#039;&#039;the dot &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;the space &amp;lt;code&amp;gt; &amp;lt;/code&amp;gt;&#039;&#039;&#039; characters in the file names.}}&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;&#039;&#039;Send to host&#039;&#039;&#039;&lt;br /&gt;
* Choose &#039;&#039;&#039;Host is VM/CMS&#039;&#039;&#039;&lt;br /&gt;
* Choose either &#039;&#039;&#039;Fixed&#039;&#039;&#039; or &#039;&#039;&#039;Variable&#039;&#039;&#039; for &#039;&#039;&#039;Record Format&#039;&#039;&#039;&lt;br /&gt;
:Enter a number for LRECL and BLKSIZE, respectively&lt;br /&gt;
{{Note|Any line in &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; that has more 80 chars (columns) will be splitted into more than 1 line when uploaded to z/VM (CMS) console via 3270. Count the number of characters/column of the longest line in your &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; and fill it in LRECL. There is no restriction for BLKSIZE but 80 is preferred.}}&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Transfer File&#039;&#039;&#039; box&lt;br /&gt;
&lt;br /&gt;
Repeat the same steps with &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== (Optional) Check the configuration files ====&lt;br /&gt;
On 3270 client, enter following commands to check if the configuration files are correctly transferred:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit alpine znetboot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit znetboot exec&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit curl rex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &amp;lt;code&amp;gt;filel&amp;lt;/code&amp;gt; and put &amp;lt;code&amp;gt;xedit&amp;lt;/code&amp;gt; on CMD column to edit respective file.&lt;br /&gt;
&lt;br /&gt;
==== Start ZNETBOOT ====&lt;br /&gt;
On 3270 client, type below command and wait till Figure 3.: [[File:X3270-3.png|right|300px|thumb|Figure 3.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;znetboot alpine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 4. Installation =&lt;br /&gt;
If you install on z/VM, steps in this part does not involve the interaction with the 3270 client anymore. Everything is done in the terminal with SSH client.&lt;br /&gt;
&lt;br /&gt;
If you install on KVM, you can either SSH into the installer (below) or directly use the console starting qemu.&lt;br /&gt;
&lt;br /&gt;
Either installing in KVM or z/VM environments, from your workstation/laptop, you will be able to run:&lt;br /&gt;
 $ ssh root@192.168.1.2 (change ip address to what you specified earlier)&lt;br /&gt;
&lt;br /&gt;
Remaining steps are similar to installing Alpine on other architectures (x86, arm, ppc, etc.), either on KVM (using virtio/SCSI disks) or on z/VM with FBA DASDs. Installing on ECKD DASDs requires an additional step, as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is the detailed walkthrough of installing Alpine on a single ECKD DASD using LVM and extend that LVM to the second ECKD DASD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After SSH-ing into the Alpine installer, run:&lt;br /&gt;
 # setup-alpine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Select keyboard layout [none]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter system hostname (short form, e.g. &#039;foo&#039;) [localhost]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter your hostname&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available interfaces are: eth0.&lt;br /&gt;
Enter &#039;?&#039; for help on bridges, bonding and vlans.&lt;br /&gt;
Which one do you want to initialize? (or &#039;?&#039; or &#039;done&#039;) [eth0]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:type &#039;eth0&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Ip address for eth0? (or &#039;dhcp&#039;, &#039;none&#039;, &#039;?&#039;) [192.168.1.2]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter ip address or &#039;dhcp&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Netmask? [255.255.255.0]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter netmask&lt;br /&gt;
&amp;lt;code&amp;gt;Gateway? (or &#039;none&#039;) [192.168.1.1]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter gateway&#039;s ip address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Do you want to do any manual network configuration? [no]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;no&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS domain name? (e.g &#039;bar.com&#039;) []&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter domain name or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS nameserver(s)? [8.8.8.8 ]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter DNS nameserver&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Changing password for root&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter root password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which timezone are you in? (&#039;?&#039; for list) [UTC]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter timezone or &#039;?&#039; for list of timezones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;HTTP/FTP proxy URL? (e.g. &#039;http://proxy:8080&#039;, or &#039;none&#039;) [none]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter proxy or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter mirror number (1-27) or URL to add (or r/f/e/done) [f]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter a number or &#039;r&#039; or &#039;f&#039; or &#039;e&#039; or &#039;done&#039; as described&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which SSH server? (&#039;openssh&#039;, &#039;dropbear&#039; or &#039;none&#039;) [openssh]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter SSH server or press Enter for openssh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;busybox&#039; or press Enter for chrony&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; (next step is the additional step for ECKD DASDs on z/VM)&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available ECKD DASD(s) are:&lt;br /&gt;
  0.0.04c0	(3390/0c 3990/e9 IBM)&lt;br /&gt;
  0.0.05d1	(3390/0c 3990/e9 IBM)&lt;br /&gt;
Which ECKD DASD(s) would you like to be formatted using dasdfmt? (enter &#039;?&#039; for help) [all]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;all&#039; or &#039;0.0.04c0 0.0.05d1&#039; &#039;&#039;&#039;(separated by a space)&#039;&#039;&#039; to format all/both DASDs&lt;br /&gt;
:enter &#039;0.0.04c0&#039; or &#039;0.0.05d1&#039; to format respective DASD&lt;br /&gt;
:enter &#039;?&#039; for help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;WARNING: Erase ECKD DASD 0.0.04c0? [y/N]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;y&#039; to format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available disks are:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
Which disk(s) would you like to use? (or &#039;?&#039; for help or &#039;none&#039;) [dasda]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;dasda&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039;, &#039;lvm&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;lvm&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected (with LVM):&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;sys&#039; to install Alpine on disk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WARNING: The following disk(s) will be erased:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
WARNING: Erase the above disk(s) and continue? [y/N]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;y&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;&lt;br /&gt;
:the installation is finished&lt;br /&gt;
&lt;br /&gt;
At this point, don&#039;t poweroff the installer right away. Go to [https://wiki.alpinelinux.org/wiki/S390x#Copying_SSH_keys_to_new_Alpine_system &amp;quot;Copying SSH keys to new Alpine system&amp;quot;] (below) to have SSH access to your new Alpine system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copying SSH keys to new Alpine system ==&lt;br /&gt;
&lt;br /&gt;
By default, Alpine disables root login with a password via SSH. SSH keys are used instead.&lt;br /&gt;
&lt;br /&gt;
After the installer&#039;s done running (&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;), there are 2 ways to copy your SSH key into the new Alpine system:&lt;br /&gt;
* Option 1: mount the installed disk and copy the SSH keys while still at the installer&#039;s terminal&lt;br /&gt;
* Option 2: poweroff the installer, start the new Alpine system and directly add the SSH keys&lt;br /&gt;
::: if you install on KVM, boot the new Alpine system on qemu, and copy the SSH keys&lt;br /&gt;
::: if you install on z/VM, use the 3270 client to ipl the new Alpine system and copy the SSH keys&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;lvm&#039; + &#039;sys&#039; installation (like in above example), do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/vg0/lv_root /mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;sys&#039; (without LVM) installation, do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/dasda3 /mnt&amp;lt;/code&amp;gt; (change dasda to dasdb or dasdc, etc. for whichever DASD you chose)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In &#039;sys&#039; installation, 1st partition is boot, 2nd partition is swap, 3rd partition is root }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you use KVM, start qemu with new Alpine system (removing &amp;lt;code&amp;gt;-kernel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-initrd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-append&amp;lt;/code&amp;gt; options)&lt;br /&gt;
&lt;br /&gt;
If you use z/VM, open the 3270 client, login with your z/VM username and password. You may need to run &amp;lt;code&amp;gt; ipl cms&amp;lt;/code&amp;gt;. Then run &amp;lt;code&amp;gt; ipl 04c0&amp;lt;/code&amp;gt; (or whichever DASD device you chose as root disk in earlier steps).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wait for new Alpine system go up, then login as root user while in the qemu console (on KVM) or 3270 client (on z/VM). Then run:&lt;br /&gt;
::&amp;lt;code&amp;gt; # mkdir /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # wget https://your-website.com/your-ssh-key.pub -O /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 700 /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Login to new Alpine system ==&lt;br /&gt;
On your workstation/laptop, use SSH client to login new Alpine system:&lt;br /&gt;
&amp;lt;code&amp;gt; $ ssh root@192.168.1.2&amp;lt;/code&amp;gt; (or whichever ip address you used)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extending LVM volume ==&lt;br /&gt;
After logging in to your new Alpine system, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add -q util-linux e2fsprogs-extra&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  1.6G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk&lt;br /&gt;
&lt;br /&gt;
# dasdfmt -b 4096 -d cdl -yp /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# fdasd -a /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# pvcreate /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# vgextend vg0 /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# lvextend -l +100%FREE /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# resize2fs /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk &lt;br /&gt;
└─dasdb1         94:5    0  2.3G  0 part &lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 5. Tips =&lt;br /&gt;
If you want to disable swap partition, after finishing NTP client step, quit the installer by pressing &amp;lt;code&amp;gt;Ctrl + C&amp;lt;/code&amp;gt;. Then run following command to complete remaining steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# setup-disk -s 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you do &#039;sys&#039; installation, there will be no swap partition anymore and 1st partition will be boot, 2nd partition will be root}}&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Known_Issues&amp;diff=15706</id>
		<title>S390x/Known Issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Known_Issues&amp;diff=15706"/>
		<updated>2019-02-05T10:25:41Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
When running the 3.9 netboot installer, you might face this problem mostly &#039;&#039;&#039;z/VM hypervisor&#039;&#039;&#039; (common among architectures without a RTC clock like armhf, aarch64, s390x) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony] busybox&lt;br /&gt;
 \* service ntpd added to runlevel default&lt;br /&gt;
 \* Starting busybox ntpd ...                                              [ ok ]&lt;br /&gt;
ssl_client: mirrors.alpinelinux.org: ocsp verify failed: ocsp response not current&lt;br /&gt;
wget: error getting response: Connection reset by peer&lt;br /&gt;
r) Add random from the above list&lt;br /&gt;
f) Detect and add fastest mirror from above list&lt;br /&gt;
e) Edit /etc/apk/repositories with text editor&lt;br /&gt;
&lt;br /&gt;
Enter mirror number (1-0) or URL to add (or r/f/e/done) [f]: &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is because the clocksource on s390x was not yet detected. There is a pull request to make this work (would be available on 3.9.1 release):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://github.com/alpinelinux/aports/pull/6183&lt;br /&gt;
https://github.com/alpinelinux/aports/pull/6184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the mean time, to overcome this problem, you need to update the system time, either manullay using &amp;lt;code&amp;gt; date &amp;lt;/code&amp;gt; command or using NTP then start the installer as bellow:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# setup-interfaces&lt;br /&gt;
# setup-dns&lt;br /&gt;
# service networking start&lt;br /&gt;
# ntpd -qn -p pool.ntp.org&lt;br /&gt;
# setup-alpine&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Known_Issues&amp;diff=15696</id>
		<title>S390x/Known Issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Known_Issues&amp;diff=15696"/>
		<updated>2019-02-04T15:24:25Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
When running the 3.9 installer, you might face this problem (common among architectures without a RTC clock like armhf, aarch64, s390x) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony] busybox&lt;br /&gt;
 \* service ntpd added to runlevel default&lt;br /&gt;
 \* Starting busybox ntpd ...                                              [ ok ]&lt;br /&gt;
ssl_client: mirrors.alpinelinux.org: ocsp verify failed: ocsp response not current&lt;br /&gt;
wget: error getting response: Connection reset by peer&lt;br /&gt;
r) Add random from the above list&lt;br /&gt;
f) Detect and add fastest mirror from above list&lt;br /&gt;
e) Edit /etc/apk/repositories with text editor&lt;br /&gt;
&lt;br /&gt;
Enter mirror number (1-0) or URL to add (or r/f/e/done) [f]: &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is because the clocksource on s390x was not yet detected. There is a pull request to make this work (would be available on 3.9.1 release):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://github.com/alpinelinux/aports/pull/6183&lt;br /&gt;
https://github.com/alpinelinux/aports/pull/6184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the mean time, to overcome this problem, you need to update the system time, either manullay using &amp;lt;code&amp;gt; date &amp;lt;/code&amp;gt; command or using NTP then start the installer as bellow:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# setup-interfaces&lt;br /&gt;
# setup-dns&lt;br /&gt;
# service networking start&lt;br /&gt;
# ntpd -qn -p pool.ntp.org&lt;br /&gt;
# setup-alpine&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Known_Issues&amp;diff=15691</id>
		<title>S390x/Known Issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Known_Issues&amp;diff=15691"/>
		<updated>2019-01-31T14:40:51Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
When running the 3.9 installer, you might face this problem (common among architectures without a RTC clock like armhf, aarch64, s390x) :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony] busybox&lt;br /&gt;
 \* service ntpd added to runlevel default&lt;br /&gt;
 \* Starting busybox ntpd ...                                              [ ok ]&lt;br /&gt;
ssl_client: mirrors.alpinelinux.org: ocsp verify failed: ocsp response not current&lt;br /&gt;
wget: error getting response: Connection reset by peer&lt;br /&gt;
r) Add random from the above list&lt;br /&gt;
f) Detect and add fastest mirror from above list&lt;br /&gt;
e) Edit /etc/apk/repositories with text editor&lt;br /&gt;
&lt;br /&gt;
Enter mirror number (1-0) or URL to add (or r/f/e/done) [f]: &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is because the clocksource on s390x was not yet detected. There is a pull request to make this work (would be available on 3.9.1 release):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://github.com/alpinelinux/aports/pull/6184&lt;br /&gt;
https://github.com/alpinelinux/aports/pull/6184 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the mean time, to overcome this problem, you need to update the system time, either manullay using &amp;lt;code&amp;gt; date &amp;lt;/code&amp;gt; command or using NTP then start the installer as bellow:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# setup-interfaces&lt;br /&gt;
# setup-dns&lt;br /&gt;
# service networking start&lt;br /&gt;
# ntpd -qn -p pool.ntp.org&lt;br /&gt;
# setup-alpine&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Known_Issues&amp;diff=15690</id>
		<title>S390x/Known Issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Known_Issues&amp;diff=15690"/>
		<updated>2019-01-31T14:27:40Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: Created page with &amp;quot;= 1 = &amp;lt;code&amp;gt; Which NTP client to run? (&amp;#039;busybox&amp;#039;, &amp;#039;openntpd&amp;#039;, &amp;#039;chrony&amp;#039; or &amp;#039;none&amp;#039;) [chrony] busybox  * service ntpd added to runlevel default  * Starting busybox ntpd ......&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 1 =&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony] busybox&lt;br /&gt;
 * service ntpd added to runlevel default&lt;br /&gt;
 * Starting busybox ntpd ...                                              [ ok ]&lt;br /&gt;
ssl_client: mirrors.alpinelinux.org: ocsp verify failed: ocsp response not current&lt;br /&gt;
wget: error getting response: Connection reset by peer&lt;br /&gt;
r) Add random from the above list&lt;br /&gt;
f) Detect and add fastest mirror from above list&lt;br /&gt;
e) Edit /etc/apk/repositories with text editor&lt;br /&gt;
&lt;br /&gt;
Enter mirror number (1-0) or URL to add (or r/f/e/done) [f]: &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is because the clocksource on s390x was not yet detected. There is a pull request to make it work&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
https://github.com/alpinelinux/aports/pull/6184&lt;br /&gt;
https://github.com/alpinelinux/aports/pull/6184 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the mean time, please run below command before running &amp;lt;code&amp;gt; # setup-alpine &amp;lt;/code&amp;gt; for the installer:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# ntpd -qn -p pool.ntp.org&lt;br /&gt;
# setup-alpine&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x&amp;diff=15689</id>
		<title>S390x</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x&amp;diff=15689"/>
		<updated>2019-01-31T14:22:37Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Installation guide =&lt;br /&gt;
Visit: https://wiki.alpinelinux.org/wiki/S390x/Installation&lt;br /&gt;
&lt;br /&gt;
= Docker with Alpine =&lt;br /&gt;
Running Alpine s390x containers on Docker: https://wiki.alpinelinux.org/wiki/S390x/Docker&lt;br /&gt;
&lt;br /&gt;
= Known Issues =&lt;br /&gt;
https://wiki.alpinelinux.org/wiki/S390x/Known_Issues&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x&amp;diff=15685</id>
		<title>S390x</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x&amp;diff=15685"/>
		<updated>2019-01-29T21:18:49Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: Replaced content with &amp;quot; = Installation guide = Visit: https://wiki.alpinelinux.org/wiki/S390x/Installation  = Docker with Alpine = Running Alpine s390x containers on Docker: https://wiki.alpinel...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Installation guide =&lt;br /&gt;
Visit: https://wiki.alpinelinux.org/wiki/S390x/Installation&lt;br /&gt;
&lt;br /&gt;
= Docker with Alpine =&lt;br /&gt;
Running Alpine s390x containers on Docker: https://wiki.alpinelinux.org/wiki/S390x/Docker&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=15684</id>
		<title>S390x/Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x/Installation&amp;diff=15684"/>
		<updated>2019-01-29T21:18:22Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: Created page with &amp;quot; = 1. Known Issues = 1. Installation on 2 or more DASDs (either ECKD and FBA) on z/VM is not supported in the installer script (&amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;) at the moment. If yo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 1. Known Issues =&lt;br /&gt;
1. Installation on 2 or more DASDs (either ECKD and FBA) on z/VM is not supported in the installer script (&amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;) at the moment. If you want to install/extend on more than 1 DASD, see [https://wiki.alpinelinux.org/wiki/S390x#Extending_LVM_volume &amp;quot;Extending LVM volume&amp;quot;]. However, installation on 2 or more virtio (SCSI) disks on KVM are supported just like other architectures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 2. The boot media =&lt;br /&gt;
&lt;br /&gt;
For KVM, both ISO image and netboot media (kernel and initramfs) are supported.&lt;br /&gt;
&lt;br /&gt;
For z/VM, netboot media is supported.&lt;br /&gt;
&lt;br /&gt;
For LPAR, not yet supported.&lt;br /&gt;
&lt;br /&gt;
Boot media are found at:&lt;br /&gt;
&lt;br /&gt;
* http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel parameters (and parmfile) ==&lt;br /&gt;
The Alpine s390x boot media requires following kernel parameters to work:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=dhcp&amp;lt;/code&amp;gt; : use DHCP for network configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=client-ip:server-ip:gw-ip:netmask:hostname:device:autoconf:dns1:dns2&amp;lt;/code&amp;gt; : use static IP configuration, each field is separated by a colon &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;client-ip&amp;lt;/code&amp;gt; ip address of the guest VM where we are going to run the installer&lt;br /&gt;
* &amp;lt;code&amp;gt;server-ip&amp;lt;/code&amp;gt; not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;gw-ip&amp;lt;/code&amp;gt;     the gateway ip address&lt;br /&gt;
* &amp;lt;code&amp;gt;netmask&amp;lt;/code&amp;gt;   the netmask&lt;br /&gt;
* &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;    the network interface of the guest VM, default is &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; if left blank&lt;br /&gt;
* &amp;lt;code&amp;gt;autoconf&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dns1&amp;lt;/code&amp;gt;      address of the DNS server&lt;br /&gt;
* &amp;lt;code&amp;gt;dns2&amp;lt;/code&amp;gt;      address of the 2nd DNS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; : the location of the Alpine repository from which packages are downloaded.&lt;br /&gt;
&lt;br /&gt;
:For stable release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/v3.8/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:For rolling release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/edge/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modloop=&amp;lt;/code&amp;gt; : the remote location of the image containing kernel&#039;s modules, required for LVM and raid setup.&lt;br /&gt;
&lt;br /&gt;
:The remote location of the &amp;lt;code&amp;gt;modloop&amp;lt;/code&amp;gt; image is the same as the kernel and initramfs (see below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; : the remote location of your SSH public key which is used to allow SSH connection into the installer. It will be downloaded and copied into &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; in the installer.&lt;br /&gt;
&lt;br /&gt;
{{Note|Fetching public keys from HTTP, HTTPS and FTPS are supported. HTTP should only be used in local development network where you own the network.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Alpine Linux security policies are against using passwords for root access via SSH as we consider using public-private key pairs is a much better approach.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;z/VM only&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt; : the addresses of the DASD devices, either ECKD or FBA DASDs. Each device is separated with a comma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; : the network interface type and its subchannels. At the moment, only QETH layer 2 is supported, thus the name &amp;lt;code&amp;gt;qeth_l2&amp;lt;/code&amp;gt; is used (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 3. Pre-installation =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
Create a virtual disk:&lt;br /&gt;
 $ qemu-img create alpine_disk.qcow2 5G&lt;br /&gt;
&lt;br /&gt;
==== Using iso image ====&lt;br /&gt;
Download latest iso image from : http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x&lt;br /&gt;
&lt;br /&gt;
Start qemu:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -boot d -cdrom alpine-standard-3.8.2-s390x.iso&lt;br /&gt;
&lt;br /&gt;
==== Using netboot media ====&lt;br /&gt;
Download the latest [http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/vmlinuz-vanilla kernel] and [http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/initramfs-vanilla initramfs].&lt;br /&gt;
&lt;br /&gt;
Start qemu: (modify &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -kernel vmlinuz-vanilla \&lt;br /&gt;
        -initrd initramfs-vanilla \&lt;br /&gt;
        -append &amp;quot;ip=192.168.1.2::192.168.1.1:255.255.255.0:none:eth0:none:8.8.8.8 alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.8/main modloop=http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/modloop-vanilla ssh_key=https://your-website.com/your-ssh-key.pub&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you have direct access to the qemu console, &amp;lt;code&amp;gt;ssh_key&amp;lt;/code&amp;gt; might not be required.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== z/VM ==&lt;br /&gt;
To ease out the process of downloading the images, punch the readers, ipl, etc., [https://github.com/trothr/znetboot &#039;&#039;&#039;ZNETBOOT&#039;&#039;&#039;] is used.&lt;br /&gt;
&lt;br /&gt;
==== Create the parm file ====&lt;br /&gt;
On your workstation/laptop, create a file named &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt; in your home directory with contents below (modify &amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ZNETBOOT_KERNEL=http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/vmlinuz-vanilla&lt;br /&gt;
ZNETBOOT_INITRD=http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/initramfs-vanilla&lt;br /&gt;
ZNETBOOT_PROGRESS=1M&lt;br /&gt;
&lt;br /&gt;
alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.8/main&lt;br /&gt;
modloop=http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/modloop-vanilla&lt;br /&gt;
&lt;br /&gt;
dasd=0.0.04c0,0.0.05d1&lt;br /&gt;
s390x_net=qeth_l2,0.0.0560,0.0.0561,0.0.0562&lt;br /&gt;
ip=192.168.1.2::192.168.1.1:255.255.255.0:none:eth0:none:8.8.8.8&lt;br /&gt;
&lt;br /&gt;
ssh_key=https://your-website.com/your-ssh-key.pub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upload to z/VM system via 3270 client ====&lt;br /&gt;
[[File:X3270-1.png|right|300px|thumb|Figure 1.]]&lt;br /&gt;
On your workstation/laptop, download 2 files [https://raw.githubusercontent.com/trothr/znetboot/master/znetboot.exec &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;], and [https://raw.githubusercontent.com/trothr/znetboot/master/curl.rexx &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt;] to your home directory.&lt;br /&gt;
&lt;br /&gt;
Open 3270 client and log in the z/VM system with your z/VM username and password.&lt;br /&gt;
&lt;br /&gt;
Upload 3 files &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; to the z/VM environment using the 3270 client (this tutorial uses x3270). On the top left corner, click &amp;quot;File&amp;quot;, then &amp;quot;File Transfer&amp;quot;. (Figure 1.)&lt;br /&gt;
&lt;br /&gt;
Do following steps : (Figure 2.) [[File:X3270-2.png|right|300px|thumb|Figure 2.]]&lt;br /&gt;
* On &amp;quot;Local File Name&amp;quot; box, enter &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; (the file in your laptop/workstation, at &#039;&#039;&#039;~/alpine.znetboot&#039;&#039;&#039;)&lt;br /&gt;
* On &amp;quot;Host File Name&amp;quot; box, enter &#039;&#039;&#039;alpine znetboot&#039;&#039;&#039; (the file will be in z/VM console)&lt;br /&gt;
&lt;br /&gt;
{{Note|Beware the difference between &#039;&#039;&#039;the dot &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;the space &amp;lt;code&amp;gt; &amp;lt;/code&amp;gt;&#039;&#039;&#039; characters in the file names.}}&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;&#039;&#039;Send to host&#039;&#039;&#039;&lt;br /&gt;
* Choose &#039;&#039;&#039;Host is VM/CMS&#039;&#039;&#039;&lt;br /&gt;
* Choose either &#039;&#039;&#039;Fixed&#039;&#039;&#039; or &#039;&#039;&#039;Variable&#039;&#039;&#039; for &#039;&#039;&#039;Record Format&#039;&#039;&#039;&lt;br /&gt;
:Enter a number for LRECL and BLKSIZE, respectively&lt;br /&gt;
{{Note|Any line in &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; that has more 80 chars (columns) will be splitted into more than 1 line when uploaded to z/VM (CMS) console via 3270. Count the number of characters/column of the longest line in your &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; and fill it in LRECL. There is no restriction for BLKSIZE but 80 is preferred.}}&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Transfer File&#039;&#039;&#039; box&lt;br /&gt;
&lt;br /&gt;
Repeat the same steps with &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== (Optional) Check the configuration files ====&lt;br /&gt;
On 3270 client, enter following commands to check if the configuration files are correctly transferred:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit alpine znetboot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit znetboot exec&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit curl rex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &amp;lt;code&amp;gt;filel&amp;lt;/code&amp;gt; and put &amp;lt;code&amp;gt;xedit&amp;lt;/code&amp;gt; on CMD column to edit respective file.&lt;br /&gt;
&lt;br /&gt;
==== Start ZNETBOOT ====&lt;br /&gt;
On 3270 client, type below command and wait till Figure 3.: [[File:X3270-3.png|right|300px|thumb|Figure 3.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;znetboot alpine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 4. Installation =&lt;br /&gt;
If you install on z/VM, steps in this part does not involve the interaction with the 3270 client anymore. Everything is done in the terminal with SSH client.&lt;br /&gt;
&lt;br /&gt;
If you install on KVM, you can either SSH into the installer (below) or directly use the console starting qemu.&lt;br /&gt;
&lt;br /&gt;
Either installing in KVM or z/VM environments, from your workstation/laptop, you will be able to run:&lt;br /&gt;
 $ ssh root@192.168.1.2 (change ip address to what you specified earlier)&lt;br /&gt;
&lt;br /&gt;
Remaining steps are similar to installing Alpine on other architectures (x86, arm, ppc, etc.), either on KVM (using virtio/SCSI disks) or on z/VM with FBA DASDs. Installing on ECKD DASDs requires an additional step, as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is the detailed walkthrough of installing Alpine on a single ECKD DASD using LVM and extend that LVM to the second ECKD DASD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After SSH-ing into the Alpine installer, run:&lt;br /&gt;
 # setup-alpine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Select keyboard layout [none]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter system hostname (short form, e.g. &#039;foo&#039;) [localhost]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter your hostname&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available interfaces are: eth0.&lt;br /&gt;
Enter &#039;?&#039; for help on bridges, bonding and vlans.&lt;br /&gt;
Which one do you want to initialize? (or &#039;?&#039; or &#039;done&#039;) [eth0]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:type &#039;eth0&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Ip address for eth0? (or &#039;dhcp&#039;, &#039;none&#039;, &#039;?&#039;) [192.168.1.2]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter ip address or &#039;dhcp&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Netmask? [255.255.255.0]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter netmask&lt;br /&gt;
&amp;lt;code&amp;gt;Gateway? (or &#039;none&#039;) [192.168.1.1]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter gateway&#039;s ip address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Do you want to do any manual network configuration? [no]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;no&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS domain name? (e.g &#039;bar.com&#039;) []&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter domain name or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS nameserver(s)? [8.8.8.8 ]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter DNS nameserver&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Changing password for root&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter root password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which timezone are you in? (&#039;?&#039; for list) [UTC]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter timezone or &#039;?&#039; for list of timezones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;HTTP/FTP proxy URL? (e.g. &#039;http://proxy:8080&#039;, or &#039;none&#039;) [none]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter proxy or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter mirror number (1-27) or URL to add (or r/f/e/done) [f]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter a number or &#039;r&#039; or &#039;f&#039; or &#039;e&#039; or &#039;done&#039; as described&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which SSH server? (&#039;openssh&#039;, &#039;dropbear&#039; or &#039;none&#039;) [openssh]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter SSH server or press Enter for openssh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;busybox&#039; or press Enter for chrony&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; (next step is the additional step for ECKD DASDs on z/VM)&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available ECKD DASD(s) are:&lt;br /&gt;
  0.0.04c0	(3390/0c 3990/e9 IBM)&lt;br /&gt;
  0.0.05d1	(3390/0c 3990/e9 IBM)&lt;br /&gt;
Which ECKD DASD(s) would you like to be formatted using dasdfmt? (enter &#039;?&#039; for help) [all]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;all&#039; or &#039;0.0.04c0 0.0.05d1&#039; &#039;&#039;&#039;(separated by a space)&#039;&#039;&#039; to format all/both DASDs&lt;br /&gt;
:enter &#039;0.0.04c0&#039; or &#039;0.0.05d1&#039; to format respective DASD&lt;br /&gt;
:enter &#039;?&#039; for help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;WARNING: Erase ECKD DASD 0.0.04c0? [y/N]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;y&#039; to format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available disks are:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
Which disk(s) would you like to use? (or &#039;?&#039; for help or &#039;none&#039;) [dasda]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;dasda&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039;, &#039;lvm&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;lvm&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected (with LVM):&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;sys&#039; to install Alpine on disk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WARNING: The following disk(s) will be erased:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
WARNING: Erase the above disk(s) and continue? [y/N]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;y&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;&lt;br /&gt;
:the installation is finished&lt;br /&gt;
&lt;br /&gt;
At this point, don&#039;t poweroff the installer right away. Go to [https://wiki.alpinelinux.org/wiki/S390x#Copying_SSH_keys_to_new_Alpine_system &amp;quot;Copying SSH keys to new Alpine system&amp;quot;] (below) to have SSH access to your new Alpine system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copying SSH keys to new Alpine system ==&lt;br /&gt;
&lt;br /&gt;
By default, Alpine disables root login with a password via SSH. SSH keys are used instead.&lt;br /&gt;
&lt;br /&gt;
After the installer&#039;s done running (&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;), there are 2 ways to copy your SSH key into the new Alpine system:&lt;br /&gt;
* Option 1: mount the installed disk and copy the SSH keys while still at the installer&#039;s terminal&lt;br /&gt;
* Option 2: poweroff the installer, start the new Alpine system and directly add the SSH keys&lt;br /&gt;
::: if you install on KVM, boot the new Alpine system on qemu, and copy the SSH keys&lt;br /&gt;
::: if you install on z/VM, use the 3270 client to ipl the new Alpine system and copy the SSH keys&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;lvm&#039; + &#039;sys&#039; installation (like in above example), do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/vg0/lv_root /mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;sys&#039; (without LVM) installation, do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/dasda3 /mnt&amp;lt;/code&amp;gt; (change dasda to dasdb or dasdc, etc. for whichever DASD you chose)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In &#039;sys&#039; installation, 1st partition is boot, 2nd partition is swap, 3rd partition is root }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you use KVM, start qemu with new Alpine system (removing &amp;lt;code&amp;gt;-kernel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-initrd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-append&amp;lt;/code&amp;gt; options)&lt;br /&gt;
&lt;br /&gt;
If you use z/VM, open the 3270 client, login with your z/VM username and password. You may need to run &amp;lt;code&amp;gt; ipl cms&amp;lt;/code&amp;gt;. Then run &amp;lt;code&amp;gt; ipl 04c0&amp;lt;/code&amp;gt; (or whichever DASD device you chose as root disk in earlier steps).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wait for new Alpine system go up, then login as root user while in the qemu console (on KVM) or 3270 client (on z/VM). Then run:&lt;br /&gt;
::&amp;lt;code&amp;gt; # mkdir /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # wget https://your-website.com/your-ssh-key.pub -O /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 700 /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Login to new Alpine system ==&lt;br /&gt;
On your workstation/laptop, use SSH client to login new Alpine system:&lt;br /&gt;
&amp;lt;code&amp;gt; $ ssh root@192.168.1.2&amp;lt;/code&amp;gt; (or whichever ip address you used)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extending LVM volume ==&lt;br /&gt;
After logging in to your new Alpine system, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add -q util-linux e2fsprogs-extra&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  1.6G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk&lt;br /&gt;
&lt;br /&gt;
# dasdfmt -b 4096 -d cdl -yp /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# fdasd -a /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# pvcreate /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# vgextend vg0 /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# lvextend -l +100%FREE /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# resize2fs /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk &lt;br /&gt;
└─dasdb1         94:5    0  2.3G  0 part &lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 5. Tips =&lt;br /&gt;
If you want to disable swap partition, after finishing NTP client step, quit the installer by pressing &amp;lt;code&amp;gt;Ctrl + C&amp;lt;/code&amp;gt;. Then run following command to complete remaining steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# setup-disk -s 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you do &#039;sys&#039; installation, there will be no swap partition anymore and 1st partition will be boot, 2nd partition will be root}}&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x&amp;diff=15673</id>
		<title>S390x</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x&amp;diff=15673"/>
		<updated>2019-01-18T08:47:15Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= The boot media =&lt;br /&gt;
&lt;br /&gt;
For KVM, both ISO image and netboot media (kernel and initramfs) are supported.&lt;br /&gt;
&lt;br /&gt;
For z/VM, netboot media is supported.&lt;br /&gt;
&lt;br /&gt;
For LPAR, not yet supported.&lt;br /&gt;
&lt;br /&gt;
Boot media are found at:&lt;br /&gt;
&lt;br /&gt;
* http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel parameters (and parmfile) ==&lt;br /&gt;
The Alpine s390x boot media requires following kernel parameters to work:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=dhcp&amp;lt;/code&amp;gt; : use DHCP for network configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=client-ip:server-ip:gw-ip:netmask:hostname:device:autoconf:dns1:dns2&amp;lt;/code&amp;gt; : use static IP configuration, each field is separated by a colon &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;client-ip&amp;lt;/code&amp;gt; ip address of the guest VM where we are going to run the installer&lt;br /&gt;
* &amp;lt;code&amp;gt;server-ip&amp;lt;/code&amp;gt; not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;gw-ip&amp;lt;/code&amp;gt;     the gateway ip address&lt;br /&gt;
* &amp;lt;code&amp;gt;netmask&amp;lt;/code&amp;gt;   the netmask&lt;br /&gt;
* &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;    the network interface of the guest VM, default is &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; if left blank&lt;br /&gt;
* &amp;lt;code&amp;gt;autoconf&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dns1&amp;lt;/code&amp;gt;      address of the DNS server&lt;br /&gt;
* &amp;lt;code&amp;gt;dns2&amp;lt;/code&amp;gt;      address of the 2nd DNS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; : the location of the Alpine repository from which packages are downloaded.&lt;br /&gt;
&lt;br /&gt;
:For stable release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/v3.8/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:For rolling release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/edge/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modloop=&amp;lt;/code&amp;gt; : the remote location of the image containing kernel&#039;s modules, required for LVM and raid setup.&lt;br /&gt;
&lt;br /&gt;
:The remote location of the &amp;lt;code&amp;gt;modloop&amp;lt;/code&amp;gt; image is the same as the kernel and initramfs (see below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; : the remote location of your SSH public key which is used to allow SSH connection into the installer. It will be downloaded and copied into &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; in the installer.&lt;br /&gt;
&lt;br /&gt;
{{Note|Fetching public keys from HTTP, HTTPS and FTPS are supported. HTTP should only be used in local development network where you own the network.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Alpine Linux security policies are against using passwords for root access via SSH as we consider using public-private key pairs is a much better approach.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;z/VM only&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt; : the addresses of the DASD devices, either ECKD or FBA DASDs. Each device is separated with a comma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; : the network interface type and its subchannels. At the moment, only QETH layer 2 is supported, thus the name &amp;lt;code&amp;gt;qeth_l2&amp;lt;/code&amp;gt; is used (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Pre-installation =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
Create a virtual disk:&lt;br /&gt;
 $ qemu-img create alpine_disk.qcow2 5G&lt;br /&gt;
&lt;br /&gt;
==== Using iso image ====&lt;br /&gt;
Download latest iso image from : http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x&lt;br /&gt;
&lt;br /&gt;
Start qemu:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -boot d -cdrom alpine-standard-3.8.2-s390x.iso&lt;br /&gt;
&lt;br /&gt;
==== Using netboot media ====&lt;br /&gt;
Download the latest [http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/vmlinuz-vanilla kernel] and [http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/initramfs-vanilla initramfs].&lt;br /&gt;
&lt;br /&gt;
Start qemu: (modify &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -kernel vmlinuz-vanilla \&lt;br /&gt;
        -initrd initramfs-vanilla \&lt;br /&gt;
        -append &amp;quot;ip=192.168.1.2::192.168.1.1:255.255.255.0:none:eth0:none:8.8.8.8 alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.8/main modloop=http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/modloop-vanilla ssh_key=https://your-website.com/your-ssh-key.pub&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you have direct access to the qemu console, &amp;lt;code&amp;gt;ssh_key&amp;lt;/code&amp;gt; might not be required.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== z/VM ==&lt;br /&gt;
To ease out the process of downloading the images, punch the readers, ipl, etc., [https://github.com/trothr/znetboot &#039;&#039;&#039;ZNETBOOT&#039;&#039;&#039;] is used.&lt;br /&gt;
&lt;br /&gt;
==== Create the parm file ====&lt;br /&gt;
On your workstation/laptop, create a file named &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt; in your home directory with contents below (modify &amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ZNETBOOT_KERNEL=http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/vmlinuz-vanilla&lt;br /&gt;
ZNETBOOT_INITRD=http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/initramfs-vanilla&lt;br /&gt;
ZNETBOOT_PROGRESS=1M&lt;br /&gt;
&lt;br /&gt;
alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.8/main&lt;br /&gt;
modloop=http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/modloop-vanilla&lt;br /&gt;
&lt;br /&gt;
dasd=0.0.04c0,0.0.05d1&lt;br /&gt;
s390x_net=qeth_l2,0.0.0560,0.0.0561,0.0.0562&lt;br /&gt;
ip=192.168.1.2::192.168.1.1:255.255.255.0:none:eth0:none:8.8.8.8&lt;br /&gt;
&lt;br /&gt;
ssh_key=https://your-website.com/your-ssh-key.pub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upload to z/VM system via 3270 client ====&lt;br /&gt;
[[File:X3270-1.png|right|300px|thumb|Figure 1.]]&lt;br /&gt;
On your workstation/laptop, download 2 files [https://raw.githubusercontent.com/trothr/znetboot/master/znetboot.exec &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;], and [https://raw.githubusercontent.com/trothr/znetboot/master/curl.rexx &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt;] to your home directory.&lt;br /&gt;
&lt;br /&gt;
Open 3270 client and log in the z/VM system with your z/VM username and password.&lt;br /&gt;
&lt;br /&gt;
Upload 3 files &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; to the z/VM environment using the 3270 client (this tutorial uses x3270). On the top left corner, click &amp;quot;File&amp;quot;, then &amp;quot;File Transfer&amp;quot;. (Figure 1.)&lt;br /&gt;
&lt;br /&gt;
Do following steps : (Figure 2.) [[File:X3270-2.png|right|300px|thumb|Figure 2.]]&lt;br /&gt;
* On &amp;quot;Local File Name&amp;quot; box, enter &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; (the file in your laptop/workstation, at &#039;&#039;&#039;~/alpine.znetboot&#039;&#039;&#039;)&lt;br /&gt;
* On &amp;quot;Host File Name&amp;quot; box, enter &#039;&#039;&#039;alpine znetboot&#039;&#039;&#039; (the file will be in z/VM console)&lt;br /&gt;
&lt;br /&gt;
{{Note|Beware the difference between &#039;&#039;&#039;the dot &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;the space &amp;lt;code&amp;gt; &amp;lt;/code&amp;gt;&#039;&#039;&#039; characters in the file names.}}&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;&#039;&#039;Send to host&#039;&#039;&#039;&lt;br /&gt;
* Choose &#039;&#039;&#039;Host is VM/CMS&#039;&#039;&#039;&lt;br /&gt;
* Choose either &#039;&#039;&#039;Fixed&#039;&#039;&#039; or &#039;&#039;&#039;Variable&#039;&#039;&#039; for &#039;&#039;&#039;Record Format&#039;&#039;&#039;&lt;br /&gt;
:Enter a number for LRECL and BLKSIZE, respectively&lt;br /&gt;
{{Note|Any line in &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; that has more 80 chars (columns) will be splitted into more than 1 line when uploaded to z/VM (CMS) console via 3270. Count the number of characters/column of the longest line in your &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; and fill it in LRECL. There is no restriction for BLKSIZE but 80 is preferred.}}&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Transfer File&#039;&#039;&#039; box&lt;br /&gt;
&lt;br /&gt;
Repeat the same steps with &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== (Optional) Check the configuration files ====&lt;br /&gt;
On 3270 client, enter following commands to check if the configuration files are correctly transferred:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit alpine znetboot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit znetboot exec&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit curl rex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &amp;lt;code&amp;gt;filel&amp;lt;/code&amp;gt; and put &amp;lt;code&amp;gt;xedit&amp;lt;/code&amp;gt; on CMD column to edit respective file.&lt;br /&gt;
&lt;br /&gt;
==== Start ZNETBOOT ====&lt;br /&gt;
On 3270 client, type below command and wait till Figure 3.: [[File:X3270-3.png|right|300px|thumb|Figure 3.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;znetboot alpine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
If you install on z/VM, steps in this part does not involve the interaction with the 3270 client anymore. Everything is done in the terminal with SSH client.&lt;br /&gt;
&lt;br /&gt;
If you install on KVM, you can either SSH into the installer (below) or directly use the console starting qemu.&lt;br /&gt;
&lt;br /&gt;
Either installing in KVM or z/VM environments, from your workstation/laptop, you will be able to run:&lt;br /&gt;
 $ ssh root@192.168.1.2 (change ip address to what you specified earlier)&lt;br /&gt;
&lt;br /&gt;
Remaining steps are similar to installing Alpine on other architectures (x86, arm, ppc, etc.), either on KVM (using virtio/SCSI disks) or on z/VM with FBA DASDs. Installing on ECKD DASDs requires an additional step, as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is the detailed walkthrough of installing Alpine on a single ECKD DASD using LVM and extend that LVM to the second ECKD DASD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After SSH-ing into the Alpine installer, run:&lt;br /&gt;
 # setup-alpine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Select keyboard layout [none]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter system hostname (short form, e.g. &#039;foo&#039;) [localhost]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter your hostname&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available interfaces are: eth0.&lt;br /&gt;
Enter &#039;?&#039; for help on bridges, bonding and vlans.&lt;br /&gt;
Which one do you want to initialize? (or &#039;?&#039; or &#039;done&#039;) [eth0]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:type &#039;eth0&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Ip address for eth0? (or &#039;dhcp&#039;, &#039;none&#039;, &#039;?&#039;) [192.168.1.2]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter ip address or &#039;dhcp&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Netmask? [255.255.255.0]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter netmask&lt;br /&gt;
&amp;lt;code&amp;gt;Gateway? (or &#039;none&#039;) [192.168.1.1]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter gateway&#039;s ip address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Do you want to do any manual network configuration? [no]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;no&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS domain name? (e.g &#039;bar.com&#039;) []&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter domain name or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS nameserver(s)? [8.8.8.8 ]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter DNS nameserver&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Changing password for root&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter root password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which timezone are you in? (&#039;?&#039; for list) [UTC]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter timezone or &#039;?&#039; for list of timezones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;HTTP/FTP proxy URL? (e.g. &#039;http://proxy:8080&#039;, or &#039;none&#039;) [none]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter proxy or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter mirror number (1-27) or URL to add (or r/f/e/done) [f]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter a number or &#039;r&#039; or &#039;f&#039; or &#039;e&#039; or &#039;done&#039; as described&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which SSH server? (&#039;openssh&#039;, &#039;dropbear&#039; or &#039;none&#039;) [openssh]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter SSH server or press Enter for openssh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;busybox&#039; or press Enter for chrony&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; (next step is the additional step for ECKD DASDs on z/VM)&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available ECKD DASD(s) are:&lt;br /&gt;
  0.0.04c0	(3390/0c 3990/e9 IBM)&lt;br /&gt;
  0.0.05d1	(3390/0c 3990/e9 IBM)&lt;br /&gt;
Which ECKD DASD(s) would you like to be formatted using dasdfmt? (enter &#039;?&#039; for help) [all]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;all&#039; or &#039;0.0.04c0 0.0.05d1&#039; &#039;&#039;&#039;(separated by a space)&#039;&#039;&#039; to format all/both DASDs&lt;br /&gt;
:enter &#039;0.0.04c0&#039; or &#039;0.0.05d1&#039; to format respective DASD&lt;br /&gt;
:enter &#039;?&#039; for help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;WARNING: Erase ECKD DASD 0.0.04c0? [y/N]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;y&#039; to format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available disks are:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
Which disk(s) would you like to use? (or &#039;?&#039; for help or &#039;none&#039;) [dasda]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;dasda&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039;, &#039;lvm&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;lvm&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected (with LVM):&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;sys&#039; to install Alpine on disk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WARNING: The following disk(s) will be erased:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
WARNING: Erase the above disk(s) and continue? [y/N]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;y&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;&lt;br /&gt;
:the installation is finished&lt;br /&gt;
&lt;br /&gt;
At this point, don&#039;t poweroff the installer right away. Go to [https://wiki.alpinelinux.org/wiki/S390x#Copying_SSH_keys_to_new_Alpine_system &amp;quot;Copying SSH keys to new Alpine system&amp;quot;] (below) to have SSH access to your new Alpine system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copying SSH keys to new Alpine system ==&lt;br /&gt;
&lt;br /&gt;
By default, Alpine disables root login with a password via SSH. SSH keys are used instead.&lt;br /&gt;
&lt;br /&gt;
After the installer&#039;s done running (&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;), there are 2 ways to copy your SSH key into the new Alpine system:&lt;br /&gt;
* Option 1: mount the installed disk and copy the SSH keys while still at the installer&#039;s terminal&lt;br /&gt;
* Option 2: poweroff the installer, start the new Alpine system and directly add the SSH keys&lt;br /&gt;
::: if you install on KVM, boot the new Alpine system on qemu, and copy the SSH keys&lt;br /&gt;
::: if you install on z/VM, use the 3270 client to ipl the new Alpine system and copy the SSH keys&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;lvm&#039; + &#039;sys&#039; installation (like in above example), do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/vg0/lv_root /mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;sys&#039; (without LVM) installation, do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/dasda3 /mnt&amp;lt;/code&amp;gt; (change dasda to dasdb or dasdc, etc. for whichever DASD you chose)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In &#039;sys&#039; installation, 1st partition is boot, 2nd partition is swap, 3rd partition is root }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you use KVM, start qemu with new Alpine system (removing &amp;lt;code&amp;gt;-kernel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-initrd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-append&amp;lt;/code&amp;gt; options)&lt;br /&gt;
&lt;br /&gt;
If you use z/VM, open the 3270 client, login with your z/VM username and password. You may need to run &amp;lt;code&amp;gt; ipl cms&amp;lt;/code&amp;gt;. Then run &amp;lt;code&amp;gt; ipl 04c0&amp;lt;/code&amp;gt; (or whichever DASD device you chose as root disk in earlier steps).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wait for new Alpine system go up, then login as root user while in the qemu console (on KVM) or 3270 client (on z/VM). Then run:&lt;br /&gt;
::&amp;lt;code&amp;gt; # mkdir /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # wget https://your-website.com/your-ssh-key.pub -O /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 700 /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Login to new Alpine system ==&lt;br /&gt;
On your workstation/laptop, use SSH client to login new Alpine system:&lt;br /&gt;
&amp;lt;code&amp;gt; $ ssh root@192.168.1.2&amp;lt;/code&amp;gt; (or whichever ip address you used)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extending LVM volume ==&lt;br /&gt;
After logging in to your new Alpine system, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add -q util-linux e2fsprogs-extra&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  1.6G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk&lt;br /&gt;
&lt;br /&gt;
# dasdfmt -b 4096 -d cdl -yp /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# fdasd -a /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# pvcreate /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# vgextend vg0 /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# lvextend -l +100%FREE /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# resize2fs /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk &lt;br /&gt;
└─dasdb1         94:5    0  2.3G  0 part &lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
If you want to disable swap partition, after finishing NTP client step, quit the installer by pressing &amp;lt;code&amp;gt;Ctrl + C&amp;lt;/code&amp;gt;. Then run following command to complete remaining steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# setup-disk -s 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you do &#039;sys&#039; installation, there will be no swap partition anymore and 1st partition will be boot, 2nd partition will be root}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Known Issues =&lt;br /&gt;
1. Installation on 2 or more DASDs (either ECKD and FBA) on z/VM is not supported in the installer script (&amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;) at the moment. If you want to install/extend on more than 1 DASD, see [https://wiki.alpinelinux.org/wiki/S390x#Extending_LVM_volume &amp;quot;Extending LVM volume&amp;quot;]. However, installation on 2 or more virtio (SCSI) disks on KVM are supported just like other architectures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= See more =&lt;br /&gt;
Running Alpine s390x containers on Docker: https://wiki.alpinelinux.org/wiki/S390x/Docker&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=S390x&amp;diff=15672</id>
		<title>S390x</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=S390x&amp;diff=15672"/>
		<updated>2019-01-18T08:33:19Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= The boot media =&lt;br /&gt;
&lt;br /&gt;
For KVM, both ISO image and netboot media (kernel and initramfs) are supported.&lt;br /&gt;
&lt;br /&gt;
For z/VM, netboot media is supported.&lt;br /&gt;
&lt;br /&gt;
For LPAR, not yet supported.&lt;br /&gt;
&lt;br /&gt;
Boot media are found at:&lt;br /&gt;
&lt;br /&gt;
* http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel parameters (and parmfile) ==&lt;br /&gt;
The Alpine s390x boot media requires following kernel parameters to work:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=dhcp&amp;lt;/code&amp;gt; : use DHCP for network configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip=client-ip:server-ip:gw-ip:netmask:hostname:device:autoconf:dns1:dns2&amp;lt;/code&amp;gt; : use static IP configuration, each field is separated by a colon &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;client-ip&amp;lt;/code&amp;gt; ip address of the guest VM where we are going to run the installer&lt;br /&gt;
* &amp;lt;code&amp;gt;server-ip&amp;lt;/code&amp;gt; not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;gw-ip&amp;lt;/code&amp;gt;     the gateway ip address&lt;br /&gt;
* &amp;lt;code&amp;gt;netmask&amp;lt;/code&amp;gt;   the netmask&lt;br /&gt;
* &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;    the network interface of the guest VM, default is &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt; if left blank&lt;br /&gt;
* &amp;lt;code&amp;gt;autoconf&amp;lt;/code&amp;gt;  not used, leave blank or fill with &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dns1&amp;lt;/code&amp;gt;      address of the DNS server&lt;br /&gt;
* &amp;lt;code&amp;gt;dns2&amp;lt;/code&amp;gt;      address of the 2nd DNS server&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; : the location of the Alpine repository from which packages are downloaded.&lt;br /&gt;
&lt;br /&gt;
:For stable release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/v3.8/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:For rolling release, use &amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/edge/main&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;modloop=&amp;lt;/code&amp;gt; : the remote location of the image containing kernel&#039;s modules, required for LVM and raid setup.&lt;br /&gt;
&lt;br /&gt;
:The remote location of the &amp;lt;code&amp;gt;modloop&amp;lt;/code&amp;gt; image is the same as the kernel and initramfs (see below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; : the remote location of your SSH public key which is used to allow SSH connection into the installer. It will be downloaded and copied into &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; in the installer.&lt;br /&gt;
&lt;br /&gt;
{{Note|Fetching public keys from HTTP, HTTPS and FTPS are supported. HTTP should only be used in local development network where you own the network.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|Alpine Linux security policies are against using passwords for root access via SSH as we consider using public-private key pairs is a much better approach.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;z/VM only&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt; : the addresses of the DASD devices, either ECKD or FBA DASDs. Each device is separated with a comma.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; : the network interface type and its subchannels. At the moment, only QETH layer 2 is supported, thus the name &amp;lt;code&amp;gt;qeth_l2&amp;lt;/code&amp;gt; is used (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Pre-installation =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
Create a virtual disk:&lt;br /&gt;
 $ qemu-img create alpine_disk.qcow2 5G&lt;br /&gt;
&lt;br /&gt;
==== Using iso image ====&lt;br /&gt;
Download latest iso image from : http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x&lt;br /&gt;
&lt;br /&gt;
Start qemu:&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no&#039; \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -boot d -cdrom alpine-standard-3.8.2-s390x.iso&lt;br /&gt;
&lt;br /&gt;
==== Using netboot media ====&lt;br /&gt;
Download the latest [http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/vmlinuz-vanilla kernel] and [http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/initramfs-vanilla initramfs].&lt;br /&gt;
&lt;br /&gt;
Start qemu: (modify &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
 $ qemu-system-s390x -M s390-ccw-virtio \&lt;br /&gt;
        -m 1024 -smp 2 -nographic -enable-kvm \&lt;br /&gt;
        -net nic -net tap,ifname=tap0,script=no&#039; \&lt;br /&gt;
        -hda alpine_disk.qcow2 \&lt;br /&gt;
        -kernel vmlinuz-vanilla \&lt;br /&gt;
        -initrd initramfs-vanilla \&lt;br /&gt;
        -append &amp;quot;ip=192.168.1.2::192.168.1.1:255.255.255.0:none:eth0:none:8.8.8.8 alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.8/main modloop=http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/modloop-vanilla ssh_key=https://your-website.com/your-ssh-key.pub&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you have direct access to the qemu console, &amp;lt;code&amp;gt;ssh_key&amp;lt;/code&amp;gt; might not be required.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== z/VM ==&lt;br /&gt;
To ease out the process of downloading the images, punch the readers, ipl, etc., [https://github.com/trothr/znetboot &#039;&#039;&#039;ZNETBOOT&#039;&#039;&#039;] is used.&lt;br /&gt;
&lt;br /&gt;
==== Create the parm file ====&lt;br /&gt;
On your workstation/laptop, create a file named &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt; in your home directory with contents below (modify &amp;lt;code&amp;gt;dasd=&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;s390x_net=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ip=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;alpine_repo=&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ssh_key=&amp;lt;/code&amp;gt; for your needs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ZNETBOOT_KERNEL=http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/vmlinuz-vanilla&lt;br /&gt;
ZNETBOOT_INITRD=http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/initramfs-vanilla&lt;br /&gt;
ZNETBOOT_PROGRESS=1M&lt;br /&gt;
&lt;br /&gt;
alpine_repo=http://dl-cdn.alpinelinux.org/alpine/v3.8/main&lt;br /&gt;
modloop=http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/s390x/netboot-3.8.2/modloop-vanilla&lt;br /&gt;
&lt;br /&gt;
dasd=0.0.04c0,0.0.05d1&lt;br /&gt;
s390x_net=qeth_l2,0.0.0560,0.0.0561,0.0.0562&lt;br /&gt;
ip=192.168.1.2::192.168.1.1:255.255.255.0:none:eth0:none:8.8.8.8&lt;br /&gt;
&lt;br /&gt;
ssh_key=https://your-website.com/your-ssh-key.pub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Upload to z/VM system via 3270 client ====&lt;br /&gt;
[[File:X3270-1.png|right|300px|thumb|Figure 1.]]&lt;br /&gt;
On your workstation/laptop, download 2 files [https://raw.githubusercontent.com/trothr/znetboot/master/znetboot.exec &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;], and [https://raw.githubusercontent.com/trothr/znetboot/master/curl.rexx &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt;] to your home directory.&lt;br /&gt;
&lt;br /&gt;
Open 3270 client and log in the z/VM system with your z/VM username and password.&lt;br /&gt;
&lt;br /&gt;
Upload 3 files &amp;lt;code&amp;gt;alpine.znetboot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; to the z/VM environment using the 3270 client (this tutorial uses x3270). On the top left corner, click &amp;quot;File&amp;quot;, then &amp;quot;File Transfer&amp;quot;. (Figure 1.)&lt;br /&gt;
&lt;br /&gt;
Do following steps : (Figure 2.) [[File:X3270-2.png|right|300px|thumb|Figure 2.]]&lt;br /&gt;
* On &amp;quot;Local File Name&amp;quot; box, enter &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; (the file in your laptop/workstation, at &#039;&#039;&#039;~/alpine.znetboot&#039;&#039;&#039;)&lt;br /&gt;
* On &amp;quot;Host File Name&amp;quot; box, enter &#039;&#039;&#039;alpine znetboot&#039;&#039;&#039; (the file will be in z/VM console)&lt;br /&gt;
&lt;br /&gt;
{{Note|Beware the difference between &#039;&#039;&#039;the dot &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;the space &amp;lt;code&amp;gt; &amp;lt;/code&amp;gt;&#039;&#039;&#039; characters in the file names.}}&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;&#039;&#039;Send to host&#039;&#039;&#039;&lt;br /&gt;
* Choose &#039;&#039;&#039;Host is VM/CMS&#039;&#039;&#039;&lt;br /&gt;
* Choose either &#039;&#039;&#039;Fixed&#039;&#039;&#039; or &#039;&#039;&#039;Variable&#039;&#039;&#039; for &#039;&#039;&#039;Record Format&#039;&#039;&#039;&lt;br /&gt;
:Enter a number for LRECL and BLKSIZE, respectively&lt;br /&gt;
{{Note|Any line in &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; that has more 80 chars (columns) will be splitted into more than 1 line when uploaded to z/VM (CMS) console via 3270. Count the number of characters/column of the longest line in your &#039;&#039;&#039;alpine.znetboot&#039;&#039;&#039; and fill it in LRECL. There is no restriction for BLKSIZE but 80 is preferred.}}&lt;br /&gt;
&lt;br /&gt;
* Click &#039;&#039;&#039;Transfer File&#039;&#039;&#039; box&lt;br /&gt;
&lt;br /&gt;
Repeat the same steps with &amp;lt;code&amp;gt;znetboot.exec&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;curl.rexx&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
==== (Optional) Check the configuration files ====&lt;br /&gt;
On 3270 client, enter following commands to check if the configuration files are correctly transferred:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit alpine znetboot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit znetboot exec&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;xedit curl rex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &amp;lt;code&amp;gt;filel&amp;lt;/code&amp;gt; and put &amp;lt;code&amp;gt;xedit&amp;lt;/code&amp;gt; on CMD column to edit respective file.&lt;br /&gt;
&lt;br /&gt;
==== Start ZNETBOOT ====&lt;br /&gt;
On 3270 client, type below command and wait till Figure 3.: [[File:X3270-3.png|right|300px|thumb|Figure 3.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;znetboot alpine&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
If you install on z/VM, steps in this part does not involve the interaction with the 3270 client anymore. Everything is done in the terminal with SSH client.&lt;br /&gt;
&lt;br /&gt;
If you install on KVM, you can either SSH into the installer (below) or directly use the console starting qemu.&lt;br /&gt;
&lt;br /&gt;
Either installing in KVM or z/VM environments, from your workstation/laptop, you will be able to run:&lt;br /&gt;
 $ ssh root@192.168.1.2 (change ip address to what you specified earlier)&lt;br /&gt;
&lt;br /&gt;
Remaining steps are similar to installing Alpine on other architectures (x86, arm, ppc, etc.), either on KVM (using virtio/SCSI disks) or on z/VM with FBA DASDs. Installing on ECKD DASDs requires an additional step, as described below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Below is the detailed walkthrough of installing Alpine on a single ECKD DASD using LVM and extend that LVM to the second ECKD DASD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After SSH-ing into the Alpine installer, run:&lt;br /&gt;
 # setup-alpine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Select keyboard layout [none]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter system hostname (short form, e.g. &#039;foo&#039;) [localhost]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter your hostname&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available interfaces are: eth0.&lt;br /&gt;
Enter &#039;?&#039; for help on bridges, bonding and vlans.&lt;br /&gt;
Which one do you want to initialize? (or &#039;?&#039; or &#039;done&#039;) [eth0]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:type &#039;eth0&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Ip address for eth0? (or &#039;dhcp&#039;, &#039;none&#039;, &#039;?&#039;) [192.168.1.2]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter ip address or &#039;dhcp&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Netmask? [255.255.255.0]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter netmask&lt;br /&gt;
&amp;lt;code&amp;gt;Gateway? (or &#039;none&#039;) [192.168.1.1]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter gateway&#039;s ip address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Do you want to do any manual network configuration? [no]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;no&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS domain name? (e.g &#039;bar.com&#039;) []&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter domain name or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DNS nameserver(s)? [8.8.8.8 ]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter DNS nameserver&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Changing password for root&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter root password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which timezone are you in? (&#039;?&#039; for list) [UTC]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter timezone or &#039;?&#039; for list of timezones&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;HTTP/FTP proxy URL? (e.g. &#039;http://proxy:8080&#039;, or &#039;none&#039;) [none]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter proxy or press Enter for none&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Enter mirror number (1-27) or URL to add (or r/f/e/done) [f]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter a number or &#039;r&#039; or &#039;f&#039; or &#039;e&#039; or &#039;done&#039; as described&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which SSH server? (&#039;openssh&#039;, &#039;dropbear&#039; or &#039;none&#039;) [openssh]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter SSH server or press Enter for openssh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Which NTP client to run? (&#039;busybox&#039;, &#039;openntpd&#039;, &#039;chrony&#039; or &#039;none&#039;) [chrony]&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;busybox&#039; or press Enter for chrony&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; (next step is the additional step for ECKD DASDs on z/VM)&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available ECKD DASD(s) are:&lt;br /&gt;
  0.0.04c0	(3390/0c 3990/e9 IBM)&lt;br /&gt;
  0.0.05d1	(3390/0c 3990/e9 IBM)&lt;br /&gt;
Which ECKD DASD(s) would you like to be formatted using dasdfmt? (enter &#039;?&#039; for help) [all]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;all&#039; or &#039;0.0.04c0 0.0.05d1&#039; &#039;&#039;&#039;(separated by a space)&#039;&#039;&#039; to format all/both DASDs&lt;br /&gt;
:enter &#039;0.0.04c0&#039; or &#039;0.0.05d1&#039; to format respective DASD&lt;br /&gt;
:enter &#039;?&#039; for help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;WARNING: Erase ECKD DASD 0.0.04c0? [y/N]:&amp;lt;/code&amp;gt;&lt;br /&gt;
:enter &#039;y&#039; to format&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available disks are:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
Which disk(s) would you like to use? (or &#039;?&#039; for help or &#039;none&#039;) [dasda]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;dasda&#039; or press Enter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039;, &#039;lvm&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;lvm&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following disk is selected (with LVM):&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039; or &#039;?&#039; for help) [?]&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;sys&#039; to install Alpine on disk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WARNING: The following disk(s) will be erased:&lt;br /&gt;
  dasda	(2.5 GB IBM 0.0.04c0)&lt;br /&gt;
WARNING: Erase the above disk(s) and continue? [y/N]:&amp;lt;/pre&amp;gt;&lt;br /&gt;
:enter &#039;y&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;&lt;br /&gt;
:the installation is finished&lt;br /&gt;
&lt;br /&gt;
At this point, don&#039;t poweroff the installer right away. Go to [https://wiki.alpinelinux.org/wiki/S390x#Copying_SSH_keys_to_new_Alpine_system &amp;quot;Copying SSH keys to new Alpine system&amp;quot;] (below) to have SSH access to your new Alpine system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copying SSH keys to new Alpine system ==&lt;br /&gt;
&lt;br /&gt;
By default, Alpine disables root login with a password via SSH. SSH keys are used instead.&lt;br /&gt;
&lt;br /&gt;
After the installer&#039;s done running (&amp;lt;code&amp;gt;Installation is complete. Please reboot.&amp;lt;/code&amp;gt;), there are 2 ways to copy your SSH key into the new Alpine system:&lt;br /&gt;
* Option 1: mount the installed disk and copy the SSH keys while still at the installer&#039;s terminal&lt;br /&gt;
* Option 2: poweroff the installer, start the new Alpine system and directly add the SSH keys&lt;br /&gt;
::: if you install on KVM, boot the new Alpine system on qemu, and copy the SSH keys&lt;br /&gt;
::: if you install on z/VM, use the 3270 client to ipl the new Alpine system and copy the SSH keys&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;lvm&#039; + &#039;sys&#039; installation (like in above example), do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/vg0/lv_root /mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use &#039;sys&#039; (without LVM) installation, do:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # mount /dev/dasda3 /mnt&amp;lt;/code&amp;gt; (change dasda to dasdb or dasdc, etc. for whichever DASD you chose)&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; # cp -ar /root/.ssh /mnt/root&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|In &#039;sys&#039; installation, 1st partition is boot, 2nd partition is swap, 3rd partition is root }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Option 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt; # poweroff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you use KVM, start qemu with new Alpine system (removing &amp;lt;code&amp;gt;-kernel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-initrd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-append&amp;lt;/code&amp;gt; options)&lt;br /&gt;
&lt;br /&gt;
If you use z/VM, open the 3270 client, login with your z/VM username and password. You may need to run &amp;lt;code&amp;gt; ipl cms&amp;lt;/code&amp;gt;. Then run &amp;lt;code&amp;gt; ipl 04c0&amp;lt;/code&amp;gt; (or whichever DASD device you chose as root disk in earlier steps).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wait for new Alpine system go up, then login as root user while in the qemu console (on KVM) or 3270 client (on z/VM). Then run:&lt;br /&gt;
::&amp;lt;code&amp;gt; # mkdir /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # wget https://your-website.com/your-ssh-key.pub -O /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 700 /root/.ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
::&amp;lt;code&amp;gt; # chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to [https://wiki.alpinelinux.org/wiki/S390x#Login_to_new_Alpine_system &amp;quot;Login to new Alpine system&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Login to new Alpine system ==&lt;br /&gt;
On your workstation/laptop, use SSH client to login new Alpine system:&lt;br /&gt;
&amp;lt;code&amp;gt; $ ssh root@192.168.1.2&amp;lt;/code&amp;gt; (or whichever ip address you used)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extending LVM volume ==&lt;br /&gt;
After logging in to your new Alpine system, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apk add -q util-linux e2fsprogs-extra&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  1.6G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk&lt;br /&gt;
&lt;br /&gt;
# dasdfmt -b 4096 -d cdl -yp /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# fdasd -a /dev/dasdb&lt;br /&gt;
&lt;br /&gt;
# pvcreate /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# vgextend vg0 /dev/dasdb1&lt;br /&gt;
&lt;br /&gt;
# lvextend -l +100%FREE /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# resize2fs /dev/vg0/lv_root&lt;br /&gt;
&lt;br /&gt;
# lsblk&lt;br /&gt;
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
dasda            94:0    0  2.3G  0 disk &lt;br /&gt;
├─dasda1         94:1    0  100M  0 part /boot&lt;br /&gt;
└─dasda2         94:2    0  2.2G  0 part &lt;br /&gt;
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]&lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
dasdb            94:4    0  2.3G  0 disk &lt;br /&gt;
└─dasdb1         94:5    0  2.3G  0 part &lt;br /&gt;
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Tips =&lt;br /&gt;
If you want to disable swap partition, after finishing NTP client step, quit the installer by pressing &amp;lt;code&amp;gt;Ctrl + C&amp;lt;/code&amp;gt;. Then run following command to complete remaining steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# setup-disk -s 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|If you do &#039;sys&#039; installation, there will be no swap partition anymore and 1st partition will be boot, 2nd partition will be root}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Known Issues =&lt;br /&gt;
1. Installation on 2 or more DASDs (either ECKD and FBA) on z/VM is not supported in the installer script (&amp;lt;code&amp;gt;setup-alpine&amp;lt;/code&amp;gt;) at the moment. If you want to install/extend on more than 1 DASD, see [https://wiki.alpinelinux.org/wiki/S390x#Extending_LVM_volume &amp;quot;Extending LVM volume&amp;quot;]. However, installation on 2 or more virtio (SCSI) disks on KVM are supported just like other architectures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= See more =&lt;br /&gt;
Running Alpine s390x containers on Docker: https://wiki.alpinelinux.org/wiki/S390x/Docker&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Tutorials_and_Howtos&amp;diff=15671</id>
		<title>Tutorials and Howtos</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Tutorials_and_Howtos&amp;diff=15671"/>
		<updated>2019-01-18T08:30:38Z</updated>

		<summary type="html">&lt;p&gt;Tmhoang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:package_edutainment.svg|right|link=]]&lt;br /&gt;
{{TOC left}}&lt;br /&gt;
&#039;&#039;&#039;Welcome to Tutorials and Howtos, a place of basic and advanced configuration tasks for your Alpine Linux.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The tutorials are hands-on and the reader is expected to try and achieve the goals described in each step, possibly with the help of a good example. The output in one step is the starting point for the following step.&lt;br /&gt;
&lt;br /&gt;
Howtos are smaller articles explaining how to perform a particular task with Alpine Linux.&lt;br /&gt;
&lt;br /&gt;
We encourage people to send in both complete articles as well as requesting topics to be covered. If you think you have the skills and knowledge to write an Alpine Linux related article please do so on this Wiki. If you want to request a topic, please add your request in this page&#039;s [[Talk:Tutorials_and_Howtos|Discussion]].&lt;br /&gt;
&lt;br /&gt;
{{Clear}}&lt;br /&gt;
== Storage ==&lt;br /&gt;
&lt;br /&gt;
* [[Alpine local backup|Alpine local backup (lbu)]] &#039;&#039;(Permanently store your modifications in case your box needs reboot)&#039;&#039; &amp;lt;!-- Installation and Storage --&amp;gt;&lt;br /&gt;
** [[Back Up a Flash Memory Installation]] &amp;lt;!-- Installation and Storage --&amp;gt;&lt;br /&gt;
** [[Manually editing a existing apkovl]]&lt;br /&gt;
&lt;br /&gt;
* [[Setting up disks manually]] &amp;lt;!-- Installation and Storage --&amp;gt;&lt;br /&gt;
* [[Setting up a software RAID array]]&lt;br /&gt;
&amp;lt;!-- ** [[Setting up a /var partition on software IDE raid1]]  Obsolete, Installation and Storage --&amp;gt; &lt;br /&gt;
* [[Raid Administration]]&lt;br /&gt;
* [[Setting up encrypted volumes with LUKS]]&lt;br /&gt;
* [[Setting up LVM on LUKS]]&lt;br /&gt;
* [[Setting up Logical Volumes with LVM]]&lt;br /&gt;
** [[Setting up LVM on GPT-labeled disks]]&lt;br /&gt;
** [[Installing on GPT LVM]]&lt;br /&gt;
* [[Filesystems|Formatting HD/Floppy/Other]] &amp;lt;!-- just a stub --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Setting up iSCSI]]&lt;br /&gt;
** [[iSCSI Raid and Clustered File Systems]]&lt;br /&gt;
* [[Setting up NBD]]&lt;br /&gt;
* [[Setting up ZFS on LUKS]]&lt;br /&gt;
* [[High performance SCST iSCSI Target on Linux software Raid]] &#039;&#039;(deprecated)&#039;&#039; &amp;lt;!-- solution --&amp;gt;&lt;br /&gt;
* [[Linux iSCSI Target (TCM)]]&lt;br /&gt;
* [[Disk Replication with DRBD]] &amp;lt;!-- draft --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Burning ISOs]] &amp;lt;!-- just some links now --&amp;gt;&lt;br /&gt;
* [[Partitioning and Bootmanagers]]&lt;br /&gt;
* [[Migrating data]]&lt;br /&gt;
* [[Create a bootable SDHC from a Mac]]&lt;br /&gt;
* [[Alpine on ARM]]&lt;br /&gt;
&lt;br /&gt;
== Networking ==&lt;br /&gt;
&lt;br /&gt;
* [[Configure Networking]]&lt;br /&gt;
* [[Connecting to a wireless access point]]&lt;br /&gt;
* [[Bonding]]&lt;br /&gt;
* [[Vlan]]&lt;br /&gt;
* [[Bridge]]&lt;br /&gt;
* [[OpenVSwitch]]&lt;br /&gt;
* [[How to configure static routes]]&lt;br /&gt;
&lt;br /&gt;
* [[Alpine Wall]] - [[How-To Alpine Wall]] - [[Alpine Wall User&#039;s Guide]] &#039;&#039;(a new firewall management framework)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[PXE boot]]&lt;br /&gt;
&lt;br /&gt;
* [[Using serial modem]]&lt;br /&gt;
* [[Using HSDPA modem]]&lt;br /&gt;
* [[Setting up Satellite Internet Connection]]&lt;br /&gt;
* [[Using Alpine on Windows domain with IPSEC isolation]]&lt;br /&gt;
&lt;br /&gt;
* [[Setting up a ssh-server]] &#039;&#039;(Using ssh is a good way to administer your box remotely)&#039;&#039; &amp;lt;!-- Server and Networking --&amp;gt;&lt;br /&gt;
* [[How to setup a wireless access point]] &#039;&#039;(Setting up Secure Wireless AP w/ WPA encryption with bridge to wired network)&#039;&#039;&lt;br /&gt;
* [[Setting up a OpenVPN server with Alpine]] &#039;&#039;(Allowing single users or devices to remotely connect to your network)&#039;&#039;&lt;br /&gt;
&amp;lt;!-- [[Using Racoon for Remote Sites]] is a different VPN tunnelling method, but that article is just a stub --&amp;gt;&lt;br /&gt;
* [[Experiences with OpenVPN-client on ALIX.2D3]]  &amp;lt;!-- solution --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Generating SSL certs with ACF]] &amp;lt;!-- Generating SSL certs with ACF 1.9 --&amp;gt;&lt;br /&gt;
* [[Setting up unbound DNS server]]&lt;br /&gt;
* [[Setting up nsd DNS server]]&lt;br /&gt;
* [[TinyDNS Format]]&lt;br /&gt;
* [[Fault Tolerant Routing with Alpine Linux]] &amp;lt;!-- solution --&amp;gt;&lt;br /&gt;
* [[Freeradius Active Directory Integration]]&lt;br /&gt;
* [[Multi_ISP]] &#039;&#039;(Dual-ISP setup with load-balancing and automatic failover)&#039;&#039;&lt;br /&gt;
* [[OwnCloud]] &#039;&#039;(Installing OwnCloud)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Seafile: setting up your own private cloud]]&lt;br /&gt;
&lt;br /&gt;
== Post-Install ==&lt;br /&gt;
&amp;lt;!-- If you edit this, please coordinate with Installation#Post-Install and Developer_Documentation#Package_management.  Note that these three sections are not exact duplicates. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Alpine Linux package management|Package Management (apk)]] &#039;&#039;(How to add/remove packages on your Alpine)&#039;&#039;&lt;br /&gt;
   &amp;lt;!-- [[Alpine Linux package management#Local_Cache|How to enable APK caching]] --&amp;gt;&lt;br /&gt;
** [[Comparison with other distros]]&lt;br /&gt;
* [[Alpine local backup|Alpine local backup (lbu)]] &#039;&#039;(Permanently store your modifications in case your box needs reboot)&#039;&#039;&lt;br /&gt;
** [[Back Up a Flash Memory Installation]] &amp;lt;!-- new --&amp;gt;&lt;br /&gt;
** [[Manually editing a existing apkovl]]&lt;br /&gt;
* [[Alpine Linux Init System|Init System (OpenRC)]] &#039;&#039;(Configure a service to automatically boot at next reboot)&#039;&#039;&lt;br /&gt;
** [[Multiple Instances of Services]]&lt;br /&gt;
   &amp;lt;!-- [[Writing Init Scripts]] --&amp;gt;&lt;br /&gt;
* [[Alpine setup scripts#setup-xorg-base|Setting up Xorg]]&lt;br /&gt;
* [[Upgrading Alpine]]&lt;br /&gt;
&amp;lt;!-- Obsolete&lt;br /&gt;
 [[Upgrading Alpine - v1.9.x]]&lt;br /&gt;
 [[Upgrading Alpine - CD v1.8.x]]&lt;br /&gt;
 [[Upgrading Alpine - HD v1.8.x]]&lt;br /&gt;
 [[Upgrade to repository main|Upgrading to signed repositories]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Setting up a ssh-server]] &#039;&#039;(Using ssh is a good way to administer your box remotely)&#039;&#039;&lt;br /&gt;
* [[setup-acf]] &#039;&#039;(Configures ACF (webconfiguration) so you can manage your box through https)&#039;&#039;&lt;br /&gt;
* [[Changing passwords for ACF|Changing passwords]]&lt;br /&gt;
* [[Ansible]] &#039;&#039;(Configuration management)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Enable Serial Console on Boot]]&lt;br /&gt;
&amp;lt;!-- Obsolete?&lt;br /&gt;
* [[Error message on boot: Address space collision: host bridge window conflicts with Adaptor ROM]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* [[How to get regular stuff working]] &#039;&#039;some notes on need-to-know topics&#039;&#039;&lt;br /&gt;
* [[Installing Oracle Java]]&lt;br /&gt;
* [[Rsnapshot|Setting up periodic backups with &amp;lt;samp&amp;gt;rsnapshot&amp;lt;/samp&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Virtualization==&lt;br /&gt;
&lt;br /&gt;
* [[Xen Dom0]] &#039;&#039;(Setting up Alpine as a dom0 for Xen hypervisor)&#039;&#039;&lt;br /&gt;
* [[Xen Dom0 on USB or SD]]&lt;br /&gt;
* [[Create Alpine Linux PV DomU]]&lt;br /&gt;
* [[Xen PCI Passthrough]]&lt;br /&gt;
* [[Xen LiveCD]]&lt;br /&gt;
* [[qemu]]&lt;br /&gt;
* [[KVM]] &#039;&#039;(Setting up Alpine as a KVM hypervisor)&#039;&#039;&lt;br /&gt;
* [[LXC]] &#039;&#039;(Setting up a Linux container in Alpine Linux)&#039;&#039;&lt;br /&gt;
* [[Docker]]&lt;br /&gt;
* [[Install_Alpine_on_VirtualBox]]&lt;br /&gt;
&lt;br /&gt;
== Desktop Environment ==&lt;br /&gt;
&lt;br /&gt;
* [[Awesome(wm) Setup]]&lt;br /&gt;
* [[EyeOS]] &#039;&#039;(Cloud Computing Desktop)&#039;&#039;&lt;br /&gt;
* [[Gnome Setup]]&lt;br /&gt;
* [[MATE|MATE Setup]]&lt;br /&gt;
* [[Oneye]] &#039;&#039;(Cloud Computing Desktop - Dropbox Alternative)&#039;&#039;&lt;br /&gt;
* [[Owncloud]] &#039;&#039;(Cloud Computing Desktop - Dropbox Alternative)&#039;&#039;&lt;br /&gt;
** (to be merged with [[OwnCloud]] &#039;&#039;(Your personal Cloud for storing and sharing your data on-line)&#039;&#039;)&lt;br /&gt;
* [[Remote Desktop Server]]&lt;br /&gt;
* [[Suspend on LID close]]&lt;br /&gt;
* [[Sway]]&lt;br /&gt;
* [[XFCE Setup]] and [[Xfce Desktop|Desktop Ideas]]&lt;br /&gt;
* [[Installing Adobe flash player for Firefox]]&lt;br /&gt;
* [[Sound Setup]]&lt;br /&gt;
* [[Printer Setup]]&lt;br /&gt;
* [[Default applications]]&lt;br /&gt;
&lt;br /&gt;
== Raspberry Pi ==&lt;br /&gt;
&lt;br /&gt;
* [[Raspberry Pi|Raspberry Pi (Installation)]]&lt;br /&gt;
* [[Classic install or sys mode on Raspberry Pi]]&lt;br /&gt;
* [[RPI Video Receiver]] &#039;&#039;(network video decoder using Rasperry Pi and omxplayer)&#039;&#039;&lt;br /&gt;
* [[Linux Router with VPN on a Raspberry Pi]]&lt;br /&gt;
* [[Linux Router with VPN on a Raspberry Pi (IPv6)]]&lt;br /&gt;
* [[Raspberry Pi 3 - Configuring it as wireless access point -AP Mode]]&lt;br /&gt;
* [[Raspberry Pi 3 - Setting Up Bluetooth]]&lt;br /&gt;
&lt;br /&gt;
== PowerPC ==&lt;br /&gt;
&lt;br /&gt;
* [[Ppc64le|Powepc64le (Installation)]]&lt;br /&gt;
&lt;br /&gt;
== IBM Z (IBM z Systems) ==&lt;br /&gt;
&lt;br /&gt;
* [[s390x|s390x (Installation)]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
=== Telephony ===&lt;br /&gt;
* [[Setting up Zaptel/Asterisk on Alpine]]&lt;br /&gt;
** [[Setting up Streaming an Asterisk Channel]]&lt;br /&gt;
* [[Freepbx on Alpine Linux]]&lt;br /&gt;
* [[FreePBX_V3]] &#039;&#039;(FreeSWITCH, Asterisk GUI web acces tool)&#039;&#039;&lt;br /&gt;
* [[2600hz]] &#039;&#039;(FreeSWITCH, Asterisk GUI web access tool)&#039;&#039;&lt;br /&gt;
* [[Kamailio]] &#039;&#039;(SIP Server, formerly OpenSER)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Mail ===&lt;br /&gt;
* [[Hosting services on Alpine]] &#039;&#039;(Hosting mail, webservices and other services)&#039;&#039;&lt;br /&gt;
** [[Hosting Web/Email services on Alpine]]&lt;br /&gt;
* [[ISP Mail Server HowTo]] &amp;lt;!-- solution, Mail --&amp;gt;&lt;br /&gt;
** [[ISP Mail Server Upgrade 2.x]]&lt;br /&gt;
** [[ISP Mail Server 2.x HowTo]] &#039;&#039;(Beta, please test)&#039;&#039;&lt;br /&gt;
** [[ISP Mail Server 3.x HowTo]]&lt;br /&gt;
* [[Roundcube]] &#039;&#039;(Webmail system)&#039;&#039;&lt;br /&gt;
* [[Setting up postfix with virtual domains]]&lt;br /&gt;
* [[Protecting your email server with Alpine]]&lt;br /&gt;
* [[Setting up clamsmtp]]&lt;br /&gt;
* [[Setting up dovecot with imap and ssl]]&lt;br /&gt;
* [[relay email to gmail (msmtp, mailx, sendmail]]&lt;br /&gt;
&lt;br /&gt;
=== HTTP ===&lt;br /&gt;
* [[Lighttpd]]&lt;br /&gt;
** [[Lighttpd Https access]]&lt;br /&gt;
** [[Setting Up Lighttpd with PHP]]&lt;br /&gt;
** [[Setting Up Lighttpd With FastCGI]]&lt;br /&gt;
* [[Cherokee]]&lt;br /&gt;
* [[Nginx]]&lt;br /&gt;
** [[Nginx_with_PHP#Nginx_with_PHP|Nginx with PHP]]&lt;br /&gt;
** [[Nginx as reverse proxy with acme (letsencrypt)]]&lt;br /&gt;
* [[Apache]]&lt;br /&gt;
** [[Apache with php-fpm]]&lt;br /&gt;
** [[Setting Up Apache with PHP]]&lt;br /&gt;
** [[Apache authentication: NTLM Single Signon]]&lt;br /&gt;
&lt;br /&gt;
* [[High Availability High Performance Web Cache]] &#039;&#039;(uCarp + HAProxy for High Availability Services such as Squid web proxy)&#039;&#039; &amp;lt;!-- solution, Server --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Setting up Transparent Squid Proxy]] &amp;lt;!-- draft --&amp;gt;&lt;br /&gt;
** [[SqStat]] &#039;&#039;(Script to look at active squid users connections)&#039;&#039;&lt;br /&gt;
** [[Obtaining user information via SNMP]] &#039;&#039;(Using squark-auth-snmp as a Squid authentication helper)&#039;&#039; &amp;lt;!-- Networking and Server, &amp;lt;== Using squark-auth-snmp --&amp;gt;&lt;br /&gt;
* [[Setting up Explicit Squid Proxy]]&lt;br /&gt;
&lt;br /&gt;
* [[Drupal]] &#039;&#039;(Content Management System (CMS) written in PHP)&#039;&#039;&lt;br /&gt;
* [[WordPress]] &#039;&#039;(Web software to create website or blog)&#039;&#039;&lt;br /&gt;
* [[MediaWiki]] &#039;&#039;(Free web-based wiki software application)&#039;&#039;&lt;br /&gt;
* [[DokuWiki]]&lt;br /&gt;
* [[Darkhttpd]]&lt;br /&gt;
* [[Tomcat]]&lt;br /&gt;
&lt;br /&gt;
=== Other Servers ===&lt;br /&gt;
* [[Setting up a ssh-server]] &#039;&#039;(Using ssh is a good way to administer your box remotely)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Setting up a nfs-server]]&lt;br /&gt;
* [[Setting up a samba-server]] &#039;&#039;(standard file sharing)&#039;&#039;&lt;br /&gt;
* [[Setting up a samba-ad-dc]] &#039;&#039;(Active Directory compatible domain controller)&#039;&#039;&lt;br /&gt;
* [[Phpizabi]] &#039;&#039;(Social Networking Platform)&#039;&#039;&lt;br /&gt;
* [[Statusnet]] &#039;&#039;(Microblogging Platform)&#039;&#039;&lt;br /&gt;
* [[Pastebin]] &#039;&#039;(Pastebin software application)&#039;&#039;&lt;br /&gt;
* [[Setting up Transmission (bittorrent) with Clutch WebUI]]&lt;br /&gt;
&lt;br /&gt;
* [[Patchwork]] &#039;&#039;(Patch review management system)&#039;&#039;&lt;br /&gt;
* [[Redmine]] &#039;&#039;(Project management system)&#039;&#039;&lt;br /&gt;
* [[Request-Tracker]] &#039;&#039;(Ticket system)&#039;&#039;&lt;br /&gt;
* [[OsTicket]] &#039;&#039;(Ticket system)&#039;&#039;&lt;br /&gt;
* [[Setting up trac wiki|Trac]] &#039;&#039;(Enhanced wiki and issue tracking system for software development projects)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Cgit]]&lt;br /&gt;
** [[Setting up a git repository server with gitolite and cgit]] &amp;lt;!-- doesn&#039;t exist yet --&amp;gt;&lt;br /&gt;
* [[Roundcube]] &#039;&#039;(Webmail system)&#039;&#039;&lt;br /&gt;
* [[Glpi]] &#039;&#039;(Manage inventory of technical resources)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[How to setup a Alpine Linux mirror]]&lt;br /&gt;
* [[Cups]]&lt;br /&gt;
* [[NgIRCd]] &#039;&#039;(Server for Internet Relay Chat/IRC)&#039;&#039;&lt;br /&gt;
* [[How To Setup Your Own IRC Network]] &#039;&#039;(Using {{Pkg|charybdis}} and {{Pkg|atheme-iris}})&#039;&#039;&lt;br /&gt;
* [[OpenVCP]] &#039;&#039;(VServer Control Panel)&#039;&#039;&lt;br /&gt;
* [[Mahara]] &#039;&#039;(E-portfolio and social networking system)&#039;&#039;&lt;br /&gt;
* [[Chrony and GPSD | Using chrony, gpsd, and a garmin LVC 18 as a Stratum 1 NTP source ]]&lt;br /&gt;
* [[Sending SMS using gnokii]]&lt;br /&gt;
* [[IPTV How To|Internet Protocol television (IPTV)]]&lt;br /&gt;
* [[UniFi_Controller]]&lt;br /&gt;
&lt;br /&gt;
=== Monitoring ===&lt;br /&gt;
* Setting up [[collectd]]&lt;br /&gt;
* [[Traffic monitoring]] &amp;lt;!-- Networking and Monitoring --&amp;gt;&lt;br /&gt;
* [[Setting up traffic monitoring using rrdtool (and snmp)]] &amp;lt;!-- Monitoring --&amp;gt;&lt;br /&gt;
* [[Setting up monitoring using rrdtool (and rrdcollect)]]&lt;br /&gt;
* [[Setting up Cacti|Cacti]] &#039;&#039;(Front-end for rrdtool networking monitor)&#039;&#039;&lt;br /&gt;
* [[LTTng]] &#039;&#039;(Kernel and userspace tracing)&#039;&#039;&lt;br /&gt;
* [[Setting up Zabbix|Zabbix]] &#039;&#039;(Monitor and track the status of network services and hardware)&#039;&#039;&lt;br /&gt;
* [[Setting up A Network Monitoring and Inventory System]] &#039;&#039;(Nagios + OpenAudit and related components)&#039;&#039; &amp;lt;!-- draft, solution, Networking and Monitoring and Server --&amp;gt;&lt;br /&gt;
** [[Setting up NRPE daemon]] &#039;&#039;(Performs remote Nagios checks)&#039;&#039; &amp;lt;!-- Networking and Monitoring --&amp;gt;&lt;br /&gt;
* [[Setting up Smokeping|Smokeping]] &#039;&#039;(Network latency monitoring)&#039;&#039; &amp;lt;!-- Networking and Monitoring --&amp;gt;&lt;br /&gt;
** [[Setting up MRTG and Smokeping to Monitor Bandwidth Usage and Network Latency]]&lt;br /&gt;
* [[Setting Up Fprobe And Ntop|Ntop]] &#039;&#039;(NetFlow collection and analysis using a remote fprobe instance)&#039;&#039; &amp;lt;!-- Networking and Monitoring --&amp;gt;&lt;br /&gt;
* [[Cvechecker]] &#039;&#039;(Compare installed packages for Common Vulnerabilities Exposure)&#039;&#039; &amp;lt;!-- Monitoring and Security --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[IP Accounting]] &amp;lt;!-- Networking and Monitoring --&amp;gt;&lt;br /&gt;
* [[Obtaining user information via SNMP]] &#039;&#039;(Using squark-auth-snmp as a Squid authentication helper)&#039;&#039; &amp;lt;!-- Networking and Server, &amp;lt;== Using squark-auth-snmp --&amp;gt;&lt;br /&gt;
* [[SqStat]] &#039;&#039;(Script to look at active squid users connections)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Piwik]] &#039;&#039;(A real time web analytics software program)&#039;&#039;&lt;br /&gt;
* [[Awstats]] &#039;&#039;(Free log file analyzer)&#039;&#039;&lt;br /&gt;
* [[Intrusion Detection using Snort]]&lt;br /&gt;
** [[Intrusion Detection using Snort, Sguil, Barnyard and more]]&lt;br /&gt;
* [[Dglog]] &#039;&#039;(Log analyzer for the web content filter DansGuardian)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[Webmin]] &#039;&#039;(A web-based interface for Linux system)&#039;&#039;&lt;br /&gt;
* [[PhpPgAdmin]] &#039;&#039;(Web-based administration tool for PostgreSQL)&#039;&#039;&lt;br /&gt;
* [[PhpMyAdmin]] &#039;&#039;(Web-based administration tool for MYSQL)&#039;&#039;&lt;br /&gt;
* [[PhpSysInfo]] &#039;&#039;(A simple application that displays information about the host it&#039;s running on)&#039;&#039;&lt;br /&gt;
* [[Linfo]]&lt;br /&gt;
&lt;br /&gt;
* [[Setting up lm_sensors]]&lt;br /&gt;
&lt;br /&gt;
* [[ZoneMinder video camera security and surveillance]]&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Shell]]&lt;br /&gt;
* [[:Category:Programming]]&lt;br /&gt;
* [[Running glibc programs]]&lt;br /&gt;
* [[:Category:Drivers]]&lt;br /&gt;
* [[:Category:Multimedia]]&lt;br /&gt;
* [[Kernel Modesetting]]&lt;br /&gt;
* [[CPU frequency scaling]]&lt;br /&gt;
&lt;br /&gt;
== Complete Solutions ==&lt;br /&gt;
* [[DIY Fully working Alpine Linux for Allwinner and Other ARM SOCs]]&lt;br /&gt;
* [[Replacing non-Alpine Linux with Alpine remotely]]&lt;br /&gt;
* [[High performance SCST iSCSI Target on Linux software Raid]]&lt;br /&gt;
* [[Fault Tolerant Routing with Alpine Linux]]&lt;br /&gt;
* [[Experiences with OpenVPN-client on ALIX.2D3]]&lt;br /&gt;
* [[Building a cloud with Alpine Linux]]&lt;br /&gt;
&lt;br /&gt;
* [[ISP Mail Server HowTo]] &#039;&#039;(Postfix+PostfixAdmin+DoveCot+Roundcube+ClamAV+Spamd - A full-serivce ISP mail server)&#039;&#039;&lt;br /&gt;
** [[ISP Mail Server Upgrade 2.x]]&lt;br /&gt;
** [[ISP Mail Server 2.x HowTo]] &#039;&#039;(Beta, please test)&#039;&#039;&lt;br /&gt;
* [[High Availability High Performance Web Cache]] &#039;&#039;(uCarp + HAProxy for High Availability Services such as Squid web proxy)&#039;&#039;&lt;br /&gt;
* [[Setting up A Network Monitoring and Inventory System]] &#039;&#039;(Nagios + OpenAudit and related components)&#039;&#039; &amp;lt;!-- draft --&amp;gt;&lt;br /&gt;
* [[Streaming Security Camera Video with VLC]]&lt;br /&gt;
* [[Dynamic Multipoint VPN (DMVPN)]] combined with [[Small_Office_Services]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
This does not attempt to be complete. Is it useful to have these listed here? I find them more accessible if grouped with their topics; also, an up-to-date list of all Draft or Obsolete pages can be found at [[Project:Wiki maintenance]].&lt;br /&gt;
&lt;br /&gt;
== Drafts ==&lt;br /&gt;
Currently unfinished/works-in-progress.&lt;br /&gt;
* [[Using Racoon for Remote Sites]]&lt;br /&gt;
* [[Setting up Transparent Squid Proxy]] &#039;&#039;(Covers Squid proxy and URL Filtering system)&#039;&#039;&lt;br /&gt;
** [[Obtaining user information via SNMP]] &#039;&#039;(Using the Squark Squid authentication helper)&#039;&#039; [!-- no longer a draft --]&lt;br /&gt;
* [[Setting up Streaming an Asterisk Channel]]&lt;br /&gt;
* [[Setting up A Network Monitoring and Inventory System]] &#039;&#039;(Nagios + OpenAudit and related components)&#039;&#039;&lt;br /&gt;
* [[Intrusion Detection using Snort]] &#039;&#039;(Installing and configuring Snort and related applications on Alpine 2.0.x)&#039;&#039;&lt;br /&gt;
* [[IP Accounting]] &#039;&#039;(Installing and configuring pmacct for IP Accounting, Netflow/sFlow collector)&#039;&#039;&lt;br /&gt;
* [[Disk Replication with DRBD]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tmhoang</name></author>
	</entry>
</feed>