Dies ist ein komplexer Prozess, den wir neuen Linux-Nutzern nicht empfehlen.
ChromeOS unterstützt die Ausführung von beliebigem Code in VMs. Dies ist die Low-Level-Dokumentation zu dieser Unterstützung. Eine nutzerfreundlichere Ansicht finden Sie in den faq.
Vorbereitung
- Prüfen Sie, ob Ihr ChromeOS-Gerät Linux unter ChromeOS unterstützt.
-
Achten Sie darauf, dass Sie ChromeOS-Version 72 (M72+) oder höher verwenden (veröffentlicht im Februar 2019).
- Starten Sie bei Bedarf ein Systemupdate und führen Sie einen Neustart durch.
- Dies sollte im stabilen Kanal funktionieren.
- Sie müssen das Gerät nicht in den Entwicklermodus versetzen.
- Aktivieren Sie den Linux-Container.
Laufzeitfunktionen
Die folgenden Funktionen sollten beim Ausführen Ihres Linux-Containers funktionieren:
- Ausgehende Netzwerkverbindungen (IPv4)
- Nicht beschleunigte Grafiken
- Wayland-Programme (bevorzugt; über Sommelier)
- X-Programme (Kompatibilität über Sommelier und XWayland)
- Audioausgabe in M74+- und experimentellen Capture-/Mikrofon-Images in R79+
Fehlende Funktionen
- Hardware-Videodecodierung
- IME-Methoden
Das ChromeOS-Team geht bei der Einführung neuer Funktionen vorsichtig vor, um sicherzustellen, dass die allgemeine Systemsicherheit nicht beeinträchtigt wird. Weitere Informationen zu den meisten Themen rund um die Linux-Entwicklung unter ChromeOS finden Sie in den Crostini-FAQs.
Sicherheit
Die Ausführung von beliebigem Code stellt normalerweise ein Sicherheitsrisiko dar. Das ChromeOS-Team ist jedoch der Ansicht, dass das Laufzeitmodell, das vom Linux-Container unter ChromeOS verwendet wird, dieses Sicherheitsrisiko ausreichend mindert und eindämmt. Die virtuelle Maschine (VM) ist die Sicherheitsgrenze und alles darin wird als nicht vertrauenswürdig betrachtet. Im aktuellen VM-Gast-Image wird auch ein benutzerdefinierter, gehärteter Kernel ausgeführt, um die Sicherheit der Container weiter zu verbessern. Dies wird jedoch eher als nützliche Funktion betrachtet und nicht als etwas, auf das sich verlassen wird, um die allgemeine Systemsicherheit zu gewährleisten.
In diesem Modell sollte der Rest des ChromeOS-Systems vor beliebigem Code (böswillig oder versehentlich) geschützt bleiben, der in den Containern innerhalb der VM ausgeführt wird.
Der einzige Kontakt zur Außenwelt erfolgt über crosvm und jeder Kanal kommuniziert mit einzelnen Prozessen (die alle stark in einer Sandbox ausgeführt werden).
Nutzerdaten im Container
Mit der Umstellung auf Cloud-Dienste wird in der aktuellen Sicherheitsdiskussion hervorgehoben, dass das Abrufen von Anmeldedaten (z.B. Ihre Google-/Facebook-Passwörter) ein lukrativerer Angriffsvektor ist als ein Angriff auf Ihren Desktop oder Laptop. Das ist nicht falsch. Die aktuelle ChromeOS-Lösung für VMs/Container verbessert dies derzeit nicht. Einfach ausgedrückt: Alles, was in den Container eingegeben wird, liegt derzeit in der Verantwortung des Nutzers. Wenn Sie also einen unsicheren oder kompromittierten Container ausführen und dann Ihre Passwörter in den Container eingeben, können diese gestohlen werden, auch wenn der Rest des ChromeOS-Systems sicher bleibt.
Prozesspersistenz
Prozesse in VMs und Containern überdauern die Abmeldung nicht (da sie im verschlüsselten Speicher des Nutzers gespeichert sind) und werden automatisch beendet. Sie werden auch nicht automatisch bei der Anmeldung gestartet (um dauerhafte Angriffe zu vermeiden) und können auch nicht automatisch beim Start ausgeführt werden (ohne Anmeldesitzung), da sie nicht zugänglich wären (da sie im verschlüsselten Speicher des Nutzers gespeichert sind).
Ausführbarer und beschreibbarer Code
Das Termina-VM-Festplatten-Image wird wie andere Chrome-Komponenten in die beschreibbare zustandsbehaftete Partition heruntergeladen. Um sicherzustellen, dass die Inhalte nicht geändert werden, wird dm-verity verwendet. Das bedeutet auch, dass nur von Google signierte Images geladen werden können und das Image immer schreibgeschützt ist.
Hardwareangriffe
Die Meltdown-/Spectre-Sicherheitslücken haben Auswirkungen auf die sichere Verwendung von VMs. Wir haben Korrekturen und Gegenmaßnahmen angewendet, um sicherzustellen, dass VMs das Hostsystem oder andere VMs nicht angreifen können. Weitere Informationen finden Sie auf der Chromium OS-Wiki-Seite zum Status der Meltdown- und Spectre-Sicherheitslücken für ChromeOS-Geräte.
Lebenszyklen
Sobald Sie den Linux-Container aktiviert haben (der alle anderen erforderlichen Komponenten wie Termina installiert), ist das System einsatzbereit.
Obwohl diese Komponenten installiert sind, wird nichts sofort ausgeführt. Wenn Sie sich abmelden, wird alles heruntergefahren und beendet. Wenn Sie sich anmelden, wird nichts automatisch neu gestartet.
Wenn Sie die Terminal-App oder eine andere Linux-App ausführen, die den Container startet, und der übergeordnete Container noch nicht ausgeführt wird, wird die Termina-VM automatisch gestartet und der Standard-Linux-Container unter ChromeOS (auch als Crostini bekannt) wird darin gestartet. So können Sie über SSH oder SFTP (über die Dateien-App) eine Verbindung zum Container herstellen.
Wenn Sie alle sichtbaren Anwendungen schließen, werden die VMs/Container nicht heruntergefahren. Sie können sie manuell beenden und starten sowie mehr Container als nur den Standardcontainer erstellen.
Datenpersistenz
Alle erstellten VMs und Container sowie die Daten in diesen Containern bleiben über Nutzersitzungen hinweg (Abmeldung/Anmeldung) erhalten. Sie werden im selben verschlüsselten Speicher pro Nutzer wie die übrigen Browserdaten gespeichert.
Wenn eine VM oder ein Container nicht ordnungsgemäß beendet oder beendet wird (z.B. bei einem Stromausfall), können Daten verloren gehen und müssen wie alles andere im System wiederhergestellt werden.
Geräteunterstützung
Linux unter ChromeOS soll zwar auf allen Chromebooks funktionieren, die erforderlichen Kernel- und Hardwarefunktionen schränken jedoch ein, wo es bereitgestellt werden kann. Das Team hat sich auf die Systemsicherheit und ‑stabilität konzentriert und Funktionen zurückportiert, wo es sinnvoll ist. Dies ist ein Bereich, in dem kontinuierlich gearbeitet wird.
Derzeit unterstützt
Eine Liste der derzeit unterstützten Geräte finden Sie unter ChromeOS-Systeme, die Linux unterstützen.
Hardwareanforderungen
Derzeit gibt es keine Mindestanforderungen an RAM, Speicher oder CPU-Geschwindigkeit für die Ausführung des Linux-Containers unter ChromeOS. Je mehr Sie von jedem haben, desto besser ist die Systemleistung.
Sie benötigen jedoch eine CPU, die Hardwarevirtualisierung unterstützt. Auf x86-Plattformen hat dies viele Namen. Intel bezeichnet es als VT-x und VMX. AMD bezeichnet es als AMD-V & SVM.
BayTrail-Systeme
Chromebooks mit Intel BayTrail enthalten kein VT-x. Diese CPU enthält normalerweise VMX, die Variante in Chromebooks jedoch nicht. Daher wird sie leider nie unterstützt.
Sie können prüfen, ob ein Board unterstützt wird, indem Sie in unserer öffentlichen Geräteliste nach BayTrail in der Spalte Platform suchen.
Alte Kernel
Es ist nicht geplant, Linux 3.14 oder älter zu unterstützen. Dafür sind Backports neuer Funktionen erforderlich, die umfangreich und oft invasiv sind. Beispiel:
Sie können prüfen, ob ein Board unterstützt wird, indem Sie in unserer öffentlichen Geräteliste in der Kernel Spalte nach Versionsnummern suchen, die kleiner als 3.14 sind.
32-Bit-ARM-CPUs
Es ist schwierig und nicht standardmäßig, virtuelle Maschinen unter 32-Bit-ARM-CPUs zum Laufen zu bringen. Außerdem ist eine Abstimmung mit der Firmware erforderlich. Leider wurden die Erweiterungen in der ChromeOS-Firmware in der Regel nicht konfiguriert. Daher werden diese Systeme nicht unterstützt.
Sie können prüfen, ob ein Board unterstützt wird, indem Sie in unserer öffentlichen Geräteliste in der Spalte Kernel ABI nach arm suchen.