Frage
Gibt es beim Linux-Booten eine Option, die ich zur Zeile „vmlinuz…“ hinzufügen kann, um zu verhindern, dass das Betriebssystem (zumindest in dieser Sitzung) jemals NVMe-SSDs sehen oder darauf zugreifen kann – und gleichzeitig die gesamte übrige Hardware erkennbar und einbindbar bleibt?
Kontext
Ich bin ziemlich neu bei Linux und lerne noch. Ich möchte ein Multiboot-Setup erstellen (von verschiedenen Laufwerken, nicht von verschiedenen Partitionen), bei dem jede Betriebssysteminstanz effektiv von der anderen „luftgetrennt“ ist. Ich kann dann beim Start im BIOS auswählen, von welchem Laufwerk gebootet werden soll, und welches Laufwerk auch immer bootet, dieses Betriebssystem kann das andere Laufwerk nicht sehen.
Ich verwende einen Laptop, bei dem es nicht praktikabel ist, Laufwerke physisch auszutauschen (zumindest nicht oft), und ich möchte Win 10 Pro von meinem NVMe-Laufwerk ausführen (wobei das SATA-Laufwerk im Geräte-Manager deaktiviert ist) und mit verschiedenen Linux-Distributionen herumbasteln und sie von meinem SATA-Laufwerk oder einer Live-CD ausführen (wobei das NVMe-Laufwerk für sie unsichtbar ist) – und dabei die Daten auf meinem NVMe-Laufwerk sicher halten.
Einige Systeminformationen
- BIOS
AMI Aptio 2.18.126
Firmware Ver 1.05.03 - Chipsatz
Intel Z170 - Prozessorfamilie
Skylake - NVMe-Laufwerk
Samsung 950 Pro - SATA-Laufwerk
Samsung 850 Pro
Ein großes Dankeschön an @EugenRieck, @davidgo, @TwistyImpersonator, @dirkt, @KamilMaciorowski und alle, die sich die Zeit genommen haben, zu antworten.
Als Antwort auf Dirks Frage. Was ich anstrebte, war ein Multi-Boot-Setup, bei dem „Laufwerk A“ mit seinen Daten und seinem Betriebssystem von allem isoliert ist, was auf „Laufwerk B“ läuft. Idealerweise wäre es praktisch, ein ausgewähltes Laufwerk (oder einen Laufwerksanschluss) im BIOS oder noch besser über einen Hardwareschalter zu deaktivieren, aber mein System hat diese Option nicht. Ich habe einige Hinweise auf die Konfiguration von Linux-Kerneloptionen beim Booten über eine Befehlszeile gesehen, also habe ich mich gefragt, ob ich ein Laufwerk auf diese Weise deaktivieren könnte. Dieser Ansatz schien praktisch zu sein, da er sich leichter auf etwas wie eine vorkonfigurierte Live-CD sowie auf alles anwenden ließe, was ich auf „Laufwerk B“ installieren und einrichten könnte. (Nochmals vielen Dank, Eugen, für die Einzelheiten dazu). Nach dem, was David in seinem Beitrag sagte, klingt es so, als ob solche Kernelbefehle nicht überschrieben werden und es bei einem solchen Ansatz immer noch ziemlich trivial wäre, wenn ein bisschen Malware an mein NVMe-Laufwerk gelangt, wenn ich beispielsweise IPTables oder eine VM falsch konfiguriere oder ein Paket installiere, das so aussieht, als hätte es einige einzigartige kreative Funktionen, aber tatsächlich beschädigt ist. Ist das korrekt?
Antwort1
Dies ist ziemlich einfach: Ein Boot-Befehlszeilenparameter modprobe.blacklist=nvme
erledigt die Aufgabe.
BEARBEITEN
Wie in den Kommentaren gewünscht, hier einige Hintergrundinformationen:
modprobe
ist der Mechanismus, mit dem Treiber automatisch geladen werden, wenn ein Gerät erkannt wird. Wenn Ihr NVMe-Laufwerk also auf dem PCIe-Bus erkannt wird, wird es aufgerufen, um zu versuchen, die Treiber zu laden.- Da es einige Situationen gibt, in denen Sie nicht möchten, dass ein Treiber automatisch geladen wird (das typische Beispiel
nouveau
hierfür ist der binäre NVIDIA-Treiber des Herstellers), enthält dieser Mechanismus eine „Blacklist“-Funktion, die das automatische Laden eines Treibers stoppt. - Diese Blacklist kann entweder durch Bearbeiten einer Datei oder über die Kernel-Befehlszeile gestartet werden
/etc/modprobe.d
. Ich habe letztere verwendet, da in Ihrer Frage ausdrücklich die Boot-Befehlszeile angegeben wurde. - Der Treiber (Kernelmodul), der NVMe-Laufwerke als Blockgeräte zugänglich macht, heißt nicht überraschenderweise „nvme“.
Zusammen ergibt das die erwähnte Befehlszeile - es ist absolut nicht ungewöhnlich, einen solchen Parameter zu verwenden, insbesondere bei eigenwilligen Laptops. Im Grunde ist es das genaue Analogon zum Deaktivieren der SATA-Treiber im Windows-Gerätemanager.