Category Archives: Bootsschutz

Durchführung einer tragbaren Vollinstallation von Ubuntu auf einer USB-Festplatte

Ich habe regelmäßig den Bedarf, Dinge unter Linux auszuprobieren. Manchmal wird eine virtuelle Maschine sie für mich aufgrund von Speicher-, Festplatten- und Leistungseinschränkungen nicht ausgleichen können. Darüber hinaus ist eine anständige, aktuelle, bootfähige Linux-Umgebung ein großartiges Backup, falls alle meine anderen Computer defekt, infiziert oder gestohlen werden. Dazu gehört die Linux-Installation auf einer externen, über USB angeschlossenen Festplatte, die auf jedem UEFI-fähigen PC relativ einfach booten kann (trotz Treiber-Kompatibilität). Darüber hinaus müssen alle Vorarbeiten mit einem Windows-Einzelstartrechner durchgeführt werden, ohne dass ein duales Boot-System entsteht. Das klingt hart. Es ist hart, aber ich schreibe dies von meiner portablen Ubuntu Linux-Installation, die auf einer USB-SSD läuft!

Was du brauchst

Eine leere externe (USB-)Festplatte. Ich habe ein USB 3 Laufwerksgehäuse mit einer günstigen 256Gb SSD verwendet. Für diejenigen unter Ihnen, die sich Sorgen um die Leistung machen, ist der USB 3.0-Anschluss schneller als die maximale Übertragungsrate einer SSD, die ich bis jetzt gesehen habe. Um linux auf externe festplatte installieren Anleitung bekommen und umsetzen.
Ubuntu Linux bootfähiges USB-Laufwerk. Sehr einfach zu erstellen mit Rufus unter Windows. Ich habe einen billigen, werbewirksamen Flashspeicher verwendet. Reduzieren, Wiederverwenden, Recyceln von FTW.

Ubuntu

Windows System Repair Disc (ein bootfähiges USB-Laufwerk mit Windows-Recovery-Tools, die Sie selbst erstellen können) oder eine Windows Installation oder Rettungs-CD-ROM / DVD-ROM. Ich habe einen anderen Werbe-Stick verwendet.
Denken Sie daran, Backups aller Ihrer kritischen Dateien und Ordner zu erstellen, bevor Sie fortfahren. Sie werden Änderungen an Ihrem Computer vornehmen. Wenn es kaputt geht, weine nicht, habe ich dich gewarnt. Testen Sie auch beide Ihre bootfähigen Medien. Zweimal. Du wirst sie beide brauchen!

Höhlen

Ein Dual- oder Multi-Boot-System zu haben, ist nicht mehr so einfach wie vor zehn Jahren. Heutzutage gibt es im Interesse von Sicherheit, Leistung und Abwärtskompatibilität viele halb versteckte Optionen und Funktionen, die Ihnen im Weg stehen können. Mit genügend Erfahrung und Geduld kannst du sie umgehen. Nachfolgend finden Sie eine Auswahl von Problemen, die mich auf dem Weg dorthin mäßig stumpf gemacht haben.
Sicherer Bootsschutz
Ich habe diese Anleitung nur bei ausgeschaltetem Secure Boot getestet. Obwohl Ubuntu Secure Boot unterstützt (es kommt mit signierten Bootloadern), habe ich keine Ahnung, ob meine Methode die signierten Bootloader verwendet oder nicht. Ich schlage vor, Secure Boot nach Möglichkeit zu deaktivieren.

FastBoot Vorbehalte

Viele Boards verfügen über eine Art „Fast Boot“ oder „Boot Optimization“ Option. Zum Beispiel hat mein Intel NUC eine Option namens Fast Boot, die es mir nicht erlaubt, beim Start ein alternatives Boot-Gerät auszuwählen. Es hat auch eine Option zur Unterstützung der Intel Rapid Start Technology, die dem Booten auf mehreren Betriebssystemen im Weg steht. Ich musste beide deaktivieren.

Es ist erwähnenswert, dass Windows 8 und 10 über eine Schnellstart- oder Schnellboot-Funktion verfügen. Diese Funktion benötigt einige Abkürzungen, wenn es um das Booten geht, und lässt das NTFS-Dateisystem in einem verschmutzten Zustand bleiben, was es unter Linux unbeschreiblich macht. Es ist am besten zu verstehen, was es tut und es zu deaktivieren, wenn Sie planen, von Linux aus auf Ihr Windows-Laufwerk zu schreiben.

USB-Host-Controller-Vorbehalt

Einige Firmwares stellen den USB-Host-Controller beim Booten als UHCI (USB 1.1) dar. Wenn Linux während des Bootvorgangs nach einem xHCI (USB 3) Host-Controller sucht, reagiert dieser positiv. Zu diesem Zeitpunkt lädt Linux den xHCI-Treiber und der USB-Hostcontroller setzt sich zurück.

Ihr Root-Dateisystem befindet sich jedoch in einem Gerät, das an diesen USB-Controller angeschlossen ist. Daher bedeutet das Zurücksetzen der Steuerung, dass Linux nicht mehr mit der über USB angeschlossenen Festplatte kommunizieren kann. Daher wird der Linux-Boot für immer hängen bleiben, ohne weitere Hinweise darauf, was schief gelaufen ist.

Die meisten betroffenen Boards (einschließlich meines Intel NUC) haben eine Option, um die xHCI Host-Controller-Schnittstelle standardmäßig zu aktivieren. Das Aktivieren der xHCI-Option im BIOS behebt das Problem des hängenden Bootens. Wenn Sie nur moderne Betriebssysteme mit USB 3-Unterstützung verwenden (alles Neue ab Windows 8.1 und Ubuntu Linux 15.04), können Sie diese Option sicher aktivieren.

Installation von Linux

Starten Sie Ihren Computer von dem bootfähigen USB-Laufwerk von Ubuntu Linux. Denken Sie daran, dass Sie möglicherweise den Bootmanager Ihres Computers aufrufen müssen, um das zu tun (auf meinem Intel NUC muss ich F10 drücken; auf den meisten anderen BIOS habe ich F9 gesehen; lesen Sie Ihre BIOS-Dokumentation).
Installieren Sie Ubuntu Linux regelmäßig. Wenn es Sie nach dem Festplattenlayout fragt, wählen Sie Something Else und partitionieren Sie Ihre externe Festplatte nach Ihren Wünschen. Ich entschied mich, eine bescheiden große Root-Partition (ca. 40 Gb) zu erstellen, eine Swap-Partition, die so groß ist wie die größte RAM-Konfiguration, die ich diese Installation mit plus einem Gb verwenden werde (meine Computer sind maximal 16 Gb groß, also habe ich eine 17 Gb Swap-Partition erstellt) und der Rest der Festplatte ging zu einer massiven /home Partition.

Caveat: Ich habe mich für btrfs entschieden, was – wie ich unterwegs gelernt habe – die Dinge auf der ganzen Linie etwas komplizierter macht. Für Ihren Verstand empfehle ich die Verwendung von ext4. Dieser Leitfaden geht von der Verwendung von btrfs aus und wird auf die Vorbehalte bei diesem Ansatz hinweisen.
Beheben Sie den Start von Windows 10

Leider geht der Ubuntu-Installer davon aus, dass Sie neben Windows eine Dual-Boot-Konfiguration wünschen. Daher fügt er sich selbst (eigentlich den von ihm verwendeten Bootloader, GRUB2) in die UEFI-Konfiguration Ihres Computers ein. Das verursacht zwei Probleme. Zum einen ist die externe Festplatte nicht portabel, da Sie damit nicht auf einem anderen Computer booten können.

Zweitens, wenn Sie diese externe Festplatte entfernen, wird Ihr Windows nicht starten. Schade. Das müssen wir in Ordnung bringen.
Schalten Sie Ihren Computer aus.
Trennen Sie die Ubuntu-Festplatte.
Booten Sie vom Windows-System Reparatur-Disketten-USB-Laufwerk (oder einer Windows-Installations- oder Rettungs-CD-ROM / DVD-ROM).

  • Wählen Sie Reparieren Sie Ihren Computer.
  • Wählen Sie das Betriebssystem aus und klicken Sie auf Weiter.
  • Wählen Sie Eingabeaufforderung.
  • Führen Sie in der Eingabeaufforderung Folgendes aus
  • Scheibenteil
    sel Scheibe 0
    list vol

Stellen Sie sicher, dass die EFI-Partition das FAT32-Dateisystem verwendet. Es wird eine Datenträger-ID haben, sagen wir 99, und jetzt müssen wir ihm einen Laufwerksbuchstaben zuweisen. Geben Sie in der Eingabeaufforderung zurück:
sel vol 99
assign letter=z:
Ausgang
Jetzt müssen wir den Boot-Record reparieren. Geben Sie in der Eingabeaufforderung erneut Folgendes ein:
z:
cd EFI/Microsoft/Boot
bootrec /FixBoot
Schließlich müssen wir den BCD-Speicher neu erstellen, der dem Microsoft-Bootloader sagt, wo er Windows finden soll, damit er es starten kann. Von unserer vertrauenswürdigen Eingabeaufforderung aus:
ren BCD BCD BCD.old
bcdboot c:\Windows /l en-us /s z: Alle
Wenn das nicht funktioniert hat, versuchen Sie es.
ren BCD BCD BCD.old
bootrec /RebuildBcd neu erstellen

Verlassen Sie an dieser Stelle die Eingabeaufforderung und fahren Sie Ihren Computer herunter.

Erstellen eines ESP auf der Ubuntu-Festplatte

Eine Festplatte ist mit UEFI nicht bootfähig, es sei denn, sie hat ein ESP (EFI System Partition). Ein ESP ist einfach eine FAT32-Partition mit einem speziellen Flag, das das EFI-BIOS anweist, in ihm nach Boot-Informationen zu suchen. Wir müssen einen auf deiner Festplatte erstellen.
Schließen Sie Ihre externe Festplatte und den bootfähigen USB-Stick von Ubuntu Linux an.

Booten Sie mit dem bootfähigen USB-Stick von Ubuntu Linux mit der Option, Ubuntu vor der Installation auszuprobieren.
Öffnen eines Terminals (STRG-ALT-T)
Führen Sie sudo fdisk -l aus, um eine Liste der Partitionen zu erhalten.
Identifiziere von ihnen das Laufwerk, das die Linux-Partitionen hat, in meinem Fall /dev/sdb. Ich nenne es von nun an /dev/sdX.
Identifizieren Sie auch die Partition, die das Root-Dateisystem enthält. Ich werde es von nun an /dev/sdXY nennen.
Starten Sie GParted vom Terminal aus:
sudo gparted /dev/sdX
Warum nicht einfach auf GParted auf Ihrem Desktop klicken? Nun, ich habe immer wieder Fehler über den bootfähigen USB-Stick von Ubuntu Linux erhalten, weil er bereits in Gebrauch war. Natürlich ist es das, ich benutze es, um den Computer davon laufen zu lassen, duh!

  • Ändern Sie die Größe der ersten Partition auf der Festplatte, um danach weitere 200 MB freien Speicherplatz zu haben.
  • Erstellen Sie eine neue Partition auf dem freien Speicherplatz und ändern Sie das Dateisystem auf fat32.
  • Anwenden von Operationen. Du musst das jetzt tun, damit der nächste Schritt möglich ist.
  • Klicken Sie mit der rechten Maustaste auf die neue Partition.
  • Klicken Sie auf Flags verwalten.
  • Setzen Sie die Boot- und esp-Flags. Das macht die Partition für das EFI-BIOS „besonders“.

Noch eine Sache! Notieren Sie sich die Partition, die das ESP-Dateisystem enthält. Ich werde es von nun an /dev/sdXZ nennen.
Stellen Sie sicher, dass die Ubuntu-Installation auf der externen Festplatte das ESP sehen kann.
Das neue ESP auf dem externen Laufwerk muss für die Ubuntu-Installation auf der Festplatte sichtbar sein. Andernfalls kann sich GRUB2, der Linux-Bootloader, nicht selbst aktualisieren, so dass Ihr System spätestens nach dem nächsten Kernel-Update nicht mehr bootfähig ist.

Start GParted vom Terminal aus, wie wir oben gesehen haben:
sudo gparted /dev/sdX
Doppelklicken Sie auf die Partition mit Ihrem Linux Root (/) Dateisystem auf der externen Festplatte.
Notieren Sie sich die UUID, z.B. 01234567-89ab-cdef-0123-456787890abcde
Doppelklicken Sie auf die neue FAT32-Partition und notieren Sie sich die UUID, z.B. 0123-ABCD.
GParted schließen

Öffnen eines Terminals

Der Prozess ist je nach Format Ihrer Root-Partition auf der externen Festplatte unterschiedlich.
Wenn du NICHT btrfs benutzt hast (z.B. du hast ext4 benutzt)
sudo umount /media/ubuntu/01234567-89ab-cdef-0123-4567890abcde
sudo mount /dev/sdXY /mnt
Wenn Sie DID verwenden btrfs verwenden
Wenn du btrfs benutzt, hast du dein Leben kompliziert gemacht. Wir müssen das btrfs-Subvolume mounten, das die Root-Partition statt der gesamten Partition enthält. Sonst wirst du GRUB nie installieren können und wahrscheinlich einen ganzen Tag verlieren, wie ich.
btrfs subvolume list /media/ubuntu/01234567-89ab-cdef-0123-4567890abcde

Dadurch erhalten Sie eine Zeile mit einer numerischen ID. Sagen wir 123. Notieren Sie es sich.
umount /media/ubuntu/01234567-89ab-cdef-0123-456787890abcde
mount /dev/sdXY -o subvolid=123 /mnt
Der Rest der Anweisungen ist üblich, egal ob btrfs, ext4 oder etwas anderes verwendet wird.
sudo nano /mnt/etc/fstab
Es gibt bereits eine Zeile mit /boot/efi in dieser Datei. Kommentiere es, indem du ein # davor setzt.
Füge die folgende Zeile hinzu:
UUID=0123-ABCD /boot/efi vfat Standardwerte 0 1
GRUB2 auf der EFI-Systempartition des externen Laufwerks installieren.

Im Moment hat unser externes Laufwerk ein leeres ESP. Wir müssen einen Bootloader einbauen, um ihn tatsächlich, naja, bootfähig zu machen.

Erster Vorbehalt:

Alle Anweisungen, die Sie online finden, gehen davon aus, dass Sie ein Dual-Boot-System mit Windows oder macOS verwenden. Wenn Sie ein externes Laufwerk haben, ist es wichtig, dass Sie im letzten Schritt die Option -removable verwenden. Dadurch wird der EFI-Bootloader unter dem speziellen „Fallback-Pfad“ EFI\Boot\bootx64.efi im ESP installiert. Normalerweise sollte dies nicht für fest installierte Betriebssysteme verwendet werden. Es ist der Mechanismus, der vom EFI BIOS verwendet wird, um beliebige externe Medien zu booten. Technisch gesehen ist das genau das, was unsere externe Festplatte ist: beliebige externe Medien!

Zweiter Vorbehalt:

Die Installation des Bootloaders ist nur innerhalb der Linux-Installation möglich, die wir booten wollen. Wir benötigen jedoch den Bootloader, um diese Installation zu starten, was zu einem Catch-22-Problem führt. Die Lösung besteht darin, die Bootloader-Installation durch ein Chroot-Gefängnis laufen zu lassen. Der eigentliche Vorbehalt, der mich für einen Tag stumpf gemacht hat, kommt von der Tatsache, dass ich btrfs verwende (weil es so viel besser für SSDs ist!). btrfs hat Subvolumes. Wenn Sie die gesamte Partition anstelle eines Subvolumes mounten, kann das grub-install-Skript die Zuordnung zwischen Pfaden und Geräten nicht herausfinden und kann sich daher nicht auf dem ESP installieren, was den kryptischen Fehler zurückgibt.

/usr/sbin/sbin/grub-probe: error: cannot find a device for / (is /dev mounted?).
Der Fehler ist irreführend! /dev wird gemountet, wenn Sie meinen Anweisungen unten folgen. Das eigentliche Problem, so wie ich es verstehe, ist, dass es eine Diskrepanz zwischen dem gemounteten Gerät und dem Pfad zum Chroot-Root gibt. Deshalb habe ich dich in den obigen Schritten nur das Subvolume mounten lassen, das das Root-Dateisystem enthält. Wenn Sie nicht aufgepasst haben, folgen Sie nicht den Anweisungen Schritt für Schritt, Sie haben vor diesem Schritt neu gestartet oder sind einfach hierher gekommen, um eine Lösung für Ihr Problem zu finden, dass GRUB nicht installiert wurde, siehe oben für Anweisungen zum Mounten des richtigen btrfs Subvolumens.

Wir müssen die Chroot-Umgebung vorbereiten. Das ESP muss an der richtigen Stelle montiert werden und wir müssen den System-Mountpoint für einige spezielle Bäume (insbesondere /dev) binden. Außerdem werden wir die Datei resolv.conf kopieren, um der Chroot-Umgebung bei Bedarf Netzwerkzugriff zu ermöglichen.
mount /dev/sdXZ /mnt/boot/efi
für i in /dev /dev /dev/pts /proc /sys; sudo mount -B $i /mnt/$i; fertig

cp /etc/resolv.conf /mnt/etc/etc/
modprobe efivars
Schließlich betreten wir die Chroot-Umgebung und installieren Grub so, dass es für ein Wechseldatenträger geeignet ist (siehe den ersten Einspruch oben).
sudo chroot /mnt
grub-install -d /usr/lib/grub/x86_64-efi –efi-directory=/boot/efi/ –entfernbar /dev/sdX
Jetzt ist Ihre externe Festplatte bootfähig. Starten Sie Ihren Computer neu, wählen Sie ihn aus der Bootmedienauswahl Ihres UEFI-BIOS und schon sind Sie fertig!