IBM System z:使用 initrd 做為救援系統

如果升級或修改 IBM System z 的 SUSE® Linux Enterprise Server 核心,可能會意外以不一致的狀態重新啟動系統,使得對已安裝系統執行 IPL 的標準程序失敗。在已經安裝新的或更新的 SUSE Linux Enterprise Server 核心,但尚未執行 zipl 程式來更新 IPL 記錄時,最容易發生這種意外。在此狀況下,請使用標準安裝套件做為救援系統,可在其中執行 zipl 程式以更新 IPL 記錄。

IPL 救援系統

[Important]提供使用安裝資料

若要使用這種方法,必須取得適用於 IBM System z 的 SUSE Linux Enterprise Server 的安裝資料。如需詳細資訊,請參閱 Architecture-Specific Information 中的第 2.1 節「Making the Installation Data Available」 (第 2 章「Preparing for Installation」, ↑Architecture-Specific Information)。除此之外,您需要設備的通道號碼和包含 SUSE Linux Enterprise Server 安裝的根目錄檔案系統的設備內分割區數目。

首先,對適用於 IBM System z 的 SUSE Linux Enterprise Server 安裝系統執行 IPL, 如 Architecture-Specific Information 手冊中所述。然後會出現使用的網路介面卡選項清單。

選取啟動安裝或系統,然後選取啟動救援系統以啟動救援系統。視安裝環境而定,您現在必須指定網路介面卡的參數和安裝來源。救援系統便會載入,且結尾會顯示下列登入提示:

Skipped services in runlevel 3:  nfs nfsboot

Rescue login:

現在可以使用 root 身份登入,無需密碼。

設定磁碟

在此狀態下,尚未設定任何磁碟。您必須先設定磁碟,才能繼續。

過程 51.3. 設定 DASD

  1. 使用下列指令來設定 DASD:

    dasd_configure 0.0.0150 1 0
    

    0.0.0150 是連接 DASD 的通道。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 (全球連接埠號碼),而 8765432100000000 則是 LUN (邏輯單元編號)。1 表示啟用磁碟 (此處的 0 會停用磁碟)。

  3. 現在 zFCP 磁碟已經上線 (請使用 cat /proc/partitions 來檢查),而且可以用於後續指令。

裝載根設備

如果所有所需磁碟均已上線,您現在就應該能夠裝載根設備。假設根設備位於 DASD 設備的第二分割區 (/dev/dasda2),對應的指令為 mount /dev/dasda2 /mnt

[Important]檔案系統一致性

如果安裝的系統未正確關閉,建議在裝載之前檢查檔案系統一致性。如此可避免意外遺失資料。使用此範例,發出指令 fsck /dev/dasda2 以確定檔案系統處於一致的狀態。

僅需發出指令 mount,便可以檢查檔案系統是否已正確裝載。

範例 51.1. 裝載指令的輸出

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. chroot 至已裝載的檔案系統

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
   

結束救援系統

若要結束救援系統,首先以 chroot 指令和 exit 讓外圍程序保持開啟。若要防止資料遺失,請將所有未寫入的緩衝區以 sync 指令沖洗至磁碟。現在變更救援系統的根目錄,並解除裝載適用於 IBM System z 的 SUSE Linux Enterprise Server 安裝的根設備。

範例 51.4. 解除裝載檔案系統

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

最後,以 halt 指令停止救援系統。現在可以如 第 3.13.1 節「IBM System z:對安裝的系統執行 IPL」 所述對 SUSE Linux Enterprise Server 系統執行 IPL。