S390x/安装

来自 Alpine Linux

1. 已知问题

1. 目前,在 z/VM 和 Hercules (Hyperion) 模拟器上,安装在 2 个或更多 DASD(ECKD 和 FBA)上的功能在安装脚本 (setup-alpine) 中不受支持。 如果您想在超过 1 个 DASD 上安装/扩展。 但是,就像其他架构一样,支持在 KVM 上安装在 2 个或更多 virtio (SCSI) 磁盘上。

2. 启动介质

对于 KVM,ISO 镜像和网络启动介质(内核和 initramfs)均受支持。

对于 z/VM 和 Hercules (Hyperion) 模拟器,支持网络启动介质。

对于 LPAR,支持网络启动介质。

启动介质位于


内核参数(和 parmfile)

Alpine s390x 启动介质需要以下内核参数才能工作:(详情请见 : https://linuxkernel.org.cn/doc/Documentation/filesystems/nfs/nfsroot.txt

ip=dhcp : 使用 DHCP 进行网络配置。

ip=client-ip:server-ip:gw-ip:netmask:hostname:device:autoconf:dns1:dns2 : 使用静态 IP 配置,每个字段用冒号 : 分隔

  • client-ip 客虚拟机 IP 地址,我们将在此运行安装程序
  • server-ip 未使用,留空或填写 none
  • gw-ip 网关 IP 地址
  • netmask 子网掩码
  • hostname 未使用,留空或填写 none
  • device 客虚拟机的网络接口,如果留空,则默认为 eth0
  • autoconf 未使用,留空或填写 noneoff
  • dns1 DNS 服务器地址
  • dns2 第二 DNS 服务器地址

alpine_repo= : 下载软件包的 Alpine 仓库位置。

对于稳定版本,使用 https://dl-cdn.alpinelinux.org/alpine/v3.21/main
对于滚动版本,使用 https://dl-cdn.alpinelinux.org/alpine/edge/main

modloop= : 包含内核模块的镜像远程位置,LVM 和 raid 设置需要。

modloop 镜像的远程位置与内核和 initramfs 相同(见下文)。

ssh_key= : SSH 公钥的远程位置,用于允许 SSH 连接到安装程序。 它将被下载并复制到安装程序中的 /root/.ssh/authorized_keys

注意: 支持从 HTTP、HTTPS 和 FTPS 获取公钥。 仅在您拥有网络的本地环境中使用 HTTP。
注意: Alpine Linux 安全策略反对使用密码通过 SSH 进行 root 访问,因为我们认为使用公钥-私钥对是更好的方法。


z/VM 和 Hercules (Hyperion) 模拟器

dasd= : DASD 设备的地址,可以是 ECKD 或 FBA DASD。 每个设备用逗号分隔。

s390x_net= : 网络接口类型及其子通道。 目前,仅支持 QETH 2 层,因此使用名称 qeth_l2(见下文)。

3. 预安装

KVM

创建虚拟磁盘

$ qemu-img create alpine_disk.qcow2 5G

使用 iso 镜像

从以下位置下载最新的 iso 镜像 : https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/s390x

启动 qemu

$ qemu-system-s390x -M s390-ccw-virtio \ -m 1024 -smp 2 -nographic -enable-kvm \ -net nic -net tap,ifname=tap0,script=no \ -hda alpine_disk.qcow2 \ -boot d -cdrom alpine-standard-3.19.0-s390x.iso

使用网络启动介质

下载最新的 内核initramfs

启动 qemu:(根据您的需要修改 ip= alpine_repo= ssh_key=

$ qemu-system-s390x -M s390-ccw-virtio \ -m 1024 -smp 2 -nographic -enable-kvm \ -net nic -net tap,ifname=tap0,script=no \ -hda alpine_disk.qcow2 \ -kernel vmlinuz-lts \ -initrd initramfs-lts \ -append "ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1 alpine_repo=https://dl-cdn.alpinelinux.org/alpine/v3.19/main modloop=https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/s390x/netboot/modloop-lts ssh_key=https://www.example.net/your-ssh-key.pub"

注意: 如果您可以直接访问 qemu 控制台,则可能不需要 ssh_key

z/VM

为了简化下载镜像、打孔读卡器、ipl 等过程,使用了 ZNETBOOT

注意: 使用 FTP 服务器托管镜像并从 x3270 控制台下载也有效 - 因此无需使用 ZNETBOOT。


创建 parm 文件

在您的工作站/笔记本电脑上,在您的主目录中创建一个名为 alpine.znetboot 的文件,内容如下(根据您的需要修改 dasd=s390x_net= ip= alpine_repo= ssh_key=

ZNETBOOT_KERNEL=https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/s390x/netboot/vmlinuz-lts
ZNETBOOT_INITRD=https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/s390x/netboot/initramfs-lts
ZNETBOOT_PROGRESS=1M

alpine_repo=https://dl-cdn.alpinelinux.org/alpine/v3.19/main
modloop=https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/s390x/netboot/modloop-lts

dasd=0.0.04c0,0.0.05d1
s390x_net=qeth_l2,0.0.0560,0.0.0561,0.0.0562
ip=192.168.1.2::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1

ssh_key=https://your-website.com/your-ssh-key.pub

通过 3270 客户端上传到 z/VM 系统

图 1。

在您的工作站/笔记本电脑上,下载 2 个文件 znetboot.execcurl.rexx 到您的主目录。

打开 3270 客户端,并使用您的 z/VM 用户名和密码登录 z/VM 系统。

使用 3270 客户端(本教程使用 x3270)将 3 个文件 alpine.znetbootznetboot.execcurl.rexx 上传到 z/VM 环境。 在左上角,单击“文件”,然后单击“文件传输”。(图 1。)

执行以下步骤 : (图 2。)

图 2。
  • 在“本地文件名”框中,输入 alpine.znetboot(您笔记本电脑/工作站中的文件,位于 ~/alpine.znetboot
  • 在“主机文件名”框中,输入 alpine znetboot(文件将位于 z/VM 控制台中)
注意: 注意文件名中.空格 字符的区别。
  • 选择发送到主机
  • 选择主机是 VM/CMS
  • 记录格式选择 FixedVariable
分别为 LRECL 和 BLKSIZE 输入一个数字
注意: alpine.znetboot 中任何超过 80 个字符(列)的行在通过 3270 上传到 z/VM (CMS) 控制台时将被拆分为多行。 计算您的 alpine.znetboot 中最长行的字符/列数,并将其填写到 LRECL 中。 BLKSIZE 没有限制,但首选 80。
  • 单击传输文件

znetboot.execcurl.rexx 文件重复相同的步骤。

(可选)检查配置文件

在 3270 客户端上,输入以下命令以检查配置文件是否正确传输

图 3。

xedit alpine znetboot

xedit znetboot exec

xedit curl rex

filel 并在 CMD 列中放置 xedit 以编辑相应的文件。

启动 ZNETBOOT

在 3270 客户端上,键入以下命令并等待至图 3。

znetboot alpine


Hercules (Hyperion) 模拟器

Hercules (Hyperion) zSeries 模拟器

Hercules 是大型机 System/370 和 ESA/390 架构以及最新的 64 位 z/Architecture 的开源软件实现。 Hercules 在 Linux、Windows、Solaris、FreeBSD 和 Mac OS X 下运行。

此过程未在原生 zSeries LPAR 上测试,但很可能有效。 主机是 Fedora Linux V39

在 HOST 上创建目录

在 $HOME 上

mkdir -p Alpine/rdrr Alpine/dasd /Alpine/prtrr 

下载 vmlinuz 和 initramfs 到主机

从 alpine 下载 页面获取 vmlinuz 和 initramfs 文件,并将它们放在 $HOME/Alpine/rdrr 目录中

创建 parm 文件

在您的工作站/笔记本电脑上,在您的 $HOME/Alpine/rdrr 目录中创建一个名为 parmfile 的文件,内容如下(根据您的需要修改 dasd=s390x_net= ip= alpine_repo= ssh_key=

alpine_repo=https://dl-cdn.alpinelinux.org/alpine/v3.19/main
modloop=https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/s390x/netboot/modloop-lts
dasd=0.0.0120,0.0.0121,0.0.0122,0.0.0123 
s390x_net=qeth_l2,0.0.0600,0.0.0601,0.0.0602
ip=192.168.1.3::192.168.1.1:255.255.255.0::::8.8.8.8:1.1.1.1 
ssh_key=https://your-website.com/your-ssh-key.pub

创建 dasd 文件

仅使用 3390 型号 3 (2.8 GB) 在 $HOME/Alpine/dasd 目录中

dasdinit -lfs -linux ZLINUX.0120 3390-3 LIN120
dasdinit -lfs -linux ZLINUX.0121 3390-3 LIN121
dasdinit -lfs -linux ZLINUX.0122 3390-3 LIN122
dasdinit -lfs -linux ZLINUX.0123 3390-3 LIN123

自定义 hercules.cnf 文件

在 $HOME/Alpine 上创建一个名为 Alpine.cnf 的文件,并复制以下内容。 有关详细信息,请参阅 Hercules 配置文件

# --------------------------------------------------------------------#
# Hercules cnf File for zLinux (Alpine)
# --------------------------------------------------------------------#
# Define Vars
# --------------------------------------------------------------------#
DEFSYM RUTA      /home/<user>/zLinux
DEFSYM DISTRO   "Alpine" 
DEFSYM IPTAP    "192.168.1.3"
DEFSYM IFNM     "/dev/net/tun"
DEFSYM TAP0     "tap0"
DEFSYM DASD     $(RUTA)/$(DISTRO)/dasd
DEFSYM PRTR     $(RUTA)/$(DISTRO)/prtr
DEFSYM RDRR     $(RUTA)/$(DISTRO)/rdrr
DEFSYM PROD     $(RUTA)/$(DISTRO)
DEFSYM NUMCPU   "2"
DEFSYM MAXCPU   "3"
DEFSYM MAINSIZE "4196"         # 4 GB Ram
DEFSYM CPUM     "1090"         # "8561" # "2817"
DEFSYM CPUSER   "000001" 
DEFSYM CNSLPORT "3270"
DEFSYM LPNAME   $(DISTRO)
DEFSYM LPNUM    "01"
DEFSYM LOADPARM "0120...."     #CS NS  SAM1
DEFSYM TIMERI   "500"          #400  
DEFSYM ARCHL    "z/ARCH"    
DEFSYM OS       "LINUX"       
DEFSYM HTTPPORT "8081" 
DEFSYM TYPECPU  "IL"           #CP,IL,IP,AP GCP,IFL,ZIIP,ZAAP  
# --------------------------------------------------------------------#
# HMC
# --------------------------------------------------------------------#
ARCHLVL   $(ARCHL)     #z/ARCH
CNSLPORT  $(CNSLPORT)  #3270
CPUMODEL  $(CPUM)      #1090
CPUSERIAL $(CPUSER)    #000001
HTTP PORT $(HTTPPORT)  #8081
LPARNAME  $(LPNAME)    #Distro
LPARNUM   $(LPNUM)     #01 
ENGINES   $(MAXCPU)*$(TYPECPU) #3*IL (IFL)
MAINSIZE  $(MAINSIZE)  #4096 MB
MAXCPU    $(MAXCPU)    #3
NUMCPU    $(NUMCPU)    #2
TIMERINT  $(TIMERI)    #500
OSTAILOR  $(OS)        #LINUX
MOUNTED_TAPE_REINIT DISALLOW
DEVTMAX   0
PANOPT    TITLE="zLinux on x86" RATE=SLOW
HERCLOGO  $(PROD)/Herclogo.txt
# --------------------------------------------------------------------#
#SYSGPORT  3271
#LOADPARM  $(LOADPARM)  #0120..
#LPARNUM   BASIC       #BASIC 1 xx 
#CPUIDFMT  BASIC       # 0 | 1 | BASIC
#DIAG8CMD  ENABLE
#CONKPALV  (3,1,10)
#SHCMDOPT  NODIAG8
#
# --------------------------------------------------------------------#
# Terminals Char-Type 
# --------------------------------------------------------------------#
# 0000 3215-C  $ NOPROMPT
# --------------------------------------------------------------------#
# Punchs
# --------------------------------------------------------------------#
0005 3525    $(PRTR)/PUNCH0005.txt crlf
# --------------------------------------------------------------------#
# Readers
# --------------------------------------------------------------------#
000A 3505    $(RDRR)/vmlinuz-lts $(RDRR)/parmfile $(RDRR)/initramfs-lts autopad eof
000B 3505    *
# --------------------------------------------------------------------#
# Terminals
# --------------------------------------------------------------------#
000C 3215    * 
000D 3215    * 
# --------------------------------------------------------------------#
# Printers
# --------------------------------------------------------------------#
000E 1403    $(PRTR)/PRT000E.txt crlf
# --------------------------------------------------------------------#
# BSC
# --------------------------------------------------------------------#
# 000F 2703    lnctl=TELE2 term=tty dial=no lport=3271
# --------------------------------------------------------------------#
# Dasd
# Use dasdinit -lfs -linux ZLINUX.0120 3390-3 LIN120  # Model 3 = 2.8GB
#     dasdinit -lfs -linux ZLINUX.0121 3390-3 LIN121  # Model 3 = 2.8GB
# --------------------------------------------------------------------#
0120 3390    $(DASD)/ZLINUX.0120  # 3390-3
0121 3390    $(DASD)/ZLINUX.0121  # 3390-3
0122 3390    $(DASD)/ZLINUX.0122  # 3390-3
0123 3390    $(DASD)/ZLINUX.0123  # 3390-3
# .........
# --------------------------------------------------------------------#
# Tapes
# --------------------------------------------------------------------#
0580 3420    *
0581 3420    *
# --------------------------------------------------------------------#
# Comunications IP (OSA)
# ipaddr $(IPTAP)
# !!!Don't put any IP over the QETH device!!!
# --------------------------------------------------------------------#
0600-0602 QETH ifname $(TAP0) iface $(IFNM) mtu 1500 chpid 0 #debug 
# --------------------------------------------------------------------#
# Consoles
# --------------------------------------------------------------------#
0700 3270    *
0701 3270    *
# --------------------------------------------------------------------#
# End(and Fun)
# --------------------------------------------------------------------#

自定义 Alpine initramfs-lts 文件

此步骤是必要的,因为模拟器没有 Linux tty 控制台,并且在发送 alpine-setup.sh 脚本时,不允许使用 root 的 ssh 会话。 诀窍是设置 root 密码并创建一个 admin 用户。 此“hack”取自 自动化 Alpine Linux 安装

Alpine has a service called local.
When this service start, it will execute all scripts named *.start found in /etc/local.d/.
But local service is not enabled by default.
Follow these Steps to enable local service, and let it execute our script:

1.- write your installation script, save to myscript.start
extract initramfs-lts. Need to do this in an empty folder

zcat initramfs-lts | cpio -idm
rm -f initramfs-lts
edit init file. 

find
exec switch_root $switch_root_opts $sysroot $chart_init "$KOPT_init" $KOPT_init_args

2.-Add these 3 lines before the exec command:

cp /myscript.start $sysroot/etc/local.d/
chmod a+x $sysroot/etc/local.d/myscript.start
ln -s /etc/init.d/local $sysroot/etc/runlevels/default/
copy myscript.start to the same folder of init file

3.-repack initramfs-lts

find . | cpio -o -H newc | gzip -1 >initramfs-lts
replace initramfs-lts from iso to the new one.

Reference: https://docs.alpinelinux.cn/user-handbook/0.1a/Installing/manual.html

myscript.start

# --------------------------------------------------------------------
# delete this hack otherwise this script will run forever
# --------------------------------------------------------------------
rm -f /etc/local.d/myscript.start
rm -f /etc/runlevels/default/local
# --------------------------------------------------------------------
# change root pwd to 123@@@ 
# --------------------------------------------------------------------
echo root:123@@@ | chpasswd
# --------------------------------------------------------------------
# create a admin user & change pwd to 123@@@  
# --------------------------------------------------------------------
setup-user -a -u -f Admin admin
echo admin:123@@@ | chpasswd

网络

访问互联网需要桥接和 TAP 接口。 编写如下脚本:此脚本必须在 guest zLinux 的 IPL 之前执行

#!/bin/bash 
# --------------------------------------------------------------------
# Define tap zLinux zOS
# --------------------------------------------------------------------
BRIDGE=br0
ETH=eno1
TAP0=tap0
IPBR0=192.168.1.2
BROADC=192.168.1.255
# --------------------------------------------------------------------
# Conectivity
# --------------------------------------------------------------------
sudo ip link   add name "$BRIDGE"   type bridge
sudo ip tuntap add      "$TAP0"     mode tap 
sudo ip addr   add      "$IPBR0"/24 broadcast "$BROADC" dev "$BRIDGE"
sudo ip link   set dev  "$BRIDGE"   up
sudo ip link   set dev  "$TAP0"     master    "$BRIDGE"
sudo ip link   set dev  "$ETH"      master    "$BRIDGE"
# --------------------------------------------------------------------
# FW Rules
# --------------------------------------------------------------------
#sudo firewall-cmd --permanent --zone=trusted \
#                  --add-interface="$BRIDGE"
#sudo firewall-cmd --permanent --zone=trusted \
#                  --add-interface="$TAP0"
#sudo firewall-cmd --reload
# --------------------------------------------------------------------
# Routes
# --------------------------------------------------------------------
#sudo ip route add default via 192.168.1.1 dev "$BRIDGE"

查看防火墙规则以允许通过此接口的流量。

启动 Hercules (Hyperion) 模拟器

$ sudo hercules -f Alpine.cnf > salida.txt

并从模拟器的 CLI 执行 IPL

herc =====> ipl a        

4. 安装

如果您在 z/VM 或 Hercules (Hyperion) 模拟器上安装,则本部分的步骤不再涉及与 3270 客户端的交互。 一切都在终端中使用 SSH 客户端完成。

如果您在 KVM 上安装,您可以 SSH 进入安装程序(如下所示),也可以直接使用启动 qemu 的控制台。

无论是在 KVM 还是 z/VM 环境中安装,您都可以从您的工作站/笔记本电脑运行

$ ssh root@192.168.1.2 (change ip address to what you specified earlier).

在 Hercules (Hyperion) 模拟器上,将使用用户 admin,登录后使用 su - & myscript.start 中 root 用户的密码 (123@@@) 以 root 身份执行操作

$ ssh admin@192.168.1.2 (change ip address to what you specified earlier) Pwd 123@@@.

如果您在主机上安装时获得“connection refused”,请使用

$sudo ip link   set dev  tap0     master    br0
$sudo firewall-cmd --zone=trusted --add-interface=tap0

其余步骤与在其他架构(x86、arm、ppc 等)上安装 Alpine 类似,无论是在 KVM(使用 virtio/SCSI 磁盘)上还是在 z/VM 和 Hercules (Hyperion) 模拟器上使用 FBA DASD。 在 ECKD DASD 上安装需要一个额外的步骤,如下所述。


示例

以下是在单个 ECKD DASD 上使用 LVM 安装 Alpine 并将该 LVM 扩展到第二个 ECKD DASD 的详细步骤。


SSH 进入 Alpine 安装程序后,运行

# setup-alpine

选择键盘布局 [none]

按 Enter 键表示 none

输入系统主机名(简短形式,例如 'foo')[localhost]

输入您的主机名
Available interfaces are: eth0.
Enter '?' for help on bridges, bonding and vlans.
Which one do you want to initialize? (or '?' or 'done') [eth0]:
键入 'eth0' 或按 Enter 键

eth0 的 IP 地址?(或 'dhcp'、'none'、'?')[192.168.1.2]

输入 IP 地址或 'dhcp'

子网掩码? [255.255.255.0]

输入子网掩码

网关?(或 'none')[192.168.1.1]

输入网关的 IP 地址

您想进行任何手动网络配置吗? [no]

输入 'no' 或按 Enter 键

DNS 域名?(例如 'bar.com')[]

输入域名或按 Enter 键表示 none

DNS 名称服务器? [8.8.8.8 ]

输入 DNS 名称服务器

更改 root 密码

输入 root 密码

您所在的时区是?('?' 查看列表)[UTC]

输入时区或 '?' 查看时区列表

HTTP/FTP 代理 URL?(例如 'http://proxy:8080' 或 'none')[none]

输入代理或按 Enter 键表示 none

输入镜像编号 (1-27) 或要添加的 URL(或 r/f/e/done)[f]

按照描述输入数字或 'r' 或 'f' 或 'e' 或 'done'

哪个 SSH 服务器?('openssh'、'dropbear' 或 'none')[openssh]

输入 SSH 服务器或按 Enter 键表示 openssh

运行哪个 NTP 客户端?('busybox'、'openntpd'、'chrony' 或 'none')[chrony]

输入 'busybox' 或按 Enter 键表示 chrony

(下一步是在 z/VM 上使用 ECKD DASD 的额外步骤)

Available ECKD DASD(s) are:

On hercules (Hyperion) emulator use {{ic|only}} 1 dasd (the 0120 address preferibly)
  0.0.04c0	(3390/0c 3990/e9 IBM)
  0.0.05d1	(3390/0c 3990/e9 IBM)
Which ECKD DASD(s) would you like to be formatted using dasdfmt? (enter '?' for help) [all]
输入 'all' 或 '0.0.04c0 0.0.05d1' (用空格分隔) 以格式化所有/两个 DASD
输入 '0.0.04c0' 或 '0.0.05d1' 以格式化相应的 DASD
输入 '?' 获取帮助

警告:擦除 ECKD DASD 0.0.04c0? [y/N]

输入 'y' 以格式化
Available disks are:
  dasda	(2.5 GB IBM 0.0.04c0)
Which disk(s) would you like to use? (or '?' for help or 'none') [dasda]
输入 'dasda' 或按 Enter 键
The following disk is selected:
  dasda	(2.5 GB IBM 0.0.04c0)
How would you like to use it? ('sys', 'data', 'lvm' or '?' for help) [?]
输入 'lvm'
The following disk is selected (with LVM):
  dasda	(2.5 GB IBM 0.0.04c0)
How would you like to use it? ('sys', 'data' or '?' for help) [?]
输入 'sys' 以将 Alpine 安装到磁盘
WARNING: The following disk(s) will be erased:
  dasda	(2.5 GB IBM 0.0.04c0)
WARNING: Erase the above disk(s) and continue? [y/N]:
输入 'y'

安装完成。请重启。

安装已完成

此时,不要立即关闭安装程序电源。转到 复制 SSH 密钥到新的 Alpine 系统(如下)以获得对新 Alpine 系统的 SSH 访问权限。


复制 SSH 密钥到新的 Alpine 系统

在 Hercules (Hyperion) 模拟器安装下,此步骤不是必需的

默认情况下,Alpine 禁用使用密码通过 SSH 进行 root 登录。 而是使用 SSH 密钥。

安装程序运行完成后(安装完成。请重启。),有两种方法将您的 SSH 密钥复制到新的 Alpine 系统中

  • 选项 1:挂载已安装的磁盘,并在安装程序的终端中复制 SSH 密钥
  • 选项 2:关闭安装程序电源,启动新的 Alpine 系统,并直接添加 SSH 密钥
如果您在 KVM 上安装,请在 qemu 上启动新的 Alpine 系统,并复制 SSH 密钥
如果您在 z/VM 上安装,请使用 3270 客户端 ipl 新的 Alpine 系统并复制 SSH 密钥

选项 1

如果您使用 'lvm' + 'sys' 安装(如以上示例),请执行

# mount /dev/vg0/lv_root /mnt
# cp -ar /root/.ssh /mnt/root

如果您使用 'sys'(没有 LVM)安装,请执行

# mount /dev/dasda3 /mnt(将 dasda 更改为 dasdb 或 dasdc 等,以用于您选择的 DASD)
# cp -ar /root/.ssh /mnt/root
注意: 在 'sys' 安装中,第 1 个分区是 boot,第 2 个分区是 swap,第 3 个分区是 root


然后运行 # poweroff

转到 登录到新的 Alpine 系统

选项 2

运行 # poweroff

如果您使用 KVM,请使用新的 Alpine 系统启动 qemu(删除 -kernel-initrd-append 选项)

如果您使用 z/VM,请打开 3270 客户端,使用您的 z/VM 用户名和密码登录。 您可能需要运行 ipl cms。 然后运行 ipl 04c0(或您在之前的步骤中选择作为 root 磁盘的 DASD 设备)。


等待新的 Alpine 系统启动,然后在 qemu 控制台(在 KVM 上)或 3270 客户端(在 z/VM 上)中以 root 用户身份登录。 然后运行

# mkdir /root/.ssh
# wget https://your-website.com/your-ssh-key.pub -O /root/.ssh/authorized_keys
# chmod 700 /root/.ssh
# chmod 600 /root/.ssh/authorized_keys

转到 登录到新的 Alpine 系统


登录到新的 Alpine 系统

对于 hercules (hyperion) 模拟器,对启动磁盘地址执行 IPL 以启动 Alpine zLinux,在本例中

herc =====> ipl 0120        

在您的工作站/笔记本电脑上,使用 SSH 客户端登录新的 Alpine 系统:$ ssh root@192.168.1.2(或您使用的任何 IP 地址)

扩展 LVM 卷

登录到新的 Alpine 系统后,运行

# apk add -q util-linux e2fsprogs-extra

# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
dasda            94:0    0  2.3G  0 disk 
├─dasda1         94:1    0  100M  0 part /boot
└─dasda2         94:2    0  2.2G  0 part 
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]
  └─vg0-lv_root 254:1    0  1.6G  0 lvm  /
dasdb            94:4    0  2.3G  0 disk

# dasdfmt -b 4096 -d cdl -yp /dev/dasdb

# fdasd -a /dev/dasdb

# pvcreate /dev/dasdb1

# vgextend vg0 /dev/dasdb1

# lvextend -l +100%FREE /dev/vg0/lv_root

# resize2fs /dev/vg0/lv_root

# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
dasda            94:0    0  2.3G  0 disk 
├─dasda1         94:1    0  100M  0 part /boot
└─dasda2         94:2    0  2.2G  0 part 
  ├─vg0-lv_swap 254:0    0  588M  0 lvm  [SWAP]
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /
dasdb            94:4    0  2.3G  0 disk 
└─dasdb1         94:5    0  2.3G  0 part 
  └─vg0-lv_root 254:1    0  3.9G  0 lvm  /


5. 提示

如果您想禁用交换分区,请在完成 NTP 客户端步骤后,按 Ctrl + C 退出安装程序。 然后运行以下命令以完成剩余步骤

# setup-disk -s 0

注意: 如果您执行 'sys' 安装,将不再有交换分区,并且第 1 个分区将是 boot,第 2 个分区将是 root