Linux 的 PowerPath:無法在 Linux 系統上啟動 PowerPath ||收到錯誤「尋找功能的位址遺失」

Summary: 無法在作業系統和核心版本處於支援層級的 Linux 系統上啟動 PowerPath。我們收到的錯誤類似於我們通常對不受支援的內核版本遇到的錯誤。

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

已在 Linux 系統上安裝 PowerPath,並嘗試啟動 PowerPath,但失敗。

# systemctl start PowerPath.service
PowerPath 無法載入模組 emcp
載入 PowerPath 核心模組

時發生錯誤 從訊息檔案 --
systemd[1]:正在啟動 PowerPath 啟動指令檔...                                                  
內核:emcp:模組許可證“專有”污染內核。                                         
核心:由於內核污染
內核而禁用鎖定調試:emcp:模組驗證失敗:簽名和/或必需的密鑰丟失 - 污染內核
:emcp:應用kernel_stack修復
systemd-udevd[604]:指定組“lp”未知
內核:警告:emcp:emcp:找不到尋找功能
的位址 PowerPath[2869]:啟動 PowerPath:PowerPath 無法載入模組 emcp
PowerPath[2869]:載入 PowerPath 核心模組
時發生錯誤 PowerPath[2869]:失敗
的系統[1]:正在停止 PowerPath 啟動指令檔...    

Cause

Linux 系統內核經過

kernel.randomize_va_space = 2
kernel.kptr_restrict = 2

# cat /proc/sys/kernel/kptr_restrict
2

的調整,上述設定/調整使「/proc/kallsyms」中的所有位址都0x0000000000這是不正常的,也不是 PowerPath 啟動指令檔所預期。因此,PowerPath 服務無法啟動。 

此選項會將透過 /proc/kallsyms 匯出至使用者空間的核心符號設為空值。

Powerpath 啟動指令檔會查看 /proc/kallsyms,以取得某些核心功能的位址,並在載入 emcp 模組時將這些位址作為參數傳遞。由於 Powerpath 啟動指令檔無法再使用預期的核心符號,因此 emcp 模組無法載入,並因此導致啟動指令檔失敗。

Resolution

若要解決此問題,您需要將以下參數還原為預設值,以使「/proc/ kallsyms」開始列出正確的位址。

# echo 0 >/proc/sys/kernel/kptr_restrict
# echo 0 >/proc/sys/kernel/randomize_va_space

# cat /proc/sys/kernel/kptr_restrict
0 然後

嘗試啟動 PowerPath 服務。它應該開始了!

# systemctl start PowerPath.service

Additional Information

如果您不確定變更「kernel.randomize_va_space」和「kernel.kptr_restrict」參數的原因,請洽詢您的作業系統廠商,因為這通常是調整參數。

Affected Products

PowerPath for Linux

Products

PowerPath for Linux
Article Properties
Article Number: 000050401
Article Type: Solution
Last Modified: 22 Aug 2025
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.