如何隔離驅動器?

如何隔離驅動器?

問題

在 Linux 啟動時,是否有一個選項可以添加到“vmlinuz…”行中,以阻止作業系統(至少在該會話中)查看或訪問 NVMe SSD,同時保持所有其他硬體可發現和可安裝?

情境

我對 Linux 還很陌生,仍在學習中。我想創建一個多重引導設定(來自不同的驅動器,而不是不同的分區),其中每個作業系統實例實際上與另一個作業系統實例「氣隙」。然後,我可以在啟動時選擇從 BIOS 啟動哪個驅動器,無論哪個驅動器啟動,該作業系統都將無法看到另一個驅動器。

我使用的筆記型電腦無法物理交換驅動器(至少不經常),並且我想在 NVMe 驅動器上運行 Win 10 Pro(在設備管理器中禁用 SATA 驅動器)並修補各種 Linux 發行版,從我的SATA 驅動器或Live CD 上運行它們(NVMe 驅動器對它們不可見),同時確保NVMe 驅動器上的資料安全。

一些系統資訊

  • BIOS
    AMI Aptio 2.18.126
    韌體版本 1.05.03
  • 晶片組
    Intel Z170
  • 處理器系列
    Skylake
  • NVMe驅動
    三星950 Pro
  • SATA 驅動器
    三星 850 Pro

非常感謝@EugenRieck、@davidgo、@TwistyImpersonator、@dirkt、@KamilMaciorowski 以及所有花時間回覆的人。

回答德克的問題。我的目標是多重啟動設置,其中“驅動器 a”及其資料和作業系統與“驅動器 b”上運行的任何內容隔離。理想情況下,透過硬體開關在 BIOS 中停用選定驅動器(或驅動器連接埠)會很方便,或者更好,但我的系統沒有該選項。我看到一些內容引用了透過命令列在啟動時配置 Linux 核心選項,所以我想知道是否可以透過這種方式停用驅動器。這種方法似乎很方便,因為它可以更輕鬆地應用於預先配置的 Live CD 以及我可能在「磁碟機 b」上安裝和設定的任何內容。 (再次感謝 Eugen 提供有關如何執行此操作的詳細資訊)。從David 在他的帖子中所說的來看,聽起來這樣的內核命令並沒有被覆蓋,而且在這種方法下,如果我錯誤配置了IPTables 或錯誤配置了虛擬機,那麼一些惡意軟體進入我的NVMe 驅動器仍然是相當微不足道的或安裝一個看起來有一些獨特的創意功能但實際上已損壞的軟體包。那是對的嗎?

答案1

這相當簡單:啟動命令列參數即可modprobe.blacklist=nvme完成這項工作。

編輯

根據評論中的要求,這裡有一些背景:

  • modprobe是當偵測到裝置時自動載入驅動程式的機制。因此,當在 PCIe 總線上偵測到您的 NVMe 磁碟機時,將會呼叫它來嘗試載入驅動程式。
  • 由於在某些情況下,您不希望自動載入驅動程式(典型的範例是nouveau與供應商二進位 nvidia 驅動程式相比),因此此機制包含「黑名單」功能,它們將停止自動載入驅動程式。
  • /etc/modprobe.d可以透過編輯檔案或透過核心命令列來啟動此黑名單。我使用了後者,因為你的問題明確指出了啟動命令列。
  • 讓 NVMe 驅動器可作為區塊裝置存取的驅動程式(核心模組)毫不奇怪地稱為“nvme”

將所有這些放在一起會產生上述命令行 - 使用這樣的參數絕對不罕見,尤其是對於古怪的筆記型電腦。基本上,它與在 Windows 裝置管理員中停用 SATA 驅動程式完全相同。

相關內容