IBM System z:将 initrd 用作救援系统

如果升级或修改了 SUSE® Linux Enterprise Server for IBM System z 的内核,则可能会在不一致的状态下意外地重引导系统,这样会使已安装系统的标准 IPL 过程失败。之所以会出现这种情况,通常是因为已安装了新的或经过更新的 SUSE Linux Enterprise Server 内核,但尚未运行 zipl 程序来更新 IPL 记录。在这种情况下,请使用标准安装包作为救援系统,并从中执行 zipl 程序来更新 IPL 记录。

对救援系统执行初始程序装载

[Important]使安装数据可用

为了使此方法生效,SUSE Linux Enterprise Server for IBM System z 安装数据必须为可用的。有关细节,请参见 Architecture-Specific Information 中的第 2.1 节 “Making the Installation Data Available” (第 2 章 Preparing for Installation, ↑Architecture-Specific Information)。此外,您还需要设备的通道号和设备内包含 SUSE Linux Enterprise Server 安装的根文件系统的分区号。

首先,按照 Architecture-Specific Information 手册中的说明对 SUSE Linux Enterprise Server for IBM System z 安装系统执行 IPL。随后将显示一个要使用的网络适配器的选择列表。

选择启动安装或系统,然后选择启动救援系统来启动救援系统。根据安装环境,现在必须确定网络调节器的参数和安装源。装载应急程序,并显示后面的登陆提示。

Skipped services in runlevel 3:  nfs nfsboot

Rescue login:

您可以作为 root 登录,而无需密码。

磁盘配置

在此情况下,没有做任何磁盘配置。需要在在能进入以前配置磁盘。

过程 51.3. 配置 DASD

  1. 用以下的命令配置 DASD:

    dasd_configure 0.0.0150 1 0
    

    DASD 以 0.0.0150 连接。1 表示激活该磁盘(此位置若为 0 则将停用该磁盘)。0 表示磁盘 “无 DIAG 模式” (1 使磁盘的 DAIG 访问可用)。

  2. 现在, DASD 为联机 (用 cat /proc/partitions 检查),并可用于后续命令。

过程 51.4. 配置 zFCP 磁盘

  1. 配置 zFCP 磁盘,首先要配置 zFCP 调节器。请使用以下命令完成该操作:

    zfcp_host_configure 0.0.4000 1
    

    0.0.4000 是调节器的连接目标通道 1 表示激活(0使调节器无效)。

  2. 调节器被激活后,可以配置磁盘。请使用以下命令完成该操作:

         zfcp_disk_configure 0.0.4000 1234567887654321 8765432100000000  1
        

    0.0.4000 是以前用的通道 ID, 1234567887654321 为 WWPN (国际端口号码 World wide Port Number), 而 8765432100000000 是 LUN (逻辑单位号码 logical unit number). 1 意味着激活该磁盘 (这里的 0 将使该磁盘无效)。

  3. 现在, zFCP 磁盘为联机 (用 cat /proc/partitions 检查),并可用于后续命令。

装入根设备

如果所有所需设备都为联机,则现在应该能够装入根设备。假定根设备位于 DASD 设备的第 2 个分区 (/dev/dasda2),则相应的命令是 mount /dev/dasda2 /mnt

[Important]文件系统一致性

如果没有正确关闭已安装系统,则最好在执行装入之前检查文件系统一致性。这样可避免意外丢失数据。在本例中,发出命令 fsck /dev/dasda2 以确保文件系统处于一致的状态。

通过只发布命令 mount,可以检查是否能够正确装入文件系统。

例 51.1. Mount 命令的输出

SuSE Instsys suse:/ # mount
shmfs on /newroot type shm (rw,nr_inodes=10240)
devpts on /dev/pts type devpts (rw)
virtual-proc-filesystem on /proc type proc (rw)
/dev/dasda2 on /mnt type reiserfs (rw)
   

更改为已装入的文件系统

为了使 zipl 命令从已安装系统的根设备而非救援系统读取配置文件,请使用 chroot 命令将根设备更改为已安装系统:

例 51.2. 将根设备更改为已装入的文件系统

SuSE Instsys suse:/ # cd /mnt 
SuSE Instsys suse:/mnt # chroot /mnt
   

执行 zipl

现在执行 zipl 用正确的值改写 IPL 记录。

例 51.3. 使用 zipl 命令安装 IPL 记录

sh-2.05b# zipl 
building bootmap : /boot/zipl/bootmap 
adding Kernel Image : /boot/kernel/image located at 0x00010000 
adding Ramdisk : /boot/initrd located at 0x00800000 
adding Parmline : /boot/zipl/parmfile located at 0x00001000 
Bootloader for ECKD type devices with z/OS compatible layout installed. 
Syncing disks.... 
...done
   

退出救援系统

要退出救援系统,应首先使用 exit 退出由 chroot 命令打开的壳层。为了避免丢失任何数据,请使用 sync 命令将所有未使用的缓冲区清理到磁盘。现在更改为救援系统的根目录,然后卸载 SUSE Linux Enterprise Server for IBM System z 安装的根设备。

例 51.4. 卸装文件系统

SuSE Instsys suse:/mnt # cd / 
SuSE Instsys suse:/ # umount /mnt
   

最后,使用 halt 命令暂停救援系统。现在便可以按照 第 3.13.1 节 “IBM System z:对已安装系统执行 IPL” 一章中的说明对 SUSE Linux Enterprise Server 系统进行初始程序装载了。