40 常見問題及其解決方案 #
本章介紹一些可能會發生的問題及其解決方案。即使這裡沒有與您完全相同的情況,或許可以從類似情況中獲得一些提示,來解決您遇到的問題。
40.1 尋找並收集資訊 #
Linux 會非常詳細地報告事件。當系統發生問題時,可以從幾個地方查看相關資訊,主要是 Linux 系統的標準記錄檔案,也有與 SUSE Linux Enterprise Server 系統相關的記錄檔案。大部分記錄檔案都可以透過 YaST (「 › 」) 進行檢視。
使用 YaST 可以收集支援團隊所需的所有系統資訊。使用
› ,然後選取問題類別。在收集到所有資訊之後,將此份資訊連結到您的支援要求。
以下是最常查看的記錄檔案清單,以及它們各自的一般用途。包含 ~
的路徑表示目前使用者的主目錄。
記錄檔案 |
描述 |
---|---|
|
來自目前執行中桌上應用程式的訊息。 |
|
來自 AppArmor 的記錄檔案,請參閱Part V, “Confining privileges with AppArmor” 以獲得詳細資訊。 |
|
來自 Audit 的記錄檔案,可追蹤對檔案、目錄或系統資源的存取,並追蹤系統呼叫。請參閱Part VII, “The Linux Audit Framework”以獲得詳細資訊。 |
|
來自郵件系統的訊息。 |
|
NetworkManager 中的記錄檔案,用於收集網路連接性的問題 |
|
目錄包含 Samba 伺服器和用戶端記錄訊息。 |
|
來自核心和系統記錄精靈的所有訊息,均為「警告」或以上等級。 |
|
二進位檔案包含使用者對於目前機器工作階段的登入記錄。請以 |
|
來自 X Window System 的多種啟動和執行時期記錄檔案。對於 X 啟動失敗的除錯非常實用。 |
|
目錄包含 YaST 的動作和其結果。 |
|
Zypper 的記錄檔案。 |
與記錄檔不同的是,您的機器亦提供您執行中系統的資訊。請參閱表格 40.2: /proc
檔案系統的系統資訊
/proc
檔案系統的系統資訊 #
檔案 |
描述 |
---|---|
|
包含處理器資訊,如類型、廠商、型號與效能。 |
|
顯示目前使用的 DMA 頻道。 |
|
顯示使用中的岔斷,以及每種岔斷正在使用的數量。 |
|
顯示 I/O (輸入/輸出) 記憶體的狀態。 |
|
顯示此時正在使用的 I/O 連接埠。 |
|
顯示記憶體狀態。 |
|
顯示個別模組。 |
|
顯示目前掛接的裝置。 |
|
顯示所有硬碟的分割區。 |
|
顯示目前的 Linux 版本。 |
除了 /proc
檔案系統,Linux 核心還會輸出 sysfs
模組 (記憶體內檔案系統) 的相關資訊。此模組代表核心物件及其屬性和關係。如需有關 sysfs
的詳細資訊,請參閱第 24 章 「使用 udev
進行動態核心裝置管理」 中 udev 的相關內容。表格 40.3 提供了 /sys
下最常用目錄的綜覽。
/sys
檔案系統的系統資訊 #
檔案 |
描述 |
---|---|
|
包含系統中探查到之每個區塊裝置的子目錄。一般情況下,大部分裝置都是磁碟類型的裝置。 |
|
包含每種實體匯流排類型的子目錄。 |
|
包含組合為功能型裝置 (如圖形、網路和印表機等) 的多個子目錄 |
|
包含全域裝置階層。 |
Linux 隨附多種工具可進行系統分析和監控。請參閱Chapter 2, System monitoring utilities以取得用於系統診斷最重要的選項。
下面的每種情境所採用的編排順序是,先在標題中描述問題,隨後用一兩個段落提供建議的解決方案、詳細解決方案的參考資料,以及對其他相關情境的交叉參照。
40.2 開機問題 #
開機問題指的是您的系統無法正常開機的狀況 (無法開機進入預期的目標和登入螢幕)。
40.2.1 GRUB 2 開機載入程式無法載入 #
若硬體運作正常,則可能是開機載入程式已損毀,Linux 無法在機器上啟動。若是這樣的話,必須修復開機載入程式。為此,您需要依第 40.5.2 節 「使用救援系統」中所述啟動救援系統,然後遵照第 40.5.2.4 節 「修改和重新安裝開機載入程式」中的指示。
此外,您可以依照以下方式使用救援系統來修復開機載入程式。從安裝媒體將機器開機。在開機螢幕中,選擇
› 。使用預設核心選項選取包含所安裝系統和核心的磁碟。系統開機後,啟動 YaST 並切換到
› 。確定啟用了 選項,然後按一下 。如此會透過重寫來修復損毀的開機載入程式,或者安裝缺失的開機載入程式。另一個機器無法開機的原因可能跟 BIOS 有關:
- BIOS 設定
檢查與您硬碟相關的 BIOS 設定。若在目前的 BIOS 設定下找不到硬碟本身,則可能只是未啟動 GRUB 2。
- BIOS 開機順序
檢查您系統的開機順序是否包含硬碟。若未啟用硬碟選項,您的系統可能已正確安裝,但在需要存取硬碟時無法開機。
40.2.2 無圖形登入 #
如果機器能啟動,但無法開機進入圖形登入管理員,則問題可能出在預設的 systemd 目標選項或 X Window System 的組態上。若要檢查目前的 systemd 預設目標,請執行指令 sudo systemctl get-default
。如果傳回的值為 not
graphical.target
,請執行指令 sudo systemctl isolate graphical.target
。如果圖形登入螢幕已啟動,請登入並啟動「 › › 」,然後將「 」設定為「 」。此後,系統應該能夠開機進入圖形登入螢幕。
如果即使已開機或者切換到圖形目標,圖形登入螢幕也不啟動,則原因可能是您的桌面或 X Window 軟體設定錯誤或者已毀損。檢查位於 /var/log/Xorg.*.log
的記錄檔案,以取得 X 伺服器嘗試啟動時所傳送的詳細訊息。如果啟動期間桌面發生錯誤,可能會在系統日誌中記錄錯誤訊息,您可以使用指令 journalctl
查詢該日誌 (如需詳細資訊,請參閱第 17 章 「journalctl
:查詢 systemd
日誌」)。若這些錯誤訊息指出 X 伺服器中有組態問題,請嘗試修復這些問題。若仍然未出現圖形系統,請考慮重新安裝圖形桌面。
40.2.3 無法掛接 Btrfs 根分割區 #
如果 btrfs
根分割區已毀損,請嘗試以下選項:
使用
-o recovery
選項掛接該分割區。如果不起作用,請在您的根分割區上執行
btrfs-zero-log
。
40.2.4 強制檢查根分割區 #
如果根分割區已損毀,請在開機提示字元中使用參數
forcefsck 。如此即可將選項 -f
(force) 傳遞給 fsck
指令。
40.2.5 停用交換以啟用開機 #
當某個交換裝置不可用且系統在開機期間無法啟用該裝置時,開機可能會失敗。透過將以下選項附加到核心指令行,來嘗試停用所有交換裝置:
systemd.device_wants_unit=off systemd.mask=swap.target
您也可以嘗試停用特定的交換裝置:
systemd.mask=dev-sda1.swap
40.2.6 GRUB 2 在雙重開機系統上重新開機時失敗 #
如果 GRUB 2 在重新開機期間失敗,請停用 BIOS 中的快速開機
設定。
40.3 登入問題 #
登入問題是指機器雖然開機到預期的歡迎畫面或登入提示畫面,卻拒絕接受使用者名稱和密碼,或者雖然接受了使用者名稱和密碼,但是行為異常 (無法啟動圖形桌面、發生錯誤或轉到了指令行等)。
40.3.1 有效的使用者名稱和密碼組合失敗 #
這種情形常發生於系統設定為使用網路驗證或目錄服務時,且基於某些原因,會無法從其所設定的伺服器取得結果。身為唯一的本地使用者,根
使用者是唯一仍可登入這些機器的使用者。下面是機器看似運作良好卻無法正確執行登入的一些常見原因:
網路未作用。如須對此情況的進一步指示,請參閱第 40.4 節 「網路問題」。
DNS 此時未運作(這樣會阻礙 GNOME 運作,也會妨礙系統驗證安全伺服器的要求)。若機器花費過久的時間回應任何動作的話,表示可能是這種情況。如需此主題的詳細資訊,請參閱第 40.4 節 「網路問題」。
若系統設定為使用 Kerberos,則系統的本地時間有可能超過了 Kerberos 伺服器時間所容許的時間差 (一般為 300 秒)。若 NTP (網路時間協定) 未正確運作,或本地 NTP 伺服器未運作,則 Kerberos 驗證會停止作用,因為它必須仰賴網路上同步的共同時脈才可運作。
系統的驗證組態設定錯誤。請檢查 PAM 組態檔案是否有錯字或指示詞順序錯誤。如需關於 PAM 和所包含組態檔案語法的其他背景資料,請參閱Chapter 2, Authentication with PAM。
主分割區已加密。如需此主題的詳細資訊,請參閱第 40.3.3 節 「登入至加密的主分割區失敗」。
對於所有非外部網路造成的問題,解決方案就是重新開機進入單一使用者模式,並修復組態後再次開機進入操作模式,以嘗試重新登入。若要開機進入單一使用者模式:
重新啟動系統。會出現開機畫面及提示。
按 Esc 離開開頭顯示畫面,並前往 GRUB 2 文字式功能表。
按 B 進入 GRUB 2 編輯器。
將以下參數新增到包含核心參數的行中:
systemd.unit=rescue.target
按「F10」。
輸入
root
的使用者名稱與密碼。進行必要的所有變更。
在指令行中輸入
systemctl isolate graphical.target
,開機進入完整多重使用者及網路模式。
40.3.2 有效的使用者名稱和密碼不被接受 #
這顯然是使用者最常遇到的問題,其發生的原因有很多。根據您使用本地使用者管理和驗證,或使用網路驗證,會有不同原因造成登入失敗。
本地使用者管理可能因為下列原因而失敗:
使用者輸入的密碼有誤。
使用者包含桌面組態檔的主目錄損毀或有防寫保護。
X Window System 可能無法驗證此特定使用者,尤其是在安裝目前版本的 Linux 之前,此使用者的主目錄已用於其他 Linux 版本的情況下。
若要找出本地登入失敗的原因,請執行下列步驟:
進行整個驗證機制的除錯之前,請先確認使用者所記的密碼正確無誤。如果使用者記錯了密碼,請使用「YaST 使用者管理」模組變更其密碼。請注意 Caps Lock 鍵的使用,並根據需要進行切換。
以
root
身分登入,並使用journalctl -e
檢查系統日誌,找出登入程序和 PAM 的錯誤訊息。嘗試從主控台登入 (使用 Ctrl–Alt–F1)。如果成功,表示問題不在 PAM,因為它能夠在此機器上驗證此使用者。嘗試找出 X Window System 或 GNOME 桌面的任何問題。若需更多資訊,請參閱第 40.3.4 節 「GNOME 桌面有問題」。
若使用者的主目錄已由其他 Linux 版本使用,請移除使用者主目錄中的
Xauthority
檔案。使用主控台透過 Ctrl–Alt–F1 登入,並以此使用者身份執行rm .Xauthority
。這樣應可排除此使用者的 X 驗證問題。重新嘗試圖形登入。若由於組態檔案毀損導致桌面無法啟動,請繼續執行第 40.3.4 節 「GNOME 桌面有問題」。
下面列出了特定使用者在特定機器上網路驗證失敗的一些常見原因:
使用者輸入的密碼有誤。
機器的本地驗證檔案中已存在使用者名稱,但網路驗證系統也提供了,兩者產生了衝突。
主目錄是存在的,但損毀或無法使用。或許此目錄設為防止寫入,或位於此時無法存取的伺服器上。
使用者沒有登入驗證系統特定主機的許可。
機器的主機名稱已因某種原因而變更,而使用者沒有登入該主機的許可。
機器無法聯繫驗證伺服器,或是含有使用者資訊的目錄伺服器。
X Window System 可能無法驗證此特定使用者,尤其是在安裝目前版本的 Linux 之前,此使用者的主目錄已用於其他 Linux 版本的情況下。
若要找出登入發生網路驗證失敗的原因,請執行下列步驟:
進行整個驗證機制的除錯之前,請先確認使用者所記的密碼正確無誤。
確定機器賴以進行驗證的目錄伺服器,並確定該伺服器已啟動且正在執行,而且能夠與其他機器正常進行通訊。
確定使用者的使用者名稱和密碼可以在其他機器上使用,以確定其驗證資料存在,而且已正確配送。
再看看在運作不正常的機器上,可否讓其他使用者登入。若其他使用者可以正常登入,或
root
可以登入的話,請登入並使用journalctl -e
> 檔案檢驗系統日誌。找出嘗試登入所對應的時間戳記,並判斷 PAM 是否已產生任何錯誤訊息。嘗試從主控台登入 (使用 Ctrl–Alt–F1)。若是成功,說明問題不是出在 PAM 或使用者主目錄所在的目錄伺服器,因為能夠在此機器上驗證此使用者。嘗試找出 X Window System 或 GNOME 桌面的任何問題。若需更多資訊,請參閱第 40.3.4 節 「GNOME 桌面有問題」。
若使用者的主目錄已由其他 Linux 版本使用,請移除使用者主目錄中的
Xauthority
檔案。使用主控台透過 Ctrl–Alt–F1 登入,並以此使用者身份執行rm .Xauthority
。這樣應可排除此使用者的 X 驗證問題。重新嘗試圖形登入。若由於組態檔案毀損導致桌面無法啟動,請繼續執行第 40.3.4 節 「GNOME 桌面有問題」。
40.3.3 登入至加密的主分割區失敗 #
建議對筆記型電腦使用加密的主分割區。如果無法登入您的筆記型電腦,通常只是因為無法解除鎖定您的分割區。
開機期間,您需要輸入密碼片語以解除鎖定加密的分割區。如果不輸入密碼片語,則開機程序會繼續,但分割區將處於鎖定狀態。
若要解除鎖定加密的分割區,請執行以下步驟:
按 Ctrl–Alt–F1 切換到文字主控台。
以
root
使用者身分登入。使用以下指令重新啟動解除鎖定程序:
root #
systemctl restart home.mount輸入可解除鎖定加密分割區的密碼片語。
按 Alt–F7 離開文字主控台並切換回登入畫面。
像往常一樣登入。
40.3.4 GNOME 桌面有問題 #
如果您遇到 GNOME 桌面問題,可以使用幾種方法對行為異常的圖形桌面環境進行疑難排解。下面所述的建議程序提供了修復損壞的 GNOME 桌面的最安全選項。
啟動 YaST 並切換到
。開啟
對話方塊並按一下 。填寫必要欄位,然後按一下
以建立新使用者。登出並以新使用者身分登入。這將為您提供一個全新的 GNOME 環境。
將舊使用者帳戶的
~/.local/
和~/.config/
目錄中的個別子目錄複製到新使用者帳戶的相應目錄。每次複製操作之後,登出並以新使用者身分再次登入,以檢查 GNOME 是否仍正常工作。
重複上一步,直至找到損壞 GNOME 的組態檔案。
以舊使用者身分登入,並將有問題的組態檔案移到其他位置。登出並以舊使用者身分再次登入。
刪除之前建立的使用者。
40.4 網路問題 #
您系統的許多問題可能都與網路有關,但可能一開始看不出來。例如,系統不允許使用者登入,可能就是某種網路問題所致。本節會介紹簡單的檢查清單,可讓您用來辨識所遇到網路問題的原因。
檢查機器網路連接時,請如下執行:
若使用乙太網路連線,請先檢查硬體。確認您的網路線正確插在電腦和路由器 (或集線器等) 上。正常情況下,乙太網路連接器旁的兩個控制燈都會亮起。
若連接失敗,請檢查網路線在其他機器上可否使用。若可以的話,就是您的網路卡造成的問題。若您的網路設定中包含集線器或交換器,也可能是這些裝置的問題。
若使用無線連接的話,請檢查可否由其他機器建立無線連結。若無法建立,請聯絡無線網路管理員。
完成對基本網路連接性的檢查後,請嘗試找出無回應的服務。收集您設定中所需所有網路伺服器的位址資訊。您可在適當的 YaST 模組中查詢,或詢問您的系統管理員。下列清單提供了設定中所包含的一些基本的網路伺服器,以及其故障的症狀。
- DNS (名稱服務)
名稱服務損壞或故障會從許多方面影響網路的運作。如果本地機器依賴任意網路伺服器進行驗證,而這些伺服器由於名稱解析問題而無法找到,則使用者甚至還不能登入。網路中由故障名稱伺服管理的機器將無法「看到」彼此,也不能相互通訊。
- NTP (時間服務)
NTP 服務的損壞或完全故障會影響 Kerberos 驗證以及 X 伺服器的功能。
- NFS (檔案服務)
若應用程式所需的資料儲存於掛接 NFS 的目錄中,萬一此服務關閉或設定錯誤,該應用程式將無法啟動或無法正常運作。最糟糕的情況是,如果因 NFS 伺服器出現故障,而找不到包含
.gconf
子目錄的使用者主目錄,則使用者的個人桌面組態將無法起作用。- Samba (檔案服務)
若應用程式所需的資料儲存於出現故障之 Samba 伺服器的目錄中,該應用程式將無法啟動或無法正常運作。
- NIS (使用者管理)
若您的 SUSE Linux Enterprise Server 系統依賴出現故障之 NIS 伺服器提供使用者資料,使用者將無法登入這部機器。
- LDAP (使用者管理)
若您的 SUSE Linux Enterprise Server 系統依賴出現故障之 LDAP 伺服器提供使用者資料,使用者將無法登入這部機器。
- Kerberos (驗證)
不進行驗證,也無法登入任何機器。
- CUPS (網路列印)
使用者無法列印。
請檢查網路伺服器是否運作,且您的網路設定可否讓您建立連接:
重要:限制下述偵錯程序只適用於不涉及任何內部路由的簡易網路伺服器/用戶端設定。假設伺服器和用戶端都是相同子網路的成員,不需要其他路由。
使用
ping
IP_ADDRESS/HOSTNAME (以伺服器的主機名稱或 IP 位址取代該項) 來檢查各伺服器是否在正常運作,且能夠回應網路。若此指令成功的話,就會告知您的主機您正在尋找並執行它,且您網路的名稱服務設定是正確的。若 ping 的結果失敗且傳回
destination host unreachable
(無法聯繫目的地主機),則您的系統或想找的伺服器可能設定錯誤或故障。從另一部機器執行ping
IP address 或 YOUR_HOSTNAME 指令,以檢查是否可連接您的系統。如果您可以從另一台機器存取您的機器,可能是伺服器未執行或設定錯誤。若 ping 失敗且傳回
unknown host
,則是名稱服務設定錯誤,或使用的主機名稱不正確。如須對此問題做進一步檢查,請參閱步驟 4.b。若 ping 仍然失敗,則是您的網路卡未設定正確,或網路硬體故障。請使用
host
HOSTNAME 來檢查您嘗試連接的伺服器的主機名稱是否正確地轉譯為 IP 位址,反之亦然。若此指令傳回主機的 IP 位址,則名稱服務是啟動且執行中的。如果host
指令失敗,請在您的主機上檢查所有與名稱及位址解析有關的網路組態檔案:/var/run/netconfig/resolv.conf
此檔案用於追蹤您目前使用的名稱伺服器與領域。它是
/run/netconfig/resolv.conf
的符號連結,YaST 或 DHCP 通常會自動對其進行調整。請確定此檔案的結構如下,且所有的網路位址與網域名稱均正確:search FULLY_QUALIFIED_DOMAIN_NAME nameserver IPADDRESS_OF_NAMESERVER
此檔案會包含多個名稱伺服器位址,其中至少有一個必須是正確的,才能為您的主機提供名稱解析。需要時,請使用 YaST 的「網路設定」模組 (「主機名稱/DNS」索引標籤) 調整此檔案。
若您是透過 DHCP 處理網路連接的,請在 YaST 的「網路設定」模組 (「主機名稱/DNS」索引標籤) 中選取
(可針對所有介面全域設定,也可以逐個介面設定) 和 ,以允許 DHCP 變更主機名稱和名稱服務資訊。/etc/nsswitch.conf
此檔案會告知 Linux 何處可找到名稱服務資訊。其內容如下:
... hosts: files dns networks: files dns ...
dns
項目是必備的。這會告訴 Linux 使用外部名稱伺服器。正常情況下,YaST 會自動管理這些項目,但檢查很謹慎。若主機上所有相關的項目都正確的話,請要求您的系統管理員檢查 DNS 伺服器組態是否具備正確的時區資訊。如需關於 DNS 的詳細資訊,請參閱第 31 章 「網域名稱系統」。若您確定主機和 DNS 伺服器的 DNS 組態正確物誤,請繼續檢查網路組態和網路裝置。
若您的系統無法建立與網路伺服器的連接,且您已經從問題可能原因清單中排除名稱服務的問題,則請檢查網路卡的組態。
使用
ip addr show
NETWORK_DEVICE 指令來檢查是否已正確設定此裝置。確定已正確設定帶有網路遮罩 (/MASK
) 的inet address
。IP 位址有錯誤或網路遮罩有位元遺失的話,都可能造成網路組態無法使用。必要的話,請一併於伺服器上執行此檢查。如果已正確設定且正在執行名稱服務和網路硬體,但有些外部網路連接仍然長時間逾時或完全失敗,請使用
traceroute
FULLY_QUALIFIED_DOMAIN_NAME 指令 (以root
使用者的身分執行) 來追蹤這些要求所採用的網路路由。此指令會列出請求從您機器傳送到其目的地所經的所有閘道 (躍程)。其會列出各躍程的回應時間,以及是否可連接此躍程。請使用 traceroute 加上 ping 找出問題的原因,並告知管理員。
當您確定了網路故障的原因後,便可自行解決 (如果問題出在您自己的機器上),或告訴網路系統管理員您的發現,以便其重新設定服務或修復必要的系統。
40.4.1 NetworkManager 問題 #
若您有網路連接的問題,請依程序 40.2 「如何識別網路問題」所述將範圍調窄。若 NetworkManager 似乎有問題,請執行下列步驟,取得 NetworkManager 故障原因的提示記錄:
開啟外圍程序並以
root
身份登入。重新啟動 NetworkManager:
tux >
sudo
systemctl restart NetworkManager以一般使用者身分開啟網頁,例如 http://www.opensuse.org,看看是否可以連接。
在
/var/log/NetworkManager
中收集 NetworkManager 狀態的所有相關資訊。
如需關於 NetworkManager 的詳細資訊,請參閱第 26 章 「使用 NetworkManager」。
40.5 資料問題 #
資料問題是指,機器或許可以 (或無法) 正確開機,但系統上有著明顯的資料損毀,且需要修復。遇到這些情況時,需要用到您重要資料的備份檔案,以讓您的系統回復到故障前的狀態。
40.5.1 管理分割區影像 #
有時,您需要對整個分割區甚至是硬碟執行備份。Linux 附帶 dd
工具,可為磁碟建立完全一致的副本。結合 gzip
,還能為您節省一些空間。
以
root
使用者身分啟動外圍程序。選取來源裝置。一般類似
/dev/sda
(標示為 SOURCE)。決定要儲存影像 (標示為 BACKUP_PATH) 的位置。此位置必須不同於來源裝置的位置。換言之,如果您對
/dev/sda
進行備份,就不能將影像檔案儲存在/dev/sda
下。執行以下指令建立壓縮影像檔:
root #
dd if=/dev/SOURCE | gzip > /BACKUP_PATH/image.gz使用以下指令還原硬碟:
root #
gzip -dc /BACKUP_PATH/image.gz | dd of=/dev/SOURCE
如果您只需備份分割區,請使用各個分割區取代指令中預留的 SOURCE。如此,您的影像檔便會存放於同一個硬碟的不同分割區中。
40.5.2 使用救援系統 #
系統無法啟動並正常運作的原因可能有幾種。最常見的原因是系統當機後檔案系統損毀、組態檔案損毀,或開機載入程式組態損毀。
為了幫助您解決這些狀況,SUSE Linux Enterprise Server 包含可以開機的救援系統。救援系統是一個小型的 Linux 系統,可以載入到 RAM 磁碟上並裝載為根目錄檔案系統,好讓您從外部存取 Linux 分割區。藉由此救援系統,您可以復原或修改任何重要的系統項目。
操作任何類型的組態檔案。
檢查檔案系統有無缺失並啟動自動修復程序。
在「變更根目錄」環境中存取已安裝的系統.
檢查、修改和重新安裝開機載入程式組態。
從錯誤安裝的裝置驅動程式或無法使用的核心復原。
使用 Parted 指令來調整分割區大小。如需此工具的詳細資訊,請造訪 GNU Parted 網站 http://www.gnu.org/software/parted/parted.html。
救援系統可以從各種來源與位置載入。最簡單的方法就是從原始安裝媒體將救援系統開機。
在 IBM Z 上,可將安裝系統用於救援目的。若要啟動救援系統,請遵照第 40.6 節 「IBM Z:使用 initrd 做為救援系統」中的指示。
將安裝媒體插入 DVD 光碟機。
重新啟動系統。
在開機畫面中按 F4,然後選擇「 」。之後從主功能表中選擇「 」。
在
Rescue:
提示輸入root
。無須輸入密碼。
如果硬體設定沒有包含 DVD 光碟機,您可以從網路來源將救援系統開機。以下範例適用於遠端開機案例 — 如果使用其他開機媒體 (例如 DVD),請相應修改 info
檔案,並按照一般安裝方式開機。
進入 PXE 開機設定的組態中,新增下面的行:
install=PROTOCOL://INSTSOURCE
和rescue=1
。如果需要啟動系統修復,請使用repair=1
。與正常安裝一樣,PROTOCOL 表示任何受支援的網路通訊協定 (NFS、HTTP、FTP 等),INSTSOURCE 表示網路安裝來源的路徑。依照第 17.5 節 「使用網路喚醒進行遠端喚醒」 中的說明,使用「網路喚醒」啟動系統。
在
Rescue:
提示輸入root
。無須輸入密碼。
進入該救援系統後,可透過 Alt–F1 到 Alt–F6 鍵來使用虛擬主控台。
/bin
目錄中提供了一個外圍程序和其他有用的公用程式,如 mount 程式。/sbin
目錄中包含重要的檔案與網路公用程式,以便檢視及修復檔案系統。此目錄中也有最重要的二進位系統維護程式,例如 fdisk
、mkfs
、mkswap
、mount
和 shutdown
,以及維護網路的 ip
和 ss
。目錄 /usr/bin
包含 vi 編輯器、find、less 和 SSH。
若要檢視系統訊息,請使用指令 dmesg
,或者使用 journalctl
來檢視系統記錄。
40.5.2.1 檢查和操作組態檔案 #
為了舉例說明使用救援系統如何修正組態檔案,請想像系統由於組態檔案損毀而無法正常開機。您可以使用救援系統來解決這個問題。
若要操作組態檔案,請執行下列步驟:
使用上述的其中一個方法啟動救援系統。
若要將
/dev/sda6
下的開機檔案系統裝載到救援系統,請使用下列指令:tux >
sudo
mount /dev/sda6 /mnt系統的所有目錄現在都存放在
/mnt
中將此目錄變更到裝載的開機檔案系統中:
tux >
sudo
cd /mnt在 vi 編輯器中開啟有問題的組態檔案。調整並儲存設定。
從救援系統解除裝載開機檔案系統:
tux >
sudo
umount /mnt重新開機。
40.5.2.2 修復和檢查檔案系統 #
一般而言,檔案系統無法在執行中的系統上修復。如果發生了嚴重的問題,您可能甚至無法裝載開機檔案,而且系統可能會因為「核心異常」而無法開機。在此情況下,唯一的方法就是從外部修復系統。該系統包含的公用程式可檢查並修復 btrfs
、ext2
、ext3
、ext4
、xfs
、dosfs
和 vfat
檔案系統。尋找指令 fsck.FILESYSTEM
。例如,如果需要對 btrfs
進行檔案系統檢查,請使用 fsck.btrfs
。
40.5.2.3 存取已安裝系統 #
如果需要從救援系統存取已安裝的系統,您需要在變更根目錄環境中執行此操作。例如,若要修改開機載入程式組態或執行硬體組態公用程式。
若要根據已安裝的系統設定變更根目錄環境,請執行下列步驟:
- 提示:輸入 LVM 磁碟區群組
如果您使用的是 LVM 設定 (如需更多一般性詳細資料,請參閱第 II 部分 「邏輯磁碟區 (LVM)」),請輸入所有現有的磁碟區群組,以便能夠尋找和掛接裝置:
root
vgimport -a執行
lsblk
以檢查哪個節點對應於根分割區。在本例中,該節點為/dev/sda2
:tux >
lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 149,1G 0 disk ├─sda1 8:1 0 2G 0 part [SWAP] ├─sda2 8:2 0 20G 0 part / └─sda3 8:3 0 127G 0 part └─cr_home 254:0 0 127G 0 crypt /home 從安裝的系統掛接根分割區:
tux >
sudo
mount /dev/sda2 /mnt掛接
/proc
、/dev
和/sys
分割區:tux >
sudo
mount -t proc none /mnt/proctux >
sudo
mount --rbind /dev /mnt/devtux >
sudo
mount --rbind /sys /mnt/sys現在可以「變更根分割區」為新的環境,並保留
bash
外圍程序:tux >
chroot /mnt /bin/bash最後,從已安裝的系統裝載其餘分割區:
tux >
mount -a現在您可以存取已安裝的系統。重新啟動系統之前,請先使用
umount
-a
來解除裝載分割區,並以 「exit」 離開變更根
目錄環境。
雖然您可以完全存取已安裝系統的檔案和應用程式,但必須遵守某些限制。執行中的核心是使用救援系統啟動的核心,而不是使用變更根目錄環境啟動的核心。它只支援基本硬體,而且無法從已安裝系統新增核心模組,除非核心版本完全一致。一律使用 uname -r
檢查目前執行的 (救援) 核心,然後確定變更根目錄環境的 /lib/modules
目錄中是否有相符的子目錄。如果有,您便可以使用已安裝的模組,否則,需要在其他媒體 (例如快閃磁碟機) 上提供模組的正確版本。多數情況下,救援核心版本與已安裝的版本並不相同,因此,舉例來說,您便不能像平常一樣存取聲卡。您也無法啟動圖形使用者介面。
另外請注意,當您使用 「F1」 至 Alt–F6 來切換主控台時,將會離開Alt–變更根目錄環境。
40.5.2.4 修改和重新安裝開機載入程式 #
有時候系統無法開機是因為開機載入程式組態已損毀。譬如說,開機載入程式若未執行,啟動常式便無法將實體磁碟機轉譯為 Linux 檔案系統中的實際位置。
若要檢查開機載入程式組態和重新安裝開機載入程式,請執行下列步驟:
執行存取已安裝系統所需的必要步驟,如 第 40.5.2.3 節 「存取已安裝系統」 所述。
檢查系統上是否已安裝 GRUB 2 開機載入程式。如果未安裝,請安裝
grub2
套件並執行tux >
sudo
grub2-install /dev/sda根據第 14 章 「開機載入程式 GRUB 2」中概述的 GRUB 2 組態原則,檢查下列檔案是否正確設定,並在必要時加以修正。
/etc/default/grub
/boot/grub2/device.map
(選用檔案,手動建立後才存在)/boot/grub2/grub.cfg
(此檔案是產生的,不要編輯)/etc/sysconfig/bootloader
依序使用下列指令來重新安裝開機載入程式:
tux >
sudo
grub2-mkconfig -o /boot/grub2/grub.cfg解除裝載分割區,從「變更根目錄」環境登出,並重新啟動系統:
tux >
umount -a exit reboot
40.5.2.5 修復核心安裝 #
核心更新可能會帶來新的錯誤,進而會影響系統作業。例如,系統中某個硬體的驅動程式可能有錯誤,致使您無法存取和使用系統。在這種情況下,請復原至上回正常運作的核心 (如果系統中提供的話),或者從安裝媒體安裝原始核心。
為了防止在錯誤的核心更新後無法開機,請使用核心多版本功能,並告知 libzypp
您要在更新後保留哪些核心。
例如,若要永遠保留最後兩個核心和目前執行中的核心,請新增
multiversion.kernels = latest,latest-1,running
至 /etc/zypp/zypp.conf
檔案。如需詳細資訊,請參閱第 23 章 「安裝多個核心版本」。
另一個類似的情況是,當您需要重新安裝或更新 SUSE Linux Enterprise Server 不支援之裝置的已損毀驅動程式時。例如,當硬體廠商使用特定裝置時,比如使用硬體 RAID 控制器,這就要求作業系統能夠識別二進位驅動程式。廠商一般會發行「驅動程式更新磁碟」(DUD),內含所需驅動程式的修復或更新版本。
在這兩種情況下,您都需要以救援模式存取安裝的系統,並修正與核心相關的問題,否則系統可能無法正常開機:
從 SUSE Linux Enterprise Server 安裝媒體開機。
如果您要在錯誤的核心更新之後復原,請跳過此步驟。如果需要使用驅動程式更新磁碟 (DUD),請在開機功能表出現之後按 F6 以載入驅動程式更新,並選擇驅動程式更新的路徑或 URL,然後按一下 確認。
從開機功能表中選擇Enter。如果您之前選擇使用 DUD,系統將會要求您指定儲存驅動程式更新的位置。
,然後按在
Rescue:
提示輸入root
。無須輸入密碼。手動將目標系統和「變更根目錄」掛接至新環境:如需詳細資訊,請參閱 第 40.5.2.3 節 「存取已安裝系統」。
如果使用 DUD,請安裝/重新安裝/更新錯誤的裝置驅動程式套件。請務必確定已安裝的核心版本與要安裝的驅動程式版本完全相符。
如果要修正錯誤的核心更新安裝,可以按照以下程序從安裝媒體安裝原始核心。
使用
hwinfo --cdrom
識別 DVD 裝置,並使用mount /dev/sr0 /mnt
掛接裝置。導覽到 DVD 上儲存核心檔案的目錄,例如
cd /mnt/suse/x86_64/
。使用
rpm -i
指令安裝您的產品類別所需的kernel-*
、kernel-*-base
以及kernel-*-extra
套件。
根據需要更新組態檔,然後重新啟動開機載入程式。如需詳細資訊,請參閱 第 40.5.2.4 節 「修改和重新安裝開機載入程式」。
從系統磁碟機中取出任何可開機的媒體,然後重新開機。
40.6 IBM Z:使用 initrd 做為救援系統 #
如果升級或修改了 SUSE® Linux Enterprise Server for IBM Z 的核心,可能會意外地將系統重新開機為不一致的狀態,這樣會使已安裝系統的標準 IPL 程序失敗。在這種情況下,您可以使用安裝系統來提供救援。
依第 5.3 節 「安裝準備工作」中所述,對 SUSE Linux Enterprise Server for IBM Z 安裝系統執行 IPL。選擇「 」,然後輸入所有需要的參數。載入安裝系統後,系統會詢問您要使用哪個顯示類型來控制安裝,此時請選取 SSH
。現在,您可以不輸入密碼直接以 root
身分透過 SSH 登入系統。
在此狀態下,尚未設定任何磁碟。您必須先設定磁碟,才能繼續。
使用下列指令來設定 DASD:
dasd_configure 0.0.0150 1 0
0.0.0150 是連接 DASD 的通道。
1
表示啟用磁碟 (此處的0
會停用磁碟)。0
表示磁碟的「無 DIAG 模式」 (此處的1
會啟用磁碟的 DAIG 存取)。現在 DASD 已經上線 (請使用
cat /proc/partitions
來檢查),而且可以用於後續指令。
若要設定 zFCP 磁碟,您必須先設定 zFCP 介面卡。使用下列指令來執行此動作:
zfcp_host_configure 0.0.4000 1
0.0.4000
是連接介面卡的通道,而1
表示啟動 (此處的0
會停用介面卡)。啟用介面卡之後,便可以設定磁碟。使用下列指令來執行此動作:
zfcp_disk_configure 0.0.4000 1234567887654321 8765432100000000 1
0.0.4000
是之前使用的通道 ID,1234567887654321
是 WWPN (全球連接埠號碼),而8765432100000000
則是 LUN (邏輯單元編號)。1
表示啟用磁碟 (此處的0
會停用磁碟)。現在 zFCP 磁碟已經上線 (請使用
cat /proc/partitions
來檢查),而且可以用於後續指令。
現在,救援系統已完全設定好,您可以開始修復安裝的系統。如需關於如何解決最常見問題的指示,請參閱第 40.5.2 節 「使用救援系統」。