27.02.2020, 15:06 UTC+1

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

1

28.01.2020, 21:39

Wie läuft der Bootvorgang ab wenn Knoppix auf externer Festplatte installiert ist / welcher Bootmanager wird verwendet?

Hallo!

Wenn man Knoppix 8.6.1 mittels Flash Knoppix auf einer externen
USB-Festplatte verwendet, dann kann man Knoppix von dieser
Festplatte booten.

Und zwar sowohl mit UEFI-Maschinen als auch mit BIOS-Maschinen.

Mich interessiert,
- wie durch FlashKnoppix die Festplatte partitioniert wird (MBR-
Schema oder GPT-Schema oder MBR/GPT-Hybrid).
- wie der Bootprozess bei BIOS-Maschinen abläuft.
- wie der Bootprozess bei UEFI-Maschinen abläuft.
- was für Bootmanager da ggfs verwendet werden (GRUB /
SysLinux / ???), und gfs, wo/wie sie installiert sind.

Bei BIOS/MBR-Maschinen hat man ja im Prinzip folgenden Ablauf:

Der Master Boot Record der laut BIOS-Bootreihenfolge zu bootenden
Festplatte enthält unter anderem die Partitionstabelle und
440 Byte Bootstrap-Code.
Normalerweise dient der Bootstrap-Code des MBR dazu, den Code im
Bootsektor der aktiven Partition zu laden.
Der Code im Bootsektor der aktiven Partition wiederum führt die Datei
mit dem Bootloader für das Betriebssystem auf dieser Partition aus.
Der Bootstrap-Code des MBR und/oder der Code in den Bootsektoren
der einzelnen Partitionen lässt sich so gestalten, dass
Bootmanager geladen werden, die das Auswählen zwischen
verschiedenen Betriebssystemen ermöglichen.

Bei UEFI-Maschinen, die nicht im Legacy-Modus booten, gibt es für
Live-Systeme auf externer Festplatte, die in der Regel nicht im
UEFI-Bootmanager der Firmware eingetragen sind, folgenden
"Fallback-Ablauf":

Es werden der Reihe nach, sofern vorhanden, die /EFI/BOOT/-
Verzeichnisse der EFI-Systempartitionen dieser Festplatte
durchsucht, um eine Datei zu finden, die den zur
Computerplattform passenden Namen
BOOT⟨Rechnerarchitektur⟩.EFI
hat.
Für x86-64 PCs also zB BOOTx64.EFI.
Für x86-32 PCs also zB BOOTIA32.EFI.
Diese .EFI-Datei ist dann der Ausgangspunkt für den weiteren
Bootvorgang, etwa das Laden eines Betriebssystems auf einer
anderen Partition dieser Festplatte, oder das Laden eines
Bootmanagers um zwischen mehreren Betriebssystemen auf der
Festplatte auswählen zu können.

Wie läuft das bei Knoppix?
Wo/wie sind evtl Bootmanager installiert.
Welche Dateien sind die Bootloader für das Betriebssystem?

In welche(n) Bootmanager muss ich mich einarbeiten/einlesen wenn
ich eine externe Festplattte basteln möchte, von der ich sowohl
mit BIOS-Maschinen als auch mit UEFI-Maschinen booten kann, und
zwar so, dass nicht sofort Knoppix gebootet wird, sondern erst
ein Bootmanager gelden wird, der mir die Auswahl zwischen
verschiedenen Betriebssystemen auf verschiedenen Partitionen
dieser Festplatte ermöglicht, sodass ich in einer weiteren
Partition dieser Festplatte zB Clonezilla installieren und dann
beim Booten von dieser Festplatte auswählen kann, ob nun
Knoppix oder Clonezilla gebootet werden soll?

Mit Dank und freundlichem Gruß

IchHabNeFrage14

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »IchHabNeFrage14« (30.01.2020, 23:25)


pit234a

Fortgeschrittener

2

29.01.2020, 15:59

Das sind viele Fragen und ich fange mal mit meiner Meinung an, was ja dann keine wirkliche Antwort ist.
Knoppix ist ein Live-System und sollte auch so verstanden werden. Man kann damit arbeiten. Es hat aber keine Aktualisierungsmechanismen und deshalb würde ich es nicht als Arbeitssystem einsetzen. Als Live-System ist es in erster Linie eine Demo dafür, was Linux so kann. Ein Neuling kann damit spielen und erste Erfahrungen mit verschiedenen Oberflächen und Anwendungen machen. Deshalb wimmelt Knoppix nur so vor Anwendungen. Einige davon können auch eingesetzt werden, um im Bedarfsfall an einem Toten oder infizierten System noch zu arbeiten und vielleicht noch was zu retten. Dieser Einsatzfall wird oft als wichtig betrachtet, ist es aber tatsächlich nicht, weil wir alle ja von unseren Systemen immer Backups machen und dann darauf zurückgreifen können.
Also, ja, es macht Sinn sich ein Knoppix auf einen externen Datenträger zu legen und in der Not oder zur Gaudi auch mal zu booten.
Es macht keinen Sinn, viele verschiedene Systeme auf einer externen (oder internen) Platte zu pflegen, schon gar nicht, wenn es eh alles GNU/Linux-Systeme sind. Es gibt für Knoppix (Debian) so viele Anwendungen, das ich mir nicht vorstellen kann, wozu ich noch ein weiteres System haben wollte.

Nun zu einigen Antworten:
Knoppix besteht zunächst aus mehreren festen Images. 8.6.1 hat derzeit drei derartige Images. Darin liegt gepackt das komplette System. Drum herum wird eine Bootmagie gelegt, die auf DVD ISOLINUX ist und auf anderen Datenträgern SYSLINUX. SYSLINUX bietet den Bootloader und die Konfigurationsdateien hierfür. Beim Booten hat man bereits die Auswahl, ein anderes System als Knoppix zu Booten, nämlich Memtest und FreeDOS. Das ist in der syslinux.conf beschrieben und hier könnte man dann sicher auch ein anderes System booten.
Syslinux wird aus dem MBR aufgerufen. KNOPIIX nutzt das MBR-Schema, es geht sowohl auf 32Bit als 64Bit und auf BIOS und UEFI.
Damit das geht, partitioniert es den Datenträger in FAT und legt dann hier die EFI/BOOT Dateien an. Es nutzt also keine eigene EFI-Partition, sondern eben die erste Partition auf dem Medium und diese ist in FAT formatiert.
Optional nutzt KNOPPIX eine zweite Partition für eine sogenannte Overlay-Partition. Darin kommt dann das Heimverzeichnis des Users knoppix sowie alle evtl zusätzlich installierten Programme. Die Overlay ist default in REISERFS formatiert und kann verschlüsselt werden.

Grundsätzlich ist also kein Platz für ein weiteres System vorhanden. Kann aber mittels gpart geschaffen werden. Dann bräuchte man wenigstens eine weitere Partition und evtl eine zweite zusätzliche für SWAP.

Wenn KNOPPIX bootet, startet es erst ein "Vorab"-System, aus dem dann erst mal der Speicher reserviert und eine RAM-Disk als SWAP angelegt wird. Dann führt es die einzelnen Teile von Knoppix, die drei Images und die Overlay-Partition zusammen und bootet das eigentliche System. Unterschlagen habe ich die spezielle HW-Erkennung, die Knoppix während dieses Prozesses ebenfalls durchführt.

Wie gesagt nutzt Knoppix SYSLINUX und damit sollte am einfachsten ein weiteres System machbar sein. Der EFI-Loader kann sicher neben dem Loader für Knoppix installiert werden.

Meine eigenen Versuche, Knoppix aus einem Grub2 zu starten, schlugen bislang alle fehl. Ich habe nicht viel Energie darauf verwendet. Es gibt Beiträge im Netz, die beschreiben, wie Grub2 zum Starten von Live-Systemen genutzt werden kann. Es sollte also eigentlich möglich sein, auch diesen Weg zu gehen. Nur, mir ist es eben noch nicht gelungen.

Beiträge: 750

Geschlecht: Männlich

3

29.01.2020, 18:18

Hallo.
Deine Grundidee BIOS oder UEFI ist nicht falsch. Der Bootmanager wird aber nach dem BIOS gestartet bei Knoppix Flash gibt es keinen.
oder das Laden eines
Bootmanagers um zwischen mehreren Betriebssystemen auf der
Festplatte auswählen zu können.

Diese Idee hatte ich auch auf meinem USB-Stick aber bei der Flash Installation gibt es keinen Bootmanager grub.cfg

Quellcode

1
2
3
4
knoppix@Microknoppix:~$ su
root@Microknoppix:/home/knoppix# sudo update-grub
Searching for GRUB installation directory ... found: /boot/grub
root@Microknoppix:/home/knoppix#

Auf der FAT32 Partition ist im Ordner /boot/syslinux die grub.exe
Ein reguläres Boot Menü gibt es bei der Flash Installation nicht.

4

30.01.2020, 01:11

Erst mal ganz herzlichen Dank, pit234a, für die Zusammenstellung der Informationen um die ich gefragt hatte. In dieser Zusammenstellung steckt wohl viel Arbeit.
Also, ja, es macht Sinn sich ein Knoppix auf einen externen Datenträger zu legen und in der Not oder zur Gaudi auch mal zu booten.
Es macht keinen Sinn, viele verschiedene Systeme auf einer externen (oder internen) Platte zu pflegen, schon gar nicht, wenn es eh alles GNU/Linux-Systeme sind. Es gibt für Knoppix (Debian) so viele Anwendungen, das ich mir nicht vorstellen kann, wozu ich noch ein weiteres System haben wollte.
Das eine weitere System, das ich haben möchte, ist Clonezilla.

Aus der Wikipedia:

Zitat

Clonezilla ist eine freie Software des taiwanischen National Center for High Performance Computing (NCHC) zum Herstellen von 1:1-Abbildern von PC-Festplatten.
Damit mache ich nämlich gerne Backup-Images meiner Computer auf externe Festplatten.

Was ich in diesem Zusammenhang nett finde, ist, dass sich diese Clonezilla-Backup-Images recht unkompliziert in .iso-Images umwandeln lassen, welche wiederum in KNOPPIX gemountet werden können, sodass man zB mit dem PCManFM-Dateimanager bequem darin herumsuchen kann....
Nun zu einigen Antworten: [...] auf DVD ISOLINUX [...] auf anderen Datenträgern SYSLINUX. SYSLINUX bietet den Bootloader und die Konfigurationsdateien hierfür. Beim Booten hat man bereits die Auswahl, ein anderes System als Knoppix zu Booten, nämlich Memtest und FreeDOS. Das ist in der syslinux.conf beschrieben und hier könnte man dann sicher auch ein anderes System booten.
Syslinux wird aus dem MBR aufgerufen. KNOPIIX nutzt das MBR-Schema, es geht sowohl auf 32Bit als 64Bit und auf BIOS und UEFI.
Damit das geht, partitioniert es den Datenträger in FAT und legt dann hier die EFI/BOOT Dateien an. Es nutzt also keine eigene EFI-Partition, sondern eben die erste Partition auf dem Medium und diese ist in FAT formatiert.
Optional nutzt KNOPPIX eine zweite Partition für eine sogenannte Overlay-Partition. Darin kommt dann das Heimverzeichnis des Users knoppix sowie alle evtl zusätzlich installierten Programme. Die Overlay ist default in REISERFS formatiert und kann verschlüsselt werden.
Interessant zu wissen wäre, was die efi-Loader (die EFI/BOOT Dateien) tun.

Da ein echter MBR vorhanden ist, wäre es denkbar, dass beim UEFI-Boot die efi-Loader dafür sorgen, dass der im MBR gespeicherte Bootstrap-Code ausgeführt wird und dann der Bootvorgang weitergeht wie bei der Bootkombination BIOS/MBR... (So mache ich es manchmal wenn ich MBR/GPT-Hybrid-Systeme selbst zusammenschustere, bei denen der MBR kein "Schutz-MBR" sondern ein echter MBR ist. Bei BIOS-Systemen ist eh der MBR Ausgangspunkt für die weiteren Bootvorgänge. Bei UEFI-Systemen landet man dann auf dem Umweg über einen der efi-Loader beim MBR...)
Auch denkbar ist, dass beim UEFI-Boot der MBR komplett außen vor gelassen wird und die efi-Loader halt mehr oder weniger das selbe tun/initiieren, was auch der Bootstrap-Code im MBR oder der Code im Bootsektor einer Partition initiieren würde.
Grundsätzlich ist also kein Platz für ein weiteres System vorhanden. Kann aber mittels gpart geschaffen werden.
Beim Einrichten bzw beim Ausführen von FlashKnoppix kann man auch gleich angeben, wie groß die Overlay-Partition werden darf. Man kann da dann auch Platz für andere Systeme lassen, die man später einrichtet.
Es gibt Beiträge im Netz, die beschreiben, wie Grub2 zum Starten von Live-Systemen genutzt werden kann. Es sollte also eigentlich möglich sein, auch diesen Weg zu gehen. Nur, mir ist es eben noch nicht gelungen.
Grub und Grub2 kenne ich, habe ich aber nie für Live-Systeme genutzt.

Ich selbst habe, was selbstgebastelte Live-Systeme angeht, nur Erfahrung mit GRUB4DOS zu BIOS Zeiten. Und auch nur mit Systemen, die von nach El Torito-Standard bootbarn CD/DVD gebootet werden.

Mit GRUB4DOS kann man nämlich .iso-Images von Festplatten (mit MBR und allen Partitionen) als RAM-Disk in den Arbeitsspeicher legen und von dort booten lassen.
Also hab ich seinerzeit natürlich eine MBR-Festplatte mit genau einer Partition, die "aktiv" und bootbar war, und auf der MS-DOS 7 und ein paar nützliche unter MS-DOS 7 laufenden Tools installiert waren, hergenommen und daraus ein .iso-Image gemacht.

Dann habe ich auf einer anderen MBR-Festplatte nur GRUB4DOS installiert und dieses iso-Image dazugelegt und GRUB4DOS so konfiguriert, dass er dieses Image als RAM-Disk lädt und bootet.
Diese Geschichte wiederum habe ich wieder in ein .iso-Image gepackt.

Dieses .iso-Image wurde dann als Boot-Image mit Festplattenemulation Teil einer nach El-Torito-Standard bootbaren CD.

Das war ganz nett. Beim Booten von CD wurde dann das Festplatten-Image mit GRUB gebootet. GRUB wiederum hat dann die in diesem Image liegende .iso-Datei mit der DOS-Installation in die RAM-Disk gelegt und von da gebootet. Auf diese Weise konnte ich von CD ein DOS booten, das in der RAM-Disk und nicht in einem schreibgeschützten Datenträger lag und tatsächlich damit arbeiten anstatt "Schreibschutzfehler auf Datenträger..."-Fehlermeldungen zu genießen, wie sie hageln, wenn man die auf CD gebrannte und somit samt Inhalt nicht beschreibbare .iso-Datei einer DOS-Installation direkt als Festplattenemulation nach El Torito Standard booten lässt.

Das hat damals funktioniert. Auf einem Pentium 200MMX mit 256MB SD-RAM.
So lange ist das alles schon her. ;-)

Diese Boot-CD habe ich immer verwendet, um Rechner für die (Neu-)Installation von Windows 95 vorzubereiten, denn ich konnte damit Festplatten partitionieren und schon mal bootbar machen und die zu den jeweiligen Rechnern gehörenden DOS-CD-ROM-Treiber installieren und in config.sys und autoexec.bat eintragen. Freundlicherweise hat Windows 95 beim Installieren die installierten DOS-CD-ROM-Treiber nicht plattgemacht und auch die Einträge in autoexec.bat und config.sys belassen, und so hatte man dann schon beim ersten Hochfahren von Windows 95 sofort CD-ROM-Unterstützung, sodass dann die beim ersten Hochfahren immer erscheinende Aufforderung, die Windows 95-Installations-CD einzulegen, zur Abwechslung mal nicht damit endete, dass man zwar die CD ins Laufwerk legen konnte, Windows 95 aber nicht davon lesen konnte, weil die dazu nötigen Treiber noch nicht installiert waren und auch nicht von der Windows 95-Installations-CD, auf der sie sich befanden, installiert werden konnten. :rolleyes:

Damals hatte ich noch den Nerv, Stunden damit zuzubringen, Sachen wie die El-Torito-Spezifikationen zu lesen.
Heutzutage nicht mehr.



Ich werde die nächsten Abende mal versuchen, mir ein Organigramm der bei KNOPPIX auf USB-Festplatte möglichen Bootvorgänge zu basteln und dann schauen, ob ich genug Überblick bekomme, um herauszufinden, wie SYSLINUX geladen wird, und was SYSLINUX genau tut bzw für Möglichkeiten bietet, und wie man diese Dinge dann, statt mit SYSLINUX zB mit GRUB2 realisieren kann.

Ich denke, ich werde damit eine Weile beschäftigt sein.

Im (eher unwahrscheinlichen oder in ferner Zukunft liegenden) Erfolgsfall kann ich ja dann berichten, wie meine Bemühungen gediehen sind.

Nochmals vielen Dank für Deine Antwort und die Darin enthaltene Zusammenstellung an Informationen.

pit234a

Fortgeschrittener

5

30.01.2020, 20:18

Das eine weitere System, das ich haben möchte, ist Clonezilla.

Das habe ich nie benutzt. Ich sehe nicht, was es wirklich an einem PC besser kann, als wenn ich das von Hand mache. Also, an EINEM PC. Wenn ich natürlich mehrere habe, hat es definitiv Vorteile. Aber an einem einzigen PC kann ich doch alles auch mit den Bordmitteln von Knoppix genauso machen. Oder zumindest ähnlich und genauso gut.

diese Clonezilla-Backup-Images recht unkompliziert in .iso-Images umwandeln lassen, welche wiederum in KNOPPIX gemountet werden können,

Jedes Image kann gemountet werden, nicht nur .iso-Images. Ganz egal, wie die nun heißen. Unter Umständen greift dann mal kein Automatismus, aber es geht trotzdem. Mit GNU/Linux kenne ich mich nicht so gut aus, deshalb zeige ich das mal in meinem System.
Von meinem alten 32Bit Atom habe ich mir mir irgendwann, bevor ich ihn verschenkte, ein Image gezogen und zwar mit ddrescue. ddrescue ist super dafür, ganze Platten zu klonen, auch, wenn diese bereits den ein oder anderen Fehler haben könnten. Es schreibt aber bitweise und ich habe das nicht komprimiert, also ein wirkliches Bitgetreues Abbild der alten Festplatte erstellt. Das hatte keinen wirklichen Sinn, es war Nostalgie und ich verfolgte dennoch zwei Ziele: nochmal in den Dateien nach meinen Konfigurationen sehen zu können und ein Virtuelles System auf dem Image aufbauen und dieses aktuell halten und sehen, wie lange das mit 32Bit geht. Den zweiten Punkt klammere ich hier aus, obwohl der mir das größte Vergnügen bereitet hat.
Das Image zu mounten ist einfach. Es muss dazu einem md-Gerät zugewiesen werden, dann kann man es einfach mounten. Oder so ähnlich. Ich glaube, es ist einfacher, wenn ich das mal zeige (nicht GNU/Linux!!!):

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
> mdconfig -a -t vnode -f /Pfad/zu/Image/ddrescue.img

> ls /dev | grep md0
md0
md0s1
md0s1a

> mmls -B /dev/md0
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

      Slot      Start        End          Length       Size    Description
000:  Meta      0000000000   0000000000   0000000001   0512B   Primary Table (#0)
001:  -------   0000000000   0000000062   0000000063   0031K   Unallocated
002:  000:000   0000000063   0125045360   0125045298   0059G   BSD/386, 386BSD, NetBSD, FreeBSD (0xa5)
003:  -------   0125045361   0125045422   0000000062   0031K   Unallocated

> mount /dev/md0s1a /mnt/usb
> ls /mnt/usb
bin       COPYRIGHT entropy   home      libexec   mnt       proc      root      sys       usr
boot      dev       etc       lib       media     net       rescue    sbin      tmp       var

Dass tatsächlich der Mountpoint vorher leer war, zeigte ich nicht. Aber ich habe so das Image einer Festplatte zunächst einem md-Device zugeordnet und dann darauf eine Partition gefunden und die dann ohne Argumente gemountet, was daher gut geht, weil es ein Dateisystem ist, das mein Betriebssystem nativ beherrscht.
In GNU/Linux gibt es die mount Option loop und das erzeugt dann selbstständig ein Pseudogerät und wird zum automatischen Einbinden von .iso-Dateien genutzt. Mein System kann das nicht und deshalb muss ich das manuell machen, also vergleichbar, wie oben gezeigt, muss ich erst ein Iso-Image einem Gerät zuweisen, dass ich dann mounten kann. Aber grundsätzlich sollte die Sache in GNU/Linux analog funktionieren, also auch manuell mit gleichen Befehlen und gleicher oder ähnlicher Syntax.

Da ein echter MBR vorhanden ist, wäre es denkbar, dass beim UEFI-Boot die efi-Loader dafür sorgen, dass der im MBR gespeicherte Bootstrap-Code ausgeführt wird

Wie immer: das liest man dann, wenn man es braucht und hernach vergisst man es wieder. Zumindest geht es mir so. Ich glaube nicht, dass UEFI auf einen MBR oder PMBR reflektiert.
Ich meine, dass es direkt die erste Partition nimmt (die EFI-Boot-Partition) und dort nach dem Verzeichnis EFI sieht und dann den entsprechenden Loader startet. Das musst du nochmal nachlesen.
Es gibt das Tool efibootmgr oder so und ich weiß nicht mehr, wie das funktioniert. Es könnte durchaus sein, dass dies tatsächlich etwas in den MBR zurückschreibt.
Zumindest kannst du damit nachsehen, was bei dir bzw. bei Knoppix eingestellt ist.

Ich selbst habe, was selbstgebastelte Live-Systeme angeht, nur Erfahrung mit GRUB4DOS

GRUB4DOS geht bei mir zusammen mit Knoppix von einem NTFS-Dateisystem, aber dann leider nicht mehr mit EFI.
Die Beiträge möchte ich nun nicht suchen, das kannst du auch selber.

Damals hatte ich noch den Nerv, Stunden damit zuzubringen, Sachen wie die El-Torito-Spezifikationen zu lesen.
Heutzutage nicht mehr.

Ich denke, ich werde damit eine Weile beschäftigt sein.

Dito.
Ich will das auch nicht mehr und weil der Nutzen eines angepassten Knoppix gegenüber einem Standard-Knoppix vom Stick eigentlich identisch ist, investiere ich da auch nicht mehr viel.
Anders gesagt: ein Stick mit 8G für Knoppix und ein anderer mit 2G(?) für Clonezilla ist wesentlich einfacher zu erstellen und außerdem auch besser zu warten und zu handhaben, als alles irgendwie gemeinsam auf eine Platte bringen zu wollen. Ich verstehe das gut, dass man so etwas haben möchte. Aber es ist die Stunden nicht Wert, die man da investieren muss. Zumindest war das mein Resümee.

6

30.01.2020, 23:24

Da ein echter MBR vorhanden ist, wäre es denkbar, dass beim UEFI-Boot die efi-Loader dafür sorgen, dass der im MBR gespeicherte Bootstrap-Code ausgeführt wird
Wie immer: das liest man dann, wenn man es braucht und hernach vergisst man es wieder. Zumindest geht es mir so. Ich glaube nicht, dass UEFI auf einen MBR oder PMBR reflektiert.
Ich meine, dass es direkt die erste Partition nimmt (die EFI-Boot-Partition) und dort nach dem Verzeichnis EFI sieht und dann den entsprechenden Loader startet.
Genau das. Im Verzeichnis EFI/BOOT/ wird nach dem zur Rechnerarchitektur passenden Loader in Form einer Datei mit Namen BOOT⟨Rechnerarchitektur⟩.EFI gesucht.

Diese .EFI-Datei wiederum kann man selbst basteln.

Wenn man will, dann bei Hybrid-Systemen mit echtem MBR fürs BIOS-Booten auch so, dass sie nichts weiter tut als dafür sorgen, dass der Bootstrap-Code im MBR ausgeführt wird.
Ab diesem Punkt geht dann der Bootvorgang wie bei BIOS-Systemen wenn man von MBR-Festplatte bootet.

Linux HardwareLinux Computer & PCs | Linux Notebooks & Laptops | Geek Shirts | Geek und Nerd Shirt Shop