it-swarm.com.de

Ubuntu auf einem USB-Stick - Booten Sie sowohl im BIOS- als auch im UEFI-Modus

Ich möchte, dass Ubuntu auf einem USB-Stick installiert ist, den ich (fast) an jeden Computer anschließen und von dort booten kann und den ich (fast) normal verwenden kann, als wäre er auf diesem Computer installiert. Ich möchte auch eine Datenpartition haben, die von (fast) jedem Computer verwendet werden kann, hauptsächlich zum Speichern einiger portabler Apps, nur für den Fall.


Mir wurde gesagt, dass ich, wenn ich Ubuntu im BIOS-Modus installiere, nicht von einem Computer im UEFI-Modus booten kann und umgekehrt.

Da ich auf jedem Computer booten möchte, ist das ein großes Problem.

Was kann ich tun, um in meinem Fall auf Computern im BIOS- oder UEFI-Modus zu booten?

Ich habe nach Lösungen gesucht, aber die meisten von ihnen sind für spezielle Anforderungen bestimmt, die sich von meinen unterscheiden. Daher ist es schwierig, die Mindestanforderungen aus diesen Lösungen zu ermitteln, um sie auf mein Problem anzuwenden.

Gibt es eine einfache, "saubere" und recht allgemeine Lösung für dieses Problem?

Ich würde einige Erklärungen über die Gründe begrüßen, warum eine bestimmte Lösung gut ist oder ein bestimmter Schritt erforderlich ist.


Mein aktuelles Setup:

  • USB-Stick: SanDisk Ultra Fit (32 Go)
  • Betriebssystem: Xubuntu 16.04 i386
  • installation: Vollinstallation (von einem mit Rufus erstellten Live-USB)
  • treiber: keine proprietären
  • dateisysteme:
    • partitionstabelle: GPT
      • 2: ESP , /boot/efi, 128 Mio, FAT32, [boot, esp]
      • 3: ABP , 128 Mio, HFS +
      • 4: BBP , 2 Mio, [bios_grub]
      • 5: Swap, 512 Mio
      • 6: root , /, 24 Gio, ext4, defaults,errors=remount-ro,lazytime,commit=60
      • 1: Daten , /media/data, ~ 3.6 Gio, FAT32, defaults,lazytime,check=strict
    • RAM:
      • /tmp, tmpfs, defaults,nosuid,nodev,noexec,mode=1777
  • wechsel:
    • vm.swappiness=5
    • swap-Partition: 512 Mio, für den Notfall
    • zRAM
    • auslagerungsdateien:
      • /var/swap/hib.swp: Gleiche Größe wie der RAM für den Ruhezustand, der beim Start von einem Skript generiert wird
      • /var/swap/opt.swp: Wird bei Bedarf von einem Skript generiert
  • überprovisionierung: ~ 5,6%
    • eingebaut: ~ 1,2 Gio (anscheinend)
    • hinzugefügt: 512 Mio
  • scheduler: deadline
4
CidTori

NB: Hier stelle ich die manuelle Vorgehensweise vor. Es ist etwas komplizierter (kein unmöglicher Gedanke), aber Sie können genau steuern, was Sie wollen/brauchen. Wenn Sie nichts verstehen, ist die Verwendung einer Software wie MultiSystem möglicherweise die bessere Lösung für Sie.

Es gibt zwei Möglichkeiten, einen solchen USB-Schlüssel zu erstellen. Sie können eine MDOS/MBR-Partitionstabelle oder eine GPT-Partitionstabelle verwenden. Beide haben Vor- und Nachteile. Ich werde versuchen, zuerst die mdos-Version zu beschreiben. Wenn ich mehr Zeit habe, werde ich möglicherweise später auf die GPT-Version zurückgreifen.

mdos/MBR-Partitionstabelle

Stellen Sie zunächst sicher, dass alle Daten gesichert sind. Diese Vorgänge können gefährlich sein, wenn Sie nicht wissen, was Sie tun, und Ihre Festplatte löschen, wenn Sie fehlerhafte Manipulationen vornehmen. Stellen Sie daher sicher, dass Sie wissen, was Sie tun, bevor Sie einen Befehl eingeben.

Schritt 1: Finden Sie Ihr USB-Gerät

Verwenden Sie den Befehl

lsblk

um den Namen Ihres USB-Geräts zu finden. Sie können zum Beispiel lsblk ausführen, Ihren Schlüssel einstecken und noch einmal lsblk ausführen, um zu sehen, was sich geändert hat. Das angezeigte Gerät ist Ihr Schlüssel und wird mit /dev/sdX gekennzeichnet.

Schritt 2: Erstellen Sie die Partitionen

Sie können ein beliebiges Programm verwenden: gparted, fdisk, cfdisk (ein Befehlszeilentool für fdisk) ... Führen Sie dann die folgenden Vorgänge aus

  • Starten Sie zuerst das Programm (Sudo gparted oder Sudo fdisk /dev/sdX je nach gewähltem Programm)
  • Setzen Sie dann Ihr Gerät zurück, um eine msdos -Partitionstabelle zu haben (in gparted befindet sich diese in "Gerät/Neue Partitionstabelle erstellen" mit fdisk Typ o.
  • Dann erstellen Sie drei Partitionen. Das erste ist in FAT32, es wird die Partition von Daten sein (es könnte auch NTFS, ext oder ein anderes Dateisystem sein), das zweite ist eine EFI-Partition (basierend auf FAT) und muss bootfähig sein und ungefähr 150 MB groß sein Die letzte Partition ist die Partition mit der ISO und muss bootfähig und in FAT32 sein (wenn Sie ext2 verwenden, booten Sie, können aber keine Persistenz verwenden). Hier ist, was Sie am Ende des Prozesses haben möchten (bitte beachten Sie die Flaggen (drapeau im Bild), sie sind wichtig):

gparted result

Wenn Sie sie mit fdisk erstellen möchten, sollten Sie Folgendes haben:

$ Sudo fdisk -l /dev/sdc
Disque /dev/sdc : 14,3 GiB, 15376000000 octets, 30031250 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x2d844503

Périphérique Amorçage    Début      Fin Secteurs Taille Id Type
/dev/sdc1                 2048 14682111 14680064     7G  b W95 FAT32
/dev/sdc2    *        14682112 14989311   307200   150M ef EFI (FAT-12/16/32)
/dev/sdc3    *        14989312 30031249 15041938   7,2G  b W95 FAT32

Gehen Sie dazu folgendermaßen vor:

Sudo fdisk /dev/sdX
o

n
p
1
<Enter>
+7G     # Or any size you want, just be sure to let arount 2G at the end of the device
t
b

n
p
2
<Enter>
+150M
t
ef

n
p
3
<Enter>
<Enter>
t
b

w

Sudo mkfs.fat -F32 /dev/sdX1
Sudo mkfs.vfat /dev/sdX2
Sudo mkfs.fat -F32 /dev/sdX3

Schritt 3: Hängen Sie die Partitionen ein

Nun montieren Sie sie, um darauf zu schreiben

mkdir /tmp/usb{2,3}
Sudo mount /dev/sdX2 /tmp/usb2/
Sudo mount /dev/sdX3 /tmp/usb3/

Schritt 4: Installieren Sie grub auf den beiden Partitionen (EFI und Nicht-EFI)

Dann müssen Sie grub auf den beiden Partitionen installieren. Stellen Sie sicher, dass grub installiert ist, und führen Sie dann Folgendes aus:

Sudo grub-install -v --no-floppy --boot-directory=/tmp/usb3 --target=i386-pc /dev/sdX
Sudo grub-install -v --no-floppy --boot-directory=/tmp/usb2 --efi-directory=/tmp/usb2 --removable --target=x86_64-efi /dev/sdX

Schritt 5: Kopieren Sie die ISO-Datei und konfigurieren Sie grub

Kopieren Sie dann Ihre ISO-Datei in den folgenden Ordner:

Sudo cp <your iso file> /tmp/usb3/linux-iso

und lege die Grub-Konfiguration in die beiden Grub-Konfigurationen /tmp/usb2/grub/grub.cfg und /tmp/usb3/grub/grub.cfg (Hinweis: es kann grub2/grub.cfg sein, abhängig von deiner Grub-Version)

insmod loopback
insmod iso9660

menuentry 'XUbuntu 16.04 "Xenial Xerus" - AMD64' {
          set isofile="/linux-iso/xubuntu-16.04.1-desktop-AMD64.iso"
          search --no-floppy --set -f $isofile
          loopback loop $isofile
          linux  (loop)/casper/vmlinuz.efi locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$isofile boot=casper file=/cdrom/preseed/ubuntu.seed noprompt ro quiet splash noeject --
          initrd (loop)/casper/initrd.lz
} 

NB: Sie sollten diese Datei so bearbeiten, dass sie mit der guten ISO-Datei übereinstimmt. Hier nehmen wir an, dass wir die Datei in /tmp/usb3/linux-iso/xubuntu-16.04.1-desktop-AMD64.iso einfügen.

Starten Sie neu und versuchen Sie es im UEFI- und Nicht-UEFI-Modus: Es sollte funktionieren, aber Sie sollten noch keine Persistenz haben!

Schritt 6: Fügen Sie einzelne Persistenz hinzu

Das Hinzufügen von Persistenz ist sehr einfach. Die Idee ist, auf der 3. Partition (tatsächlich würde jede FAT32-Partition akzeptiert) eine leere Datei casper-rw zu erstellen, die ein ext2-Dateisystem enthält. Es wird dann über der ISO-Datei positioniert, sodass die Datei casper-rw diese Änderungen aufzeichnet, wenn das System geändert wird. Wenn Sie nur den privaten Bereich aufzeichnen möchten, führen Sie genau die gleichen Schritte aus, jedoch mit dem Dateinamen home-rw anstelle von casper-rw (dies kann nützlich sein, wenn Sie nur auf die Dokumentdaten achten und es vorziehen um die nachstehenden Probleme mit voller Ausdauer zu vermeiden). Beachten Sie schließlich, dass Sie anstelle einer Datei einfach eine Partition in ext2 erstellen können, deren Bezeichnung casper-rw oder home-rw lautet und die genau das gleiche Ergebnis liefert, mit der Ausnahme, dass Sie mehr als haben können 4 GB an Modifikationen (maximale Größe im FAT32-System).

Um die Datei zu erstellen, führen Sie einfach Folgendes aus:

Sudo dd if=/dev/zero of=/mnt/usb3/casper-rw bs=1M count=512

(hier sind es 512M, aber Sie können die Größe der Daten bis zu 4G ändern)

und füge persistent in die Zeile linux ... in den Dateien /mnt/usb{2,3}/grub/grub.cfg ein (ändere die beiden Dateien). Es sollte so aussehen:

insmod loopback
insmod iso9660

menuentry 'XUbuntu persistent 16.04 "Xenial Xerus" - AMD64' {
          set isofile="/linux-iso/xubuntu-16.04.1-desktop-AMD64.iso"
          search --no-floppy --set -f $isofile
          loopback loop $isofile
          linux  (loop)/casper/vmlinuz.efi locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$isofile boot=casper persistent file=/cdrom/preseed/ubuntu.seed noprompt ro quiet splash noeject --
          initrd (loop)/casper/initrd.lz
}

Jetzt neu starten: Sie sollten Ausdauer haben! Sie können auch persistente und nicht persistente Dateien wie folgt mischen:

insmod loopback
insmod iso9660

menuentry 'XUbuntu 16.04 "Xenial Xerus" - AMD64' {
          set isofile="/linux-iso/xubuntu-16.04.1-desktop-AMD64.iso"
          search --no-floppy --set -f $isofile
          loopback loop $isofile
          linux  (loop)/casper/vmlinuz.efi locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$isofile boot=casper file=/cdrom/preseed/ubuntu.seed noprompt ro quiet splash noeject --
          initrd (loop)/casper/initrd.lz
}
menuentry 'XUbuntu persistent 16.04 "Xenial Xerus" - AMD64' {
          set isofile="/linux-iso/xubuntu-16.04.1-desktop-AMD64.iso"
          search --no-floppy --set -f $isofile
          loopback loop $isofile
          linux  (loop)/casper/vmlinuz.efi locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$isofile boot=casper persistent file=/cdrom/preseed/ubuntu.seed noprompt ro quiet splash noeject --
          initrd (loop)/casper/initrd.lz
}

Multiple Persistenz

Momentan haben alle Betriebssysteme im Schlüssel dieselbe Persistenzdatei. Und wenn es sich um einen casper-rw handelt, der gemeinsam genutzt wird, kann dies alles beschädigen (die Daten in einem Betriebssystem haben nichts mit den Daten im anderen Betriebssystem zu tun). Um eine persistente Datei für jedes System zu haben, ist es sehr einfach, die Datei in einem bestimmten Ordner abzulegen, zum Beispiel persist/xubuntu:

mkdir /mnt/usb3/persist/xubuntu/
Sudo dd if=/dev/zero of=/mnt/usb3/persist/xubuntu/casper-rw bs=1M count=512

und füge persistent persistent-path=/persist/xubuntu in die grub.cfg Dateien ein:

insmod loopback
insmod iso9660

menuentry 'XUbuntu persistent 16.04 "Xenial Xerus" - AMD64' {
          set isofile="/linux-iso/xubuntu-16.04.1-desktop-AMD64.iso"
          search --no-floppy --set -f $isofile
          loopback loop $isofile
          linux  (loop)/casper/vmlinuz.efi locale=fr_FR bootkbd=fr console-setup/layoutcode=fr iso-scan/filename=$isofile boot=casper persistent persistent-path=/persist/xubuntu file=/cdrom/preseed/ubuntu.seed noprompt ro quiet splash noeject --
          initrd (loop)/casper/initrd.lz
}

Sie können auch feststellen, dass ich keine Möglichkeit gefunden habe, eine casper-rw -Partition für jedes Betriebssystem zu haben, sodass ich nicht sehe, wie mehrere Persistenzen UND Persistenzen von mehr als 4 GB für das gesamte Betriebssystem verwendet werden können. Wenn jemand eine Idee hat, würde ich mich freuen, davon zu hören. Vielleicht könnte die Partitionsmontage dieses Problem vorübergehend lösen?

Nachteil der Ausdauer

Wenn Sie die Persistenz verwenden, sollten Sie sich bewusst sein, dass ein Upgrade gefährlich sein kann. Es könnte in der Tat Ihr System beschädigen, wenn die Änderungen den Kernel berühren. Vermeiden Sie es daher, zu viel davon zu tun. Außerdem passt es manchmal nicht gut, wenn Sie den Computer wechseln. Einige Leute erklären, dass sie das Internet verloren haben, als sich die Internetkarte geändert hat. Wenn Sie Ihr System aktualisieren möchten, sollten Sie in Betracht ziehen, es direkt auf dem USB-Schlüssel zu installieren (z. B. wenn der USB-Schlüssel eine Festplatte war). Diese Methode kann jedoch fehlschlagen, wenn Sie Ihren Schlüssel auf einem Computer testen, der proprietäre Software benötigt, die keine ist im installierten Betriebssystem enthalten. Wenn jemand eine Lösung hat, die diese Nachteile umgeht, würde ich mich freuen, davon zu hören.

Quellen

Um grub so zu konfigurieren, dass es mit anderen Systemen übereinstimmt, oder wenn Sie GPT anstelle von MBR verwenden möchten, sind möglicherweise die folgenden Links für Sie von Interesse:

Viel Spaß und zögern Sie nicht zu fragen, wenn Sie Fragen haben.

5
tobiasBora

Vollständige Installation auf USB - BIOS/UEFI

Mkusb ist eine großartige Basis für ein Full Install-USB-Laufwerk, das sowohl vom BIOS als auch von UEFI aus gestartet werden kann:

  • Verwenden Sie mkusb , um ein Live-System auf dem USB-Installationsprogramm (2 GB oder mehr) zu erstellen.

  • Verwenden Sie mkusb , um ein beständiges System auf dem Ziel-USB-Stick mit 128 GB mit Standardeinstellungen und einer Dauer von ~ 25 GB zu erstellen. .

enter image description here

  • Sobald mkusb fertig ist, öffnen Sie GParted und löschen Sie sdx4, die ISO9660-Partition, und erweitern Sie sdx5 in den wiederhergestellten Speicherplatz, wobei sdx der Gerätename des Ziellaufwerks ist.

  • Erstellen Sie bei Bedarf eine zusätzliche ext4-Partition sdx6 für/home.

enter image description here

  • Ziehen Sie den Netzstecker oder entfernen Sie die Festplatte, bevor Sie fortfahren (optional, aber empfohlen, dringend empfohlen im UEFI-Modus).

  • Boot Installer-Laufwerk, wählen Sie Try.

  • Legen Sie das Ziellaufwerk ein

  • Ubuntu installieren ...

  • Wählen Sie "etwas anderes".

  • Wählen Sie sdx5 (auf dem Ziellaufwerk) und klicken Sie auf Ändern.

enter image description here

  • Wählen Sie Verwenden als: ext4, Format und Einhängepunkt: /.

Berühren Sie keine anderen Partitionen (es sei denn, Sie fügen sdx6 eine/home-Partition hinzu).

  • Wählen Sie sdx5 als Gerät für die Bootloader-Installation .

  • Installation abschließen.

  • Schneiden Sie die Datei grub.cfg aus sdx5/boot/grub aus und fügen Sie sie in sdx3/boot/grub ein, wobei Sie die vorhandene Datei grub.cfg überschreiben.

  • Booten Sie das Ziellaufwerk und führen Sie Sudo update-grub aus, um alle Laufwerke zum Startmenü hinzuzufügen.

  • Installieren Sie bei Installationen vor 18.04 keine geeigneten Treiber (z. B. Nvidia).

1
C.S.Cameron