Dieses Tutorial zeigt Ihnen, wie Sie die Debian-ISO-Datei mit dem GRUB2-Bootloader direkt von der Festplatte booten, sodass Sie keine Live-CD oder Live-USB erstellen müssen. Heutzutage ist es super einfach, einen Linux-Live-USB zu erstellen, Sie können dies mit einem grafischen Tool oder über die Befehlszeile tun. Aber was ist, wenn Sie kein USB-Flash-Laufwerk zur Hand haben oder Debian auf Ihrem USB-Flash-Laufwerk installieren möchten?
GRUB zur Rettung
Der GRUB2-Bootloader kann die Linux-ISO-Image-Datei direkt von Ihrer Festplatte booten.
- GRUB2 unterstützt viele Dateisysteme, einschließlich, aber nicht beschränkt auf ext4, HFS+ und NTFS, was bedeutet, dass Sie Ihre ISO-Datei auf jedem dieser Dateisysteme ablegen können.
- GRUB 2 kann Dateien direkt von LVM- und RAID-Geräten lesen.
- GRUB2 hat auch Netzwerkunterstützung. Sie können OS-Images aus einem Netzwerk laden, indem Sie TFTP verwenden Protokoll.
In diesem Tutorial werden wir nur über das Booten einer ISO-Datei von einer lokalen Festplatte sprechen. Um diese Funktion nutzen zu können, muss eine Linux-Distribution mit GRUB2 als Bootloader bereits auf Ihrem Computer installiert sein.
Wie man eine Debian-ISO-Datei mit GRUB2 direkt von der Festplatte bootet
Starten Sie zuerst Ihren Computer und booten Sie Ihre vorhandene Linux-Distribution. Laden Sie die Debian-ISO herunter. Sie können entweder das Netinstall-ISO oder das Live-CD-ISO verwenden. Außerdem müssen Sie hd-media/initrd.gz
und hd-media/vmlinuz
von dieser Seite.
- initrd.gz ist die anfängliche Ramdisk.
- vmlinuz ist der Linux-Kernel.
Wenn Sie ein grafisches Installationsprogramm wünschen, mit dem Sie mit der Maus klicken können, laden Sie hd-media/gtk/initrd.gz
und hd-media/gtk/vmlinuz
stattdessen. Legen Sie diese drei Dateien in dasselbe Verzeichnis. Öffnen Sie als Nächstes ein Terminalfenster und bearbeiten Sie /etc/grub.d/40_custom
Datei mit einem Texteditor wie nano.
sudo nano /etc/grub.d/40_custom
In dieser Datei können wir dem GRUB-Startmenü benutzerdefinierte Einträge hinzufügen. In diesem Fall möchten wir einen Eintrag zum Booten einer Debian-ISO-Datei hinzufügen. Das Folgende ist ein Beispiel.
menuentry "Debian.4 net-install.iso" { insmod ext2 set root='(hd0,2)' linux /linuxbabe/vmlinuz initrd /linuxbabe/initrd.gz }
Erklärung:
- Menüeintrag :Dieser Eintrag wird im GRUB2-Startmenü angezeigt. Sie können es benennen, wie Sie möchten.
- Der insmod Befehl fügt ein Modul ein. Da diese drei Dateien auf meiner Home-Partition gespeichert sind, ist die Datei
ext2
Modul benötigt wird. Wenn sich diese Dateien auf einer NTFS-Partition befinden, benötigen Sieinsmod ntfs
stattdessen. - Das Set Befehl legt die zweite Partition meiner ersten Festplatte als Stammverzeichnis fest. (Meine Home-Partition ist die zweite Partition meiner ersten Festplatte.)
- Der
linux
Der Befehl lädt einen Linux-Kernel aus dem angegebenen Pfad.vmlinuz
bedeutet eine komprimierte ausführbare Linux-Kernel-Datei, die virtuellen Speicher unterstützt. Der Buchstabe „z“ zeigt an, dass es komprimiert ist. - Der
initrd
Der Befehl lädt eine anfängliche Ramdisk aus dem angegebenen Pfad. Es kann nur nachlinux
verwendet werden Befehl ausgeführt wurde. Die anfängliche Ramdisk ist ein minimales Root-Dateisystem, das in den RAM eingebunden wird.
Beachten Sie, dass GRUB dies nicht tut IDE von SCSI unterscheiden. Unter Linux /dev/hda
bezieht sich auf die erste IDE-Festplatte und /dev/sda
bezieht sich auf die erste SCSI- oder SATA-Festplatte. Wenn Sie eine NMVe-SSD verwenden, heißt sie möglicherweise /dev/nvme0n1
, /dev/nvme1n1
und so weiter. Aber in GRUB wird die erste Festplatte immer als hd0
bezeichnet , unabhängig vom Schnittstellentyp. Beachten Sie auch, dass Partitionsnummern in GRUB bei 1 beginnen, nicht bei 0.
Um Ihre Partitionsnummer zu überprüfen, können Sie lsblk
ausführen oder sudo parted -l
Befehl im Terminalfenster. Sie können es auch im Gparted-Partitionseditor sehen, der mit dem folgenden Befehl installiert werden kann.
sudo apt install gparted
Auf meinem Computer vmlinuz
,initrd.gz
und das Debian-ISO-Image werden unter /home/linuxbabe/
gespeichert Verzeichnis, aber ich habe eine separate Home-Partition und sie ist in der GRUB-Konfigurationsdatei als root festgelegt, daher sollte der Pfad mit /linuxbabe
beginnen , nicht /home/linuxbabe/
.
Speichern und schließen Sie die Datei. Aktualisieren Sie dann das GRUB-Startmenü mit dem folgenden Befehl:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Auf Fedora lautet der auszuführende Befehl:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Auf einer Debian-basierten Linux-Distribution können Sie den folgenden Befehl verwenden, um das GRUB-Startmenü zu aktualisieren.
sudo update-grub
Sie können der Ausgabe entnehmen, dass GRUB einen neuen Menüeintrag hinzugefügt hat. (Neuere Versionen von GRUB zeigen diese Meldung nicht an. )
Starten Sie nun Ihren Computer neu. Im GRUB-Startmenü sehen Sie den gerade hinzugefügten Menüeintrag. Beachten Sie, dass Sie möglicherweise die rechte Umschalttaste drücken müssen, um das GRUB-Startmenü aufzurufen, wenn der Computer neu gestartet wird.
Wählen Sie es aus und drücken Sie die Eingabetaste. Der Linux-Kernel (vmlinuz
) und anfängliche RAM-Disk (intird.gz
) wird in den Speicher geladen. Dann wird eine zusätzliche Installer-Komponente aus dem Debian-ISO-Image geladen.
Vermeidung der üblichen Fallstricke
Möglicherweise haben Sie den folgenden Code verwendet, um Ubuntu ISO von der Festplatte zu booten, und jetzt versuchen Sie, dieselbe Syntax für Debian ISO zu verwenden.
menuentry "ubuntu-16.04-desktop-amd64.iso" { set isofile="/home/username/Downloads/ubuntu-16.04-desktop-amd64.iso" loopback loop (hd0,1)/$isofile linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile quiet noeject nopromt spalsh -- initrd (loop)/casper/initrd.lz }
Es wird nicht funktionieren. Wenn Sie diese Syntax verwenden, erhalten Sie nach dem Booten der Debian-ISO die folgende Fehlermeldung.
No common CD-ROM drive was detected.
oder
No medium found containing a live file system.
Der Grund dafür ist, dass die Ubuntu-Methode den Linux-Kernel und die anfängliche Ramdisk im ISO-Image verwendet, aber Sie müssen hd-media/vmlinuz
verwenden und hd-media/initrd.gz
um das Debian-Installationsprogramm von der Festplatte zu booten. Das Debian-ISO-Image ist die CD-ROM/Medium, die vom Debian-Installer benötigt wird.
Ein paar andere Tipps
Wenn sich die drei Dateien im Verzeichnis der obersten Ebene einer Festplattenpartition befinden, lassen Sie den Schrägstrich am Anfang nicht aus, wenn Sie den Pfad zu vmlinuz
angeben und intird.gz
. Mit anderen Worten:Sie benötigen
linux /vmlinuz initrd /initrd.gz
statt
linux vmlinuz initrd initrd.gz
Wenn sich die drei Dateien auf einer erweiterten Partition der MBR-Festplatte befinden, beginnt die Partitionsnummer bei 5 statt bei 1. Beispielsweise wird die erste logische Partition innerhalb der erweiterten Partition als 5 nummeriert; Die zweite logische Partition innerhalb der erweiterten Partition wird mit 6 nummeriert.
Wenn Sie eine SATA-Festplatte und eine NVMe-SSD in Ihrem Computer haben, ist die SATA-Festplatte die erste und die NVMe-SSD die zweite. Dasselbe gilt für ein USB-Laufwerk und eine NVMe-SSD.
Ich hoffe, dieses Tutorial hat Ihnen geholfen, das Debian-ISO-Image von der Festplatte zu booten, indem Sie den GRUB2-Bootloader verwenden. Wenn Sie diesen Beitrag nützlich fanden, abonnieren Sie wie immer unseren kostenlosen Newsletter, um weitere Tipps und Tricks zu erhalten.