24.07.2017, 08:47 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: Knoppix Forum | www.KnoppixForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

26.04.2017, 20:47

Wohin mit einem Artikel ueber die Knoppix 8 ISO Bootfaehigkeiten ?

Hi,

wo oder wem wuerde man denn sinnvollerweise den folgenden Artikel ueber
die neuen Bootmoeglichkeiten und die Partitionen des Knoppix 8 ISOs
anbieten ?

-------------------------------------------------------------------------

Inhalt:
- Wie und wo bootet das Knoppix 8 ISO ?
- Knoppix 8 Bootausruestung aufgelistet.
- Warum ist noch eine GPT dabei ?
- Was macht eigentlich Partition 3 ?
- Und was sagen Partitionseditoren dazu ?
- Wieso kann Knoppix 8 auf EFI mit SYSLINUX von DVD booten ?
- Wie kommt das ISO auf USB Stick oder DVD ?
- Literatur.

-------------------------------------------------------------------------

Wie und wo bootet das Knoppix 8 ISO ?

Vor Version 8 lautete die Antwort:
Von DVD auf einem x86 PC mit Boot-Firmware im klassischem BIOS Modus.

Ab Version 8 kommen weitere Speichermedien und modernere Firmware hinzu.
Ausser DVDs sind nun auch festplattenartige Speicher wie zB. USB Sticks
geeignet. Neben altem BIOS und neuem EFI im alten Modus kann nun auch
EFI in seinem normalen Modus Knoppix von den geeigneten Medien booten.

Dafuer sind im ISO vier verschiedene Einstiegspunkte vorbereitet, durch
die die Firmware zur Software des Bootloaders im ISO findet. Der Bootloader
SYSLINUX ist ein kleines Betriebssystem, das einen Startbildschirm zeigen,
mit dem User interagieren, und schliesslich ein GNU/Linux System starten
kann.

1. DVD mit klassischem BIOS

In diesem Fall liest das BIOS den DVD Datenblock Nummer 17 und prueft, ob
er einen El Torito Boot Record enthaelt. Wenn nicht, wird nicht von der
DVD gebootet.
Vom Boot Record wird das BIOS zum Boot Catalog weitergeleitet. Dort findet
es im Fall von Knoppix 8 zwei Eintraege. Darunter ist einer mit der
Platform Id 0, das ihn als geeignet fuer 32-bit und 64-bit Prozessoren
der x86 Familie kennzeichnet. Er verweist auf den Anfang der Datenblocks
des Files /boot/isolinux/isolinux.bin im ISO Filesystem.
BIOS liest diesen ersten Block von 2048 Bytes und startet das Gelesene
als Programm. Dessen erste Tat ist es, seine restlichen Datenblocks
einzulesen, damit es genug Hirn hat, um den Rest des SYSLINUX Bootloaders
zu starten.

2. DVD mit EFI in seinem normalen Modus

Auch EFI liest den El Torito Boot Catalog. Es schaut aber nach einem
Eintrag mit Platform Id 0xEF, den ihm Knoppix 8 auch anbietet.
Anders als der mit Platform Id 0 verweist dieser Eintrag auf den Startblock
eines FAT Filesystems, das als EFI System Partition dient. Der naechste
Schritt haengt von der Bitzahl des Prozessors ab:
Fuer einen 32 Bit x86 Prozessor wird im FAT Filesystem nach dem File
/efi/boot/BOOTIA32.efi (in DOS: \EFI\BOOT\BOOTIA32.EFI) gesucht. Dieser
wird als Programm ausgefuehrt und startet den Bootloader.
Fuer einen 64 Bit x86 Prozessor ist es der File /efi/boot/BOOTX64.efi.

3. USB Stick mit klassischem BIOS

Wenn das ISO auf einem USB Stick oder einem anderen Geraet angeboten wird,
das von BIOS wie eine Festplatte behandelt wird, dann liest BIOS die ersten
512 Bytes vom Geraet und fuehrt sie als Programm aus. Diese 512 Bytes heissen
Master Boot Record (MBR) und enthalten neben Programmanweisungen auch die
Partitionstabelle mit maximal 4 primaeren Partitionen.
Das Programm im MBR des Knoppix 8 ISOs kennt die Startblocknummer des Files
/boot/isolinux/isolinux.bin im ISO Filesystem. Seine einzige Aufgabe ist es,
die ersten 2048 Bytes dieses Files zu laden und die Programmausfuehrung
an diese Bytes zu uebergeben.
Der weitere Bootvorgang muendet dann in den Bootvorgang von DVD ein.

4. USB Stick mit EFI im normalen Modus

EFI ignoriert die Programmbytes am Anfang des MBR und sucht statt dessen
in der Partitionstabelle des MBR nach einem Eintrag mit Typ 0xEF.
Diese Partition enthaelt das FAT Filesystem, in dem EFI, je nach Bitzahl
des Prozessors, nach den Files /efi/boot/BOOTIA32.efi oder
/efi/boot/BOOTX64.efi sucht.
Der weitere Bootvorgang muendet dann in den Bootvorgang von DVD ein.

-------------------------------------------------------------------------

Knoppix 8 Bootausruestung aufgelistet:

Das Shellkommando

Quellcode

1
  $ xorriso -indev /dev/sr0 -report_el_torito plain -report_system_area plain

gibt zunaechst eine Zusammenfassung der DVD

Quellcode

1
2
3
4
5
  Media current: DVD-ROM
  Media status : is written , is closed
  Boot record  : El Torito , MBR isohybrid cyl-align-off GPT
  Media summary: 1 session, 2220294 data blocks, 4337m data,     0 free
  Volume id    : 'KNOPPIX_8'

bevor es ins Detail des El Torito Boot Catalogs geht:

Quellcode

1
2
3
4
5
6
7
8
  El Torito catalog  : 42  1
  El Torito cat path : /boot/isolinux/boot.cat
  El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
  El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4         878
  El Torito boot img :   2  UEFI  y   none  0x0000  0x00  30720        7202
  El Torito img path :   1  /boot/isolinux/isolinux.bin
  El Torito img opts :   1  boot-info-table isohybrid-suitable
  El Torito img path :   2  /efi.img

Der Katalog sitzt in Block 42 und besetzt nur diesen einen.
Er ist auch als Datenfile /boot/isolinux/boot.cat erreichbar.
Er bietet die zwei erwaehnten Boot Images fuer BIOS und UEFI, die beide als
Datenfiles im ISO 9660 Filesystem gespeichert sind.

Die Partionstabelle des MBR:

Quellcode

1
2
3
4
5
6
7
  ISO image size/512 : 8872920
  ...
  MBR partition table:   N Status  Type        Start       Blocks
  MBR partition      :   1   0x80  0x00            0      8872920
  MBR partition      :   2   0x00  0xef        28808        30720
  MBR partition      :   3   0x00  0x83      8872920         8192
  MBR partition path :   2  /efi.img

Nur die Partition 2 zeigt auf den Start eines Datenfiles im ISO. Es ist der
selbe, auf den auch der El Torito Boot Catalog Eintrag fuer UEFI verweist:
Die EFI System Partition.
Partition 1 umschliesst Partition 2. Das waere sehr regelwidrig, wenn
sie nicht den Typ 0x00 haette. So gibt es Partition 1 aus der Sicht der
UEFI Spezifikation garnicht. Linux aber erkennt sie ebenso wie der in
Linux uebliche Partitionseditor fdisk.
Partition 3 wird auf USB Stick beim ersten Lauf von Knoppix 8 bis zum
Ende des Sticks ausgedehnt. (Siehe unten.)

Nun noch die (eigentlich ungueltige) GUID Partition Table:

Quellcode

1
2
3
4
5
6
7
8
  GPT                :   N  Info
  ...
  GPT partition name :   1  490053004f00480079006200720069006400
  GPT partname local :   1  ISOHybrid
  GPT partition GUID :   1  a222770ded5dd64392d5411601b41747
  GPT type GUID      :   1  a2a0d0ebe5b9334487c068b6b72699c7
  GPT partition flags:   1  0x1000000000000001
  GPT start and size :   1  0  8872920

Die erste GPT Partition deckt das ISO 9660 Filesystem ab. Eher regelwidrig
ist ihr Startblock 0. Aber mit der kleinsten regelgerechten Adresse 64
waere die Partition nicht mountbar.

Quellcode

1
2
3
4
5
6
7
  GPT partition name :   2  490053004f004800790062007200690064003100
  GPT partname local :   2  ISOHybrid1
  GPT partition GUID :   2  a222770ded5dd64392d6411601b41747
  GPT type GUID      :   2  a2a0d0ebe5b9334487c068b6b72699c7
  GPT partition flags:   2  0x1000000000000001
  GPT start and size :   2  28808  30720
  GPT partition path :   2  /efi.img

Die zweite Partition zeigt auf die Datenblocks des Files mit dem FAT
Filesystem der EFI System Partition. Dass sie sich im Inneren von GPT
Partition 1 befindet, ist sehr regelwidrig.

Quellcode

1
2
3
4
5
6
  GPT partition name :   3  41007000700065006e006400650064003300
  GPT partname local :   3  Appended3
  GPT partition GUID :   3  a222770ded5dd64392d7411601b41747
  GPT type GUID      :   3  a2a0d0ebe5b9334487c068b6b72699c7
  GPT partition flags:   3  0x0000000000000000
  GPT start and size :   3  8872920  8192

Das ist ein Gegenstueck zu MBR Partition 3. (Siehe unten.)
Allerdings wird sie zur Zeit nicht zusammen mit der MBR Partition ausgedehnt.

-------------------------------------------------------------------------

Warum ist noch eine GPT dabei ?

Wuerde die Partitionstabelle im MBR des Knoppix 8 ISOs nur eine einzige
Partition anzeigen, die bei Block 1 beginnt und nicht den Typ 0xEF hat,
dann wuerde EFI die 512 Bytes nach dem MBR lesen und pruefen, ob sie eine
GUID Partition Table (GPT) ankuendigen.

Obwohl der MBR des Knoppix 8 ISO anders aussieht, enthaelt das ISO doch
eine GPT fuer solche EFIs, die keine MBR Partitionen als EFI Partition
akzeptieren und stur auf einer GPT bestehen. Dort finden sie dann eine
Partition mit Typ-GUID C12A7328-F81F-11D2-BA4B-00A0C93EC93B. Sie zeigt
ebenfalls auf das FAT Filesystem mit BOOTIA32.efi und BOOTX64.efi.

Seltsamerweise hat die isohybrid GPT Partition mit diesen Files die
Typ-GUID EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 "Basic Data". Das ist schon
seit Erfindung von isohybrid fuer EFI so.
(Siehe http://mjg59.dreamwidth.org/11285.html , Dumpadresse 00002080 )
Darum traut sich keiner mehr, es zu korrigieren.

Am Schluss des ISO Images sitzt die Backup GPT, eine Kopie der GPT am
Start des Images. Sie muesste ans Ende des USB Sticks verschoben werden,
damit sie gueltig bleibt. Aber weil die GPT eigentlich sowieso nicht
gueltig ist, kann man die Backup GPT auch lassen, wo sie ist. Lange
ueberleben wird sie dort nicht.

-------------------------------------------------------------------------

Was macht eigentlich Partition 3 ?

Die dritte MBR Partition zeigt auf ein 4 MB grosses Reiser Filesystem, das
von Knoppix automatisch bis zum Ende des USB Sticks ausgedehnt wird, wenn
es zum ersten Mal startet.
Auf DVD hat diese Partition keine Aufgabe.

Wenn man ein Knoppix 8 ISO Image einem virtuellen PC als Festplatte
uebergibt, (zB. mit qemu Option -hda), dann gilt die Groesse des Imagefiles
als Groesse des Speichergeraets. Weil im Image nach Ende von Partition 3
nur noch 32 KB kommen, bringt die Ausdehnung der Partition nicht den
erhofften Platz.
Wenn man also das Knoppix 8 ISO als virtuelle Platte betreiben will, sollte
man es vorher um mindestens 4 GB auf die empfohlene USB-Stick-Groesse von
ca. 8 GB aufblaehen:

Quellcode

1
  dd if=/dev/zero bs=1M count=4096 >>knoppix_8.0.iso

-------------------------------------------------------------------------

Und was sagen Partitionseditoren dazu ?

Wenn man sie auf die DVD ansetzt, werden fdisk, gdisk, und parted von deren
Blockgroesse 2048 verwirrt. Man muss die DVD in einen File oder auf einen
USB Stick kopieren, damit sie die Partitionstabellen richtig interpretieren.

Quellcode

1
  $ dd if=/dev/sr0 bs=1M of=knoppix_8.0.iso

Ich wuerde fdisk empfehlen, wenn man selbst an der Partitionierung eines
Knoppix 8 USB Sticks etwas aendern moechte, weil nur dieser Editor die
Partition 1 nicht als freien Platz anzeigt.

fdisk zeigt die MBR Partitionstabelle an, ohne die GPT oder die
Partitionsverschachtelung zu bemerken:

Quellcode

1
2
3
4
5
6
  $ /sbin/fdisk -lu knoppix_8.0.iso
  ...
  Device           Boot   Start     End Sectors  Size Id Type
  knoppix_8.0.iso1 *          0 8872919 8872920  4.2G  0 Empty
  knoppix_8.0.iso2        28808   59527   30720   15M ef EFI (FAT-12/16/32)
  knoppix_8.0.iso3      8872920 8881111    8192    4M 83 Linux

gdisk bemerkt die GPT und ignoriert die MBR Partition 1:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  $ /sbin/gdisk knoppix_8.0.iso
  ...
  Partition table scan:
    MBR: MBR only
    BSD: not present
    APM: not present
    GPT: present

  Found valid MBR and GPT. Which do you want to use?
    1 - MBR
    2 - GPT
    3 - Create blank GPT
  Your answer: 1

  Command (? for help): p
  ...
  Number  Start (sector)    End (sector)  Size       Code  Name
     2           28808           59527   15.0 MiB    EF00  EFI System
     3         8872920         8881111   4.0 MiB     8300  Linux filesystem

  Command (? for help): q

GNU parted bemerkt die GPT nicht, ignoriert aber Partition 1:

Quellcode

1
2
3
4
5
6
7
8
9
  $ /sbin/parted knoppix_8.0.iso
  ...
  (parted) print                                                            
  ...
  Number  Start   End     Size    Type     File system  Flags
   2      14.7MB  30.5MB  15.7MB  primary  fat16        esp
   3      4543MB  4547MB  4194kB  primary  reiserfs

  (parted) quit

Das Ignorieren von Partition 1 liegt zunaechst einmal an ihrem Typ 0x00.
Aendert man ihn in Byte 450 des ISOs zB. zu 0x83 "Linux", dann fangen gdisk
und parted an zu meckern, weil Partition 2 in Partition 1 liegt.
gdisk:

Quellcode

1
2
  Warning! Main partition table overlaps the first partition by 34 blocks!
  You will need to delete this partition or resize it in another utility.

parted:

Quellcode

1
2
  Error: Invalid partition table - recursive partition on
  /daten/dvdbuffer/knoppix_8.0.iso.

Beide Editoren zeigen danach Partition 1 immer noch nicht an.
Typ 0x00 ist also wirklich vorzuziehen.

Entfernt man die GPT, indem man den zweiten und den letzten Block des ISOs
mit Nullen ueberschreibt, dann merkt gdisk wenigstens, dass es nicht
zustaendig ist:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  $ last_block=$(expr $(ls -l knoppix_8.0.iso | awk '{print $5}') / 512 - 1)
  $ echo $last_block
  8881175
  $ iso=knoppix_8.0.iso
  $ dd conv=notrunc if=/dev/zero bs=512 seek=1 count=1 of="$iso"
  ...
  $ dd conv=notrunc if=/dev/zero bs=512 seek=$last_block count=1 of="$iso"
  ...
  $ gdisk "$iso"
  ...
  Found invalid GPT and valid MBR; converting MBR to GPT format
  in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
  typing 'q' if you don't want to convert your MBR partitions
  to GPT format!
  ...

Das ist besser, als wenn es ungewollt von MBR Partitionierung auf GPT
umsteigt. Allerdings muss man dann noch pruefen, ob es auf allen gewuenschten
Maschinen bootet.

-------------------------------------------------------------------------

Wieso kann Knoppix 8 auf EFI mit SYSLINUX von DVD booten ?

Es ist eine bekannte Schwaeche von SYSLINUX, dass es auf EFI Systemen nicht
auf die Datenblocks optischer Speichermedien ausserhalb der EFI System
Partition zugreifen kann.
Praktisch alle anderen Linux Distributionen benutzen GRUB2 als Bootloader
auf x86 EFI. Einige wenige benutzen auch den Bootloader elilo.

Dennoch hat Knoppix 8 die entsprechenden Tests bestanden (wenn auch nicht
auf meinem OVMF 20131112). Das liegt daran, dass in der EFI System Partition
ein kleines aber komplettes GNU/Linux sitzt, das dann die Aufgabe uebernimmt,
Knoppix aus dem grossen ISO 9660 Filesystem heraus zu starten.

Zum Erscheinungszeitpunkt der Knoppix 8 DVD im Linux Magazin 04/17 ist das
meines Wissens das einzige nicht-experimentelle ISO, das auf EFI von DVD
bootet.

-------------------------------------------------------------------------

Wie kommt das ISO auf USB Stick oder DVD ?

Um Knoppix 8 von DVD auf einen USB Stick zu kopieren, muss man sich zuerst
davon ueberzeugen, dass man die richtige Geraeteadresse verwendet. Weil das
Aufbringen des ISOs die Daten und die Partitionierung des Sticks
ueberschreibt, sollte man am besten vorher einen Backup machen und beobachten,
ob dabei auch wirklich der richtige Stick blinkt:

Quellcode

1
  dd if=/dev/sdc bs=1M | gzip >stick_vor_knoppix8.gz

Wenn /dev/sdc wirklich die richtige Adresse war, kann man nun die DVD
auf den Stick kopieren:

Quellcode

1
  dd if=/dev/sr0 bs=1M of=/dev/sdc

Sollte man statt der DVD einen ISO Imagefile haben (zB. knoppix_8.0.iso),
kann man diesen statt /dev/sr0 verwenden:

Quellcode

1
  dd if=knoppix_8.0.iso bs=1M of=/dev/sdc

Um spaeter einmal das Knoppix durch den Backup zu ersetzen, nachdem man
sich wieder sorgfaeltig von der Richtigkeit der Adresse ueberzeugt hat:

Quellcode

1
  gunzip < stick_vor_knoppix8.gz | dd bs=1M of=/dev/sdc


Fuer User von MS-Windows empfiehlt Debian GNU/Linux das Programm
win32diskimager, um ein ISO auf einen USB Stick zu kopieren:
http://sourceforge.net/projects/win32diskimager/


Wo wir schon dabei sind, brennen wir uns auch noch ein ISO Image auf DVD:

Quellcode

1
  growisofs -dvd-compat -Z /dev/sr0=knoppix_8.0.iso

oder

Quellcode

1
  xorriso -as cdrecord -v dev=/dev/sr0 -eject knoppix_8.0.iso


-----------------------------------------------------------------
Literatur:

Klaus Knopper ueber Knoppix 8: "Hybrides USB-Image statt DVD"
https://www.golem.de/news/live-linux-kno…3-126811-2.html

Zu BIOS und EFI
https://de.wikipedia.org/wiki/BIOS
https://de.wikipedia.org/wiki/UEFI

Zur El Torito Bootausruestung:
http://wiki.osdev.org/El-Torito (englisch)

Zum Master Boot Record:
https://de.wikipedia.org/wiki/Master_Boot_Record
http://wiki.osdev.org/MBR (englisch)
http://www.syslinux.org/wiki/index.php?title=Isohybrid (englisch)

Zur GPT:
https://de.wikipedia.org/wiki/GUID_Partition_Table
http://www.uefi.org/sites/default/files/…_4_Errata_B.pdf
Chapter 5 "GUID Partition Table (GPT) Disk Layout" (englisch)

Zur Motivation, die GPT ueberhaupt zu haben:
http://mjg59.dreamwidth.org/11285.html (english)

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »scdbackup« (05.05.2017, 13:34)


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