Wozu benötigt Debian Partitions-Flags?

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
bullgard
Beiträge: 1654
Registriert: 14.09.2012 23:03:01

Wozu benötigt Debian Partitions-Flags?

Beitrag von bullgard » 27.04.2013 21:16:55

Hallo Liste!
Wozu benötigt Debian Wheezy Partitions-Flags?
GParted zeigt mir an, daß /dev/sda1 die Markierung = dasFlag »boot« hat.
GParted zeigt mir an, daß /dev/sda2 die Markierung = dasFlag »lba« hat.
Wie verwendet Debian die Daten, die in der GParted-Spalte »Markierungen« stehen?
Jemand sagte mir, daß Grub2 die Markierung »boot« gar nicht auswertet.
Jemand anderes sagte mir, daß der Boolader extlinux die Markierung »boot« auswertet. Wie wertet er sie aus?
Linear block addressing (lba) ist das Standardverfahren, das schon seit > 10 Jahren verwendet wird. Wer wertet diese Markierung aus?
http://www.gnu.org/software/parted/manu ... html#SEC28 hat mich nicht erleuchtet.
Gruß
bullgard

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Re: Wozu benötigt Debian Partitions-Flags?

Beitrag von cosmac » 28.04.2013 10:23:52

hi,

schau dir die Platte mal mit fdisk -l an. Wikipedia[1], fdisk und ich kennen nur ein einziges Flag, nämlich "active", auch "bootable" genannt. Das sollte bei genau einer Partition gesetzt sein, schließlich kann man nur von genau einer Partition booten. Dass extlinux und syslinux dieses Flag beachten und grub nicht, unterschreibe ich mal. Insofern brauchen die meisten Debian-Installationen das Flag nicht.

Mit extlinux kann man auf jede Partition einen eigenen Bootloader schreiben. Die Auswahl passiert dann anhand des Flags so: das BIOS lädt den MBR und startet daraus die erste Stufe des Loaders. Der sucht in der Partitionstabelle die aktive Partition (die mit dem boot-Flag) und startet die zweite Stufe aus dem ersten Sektor dieser Partition. Damit wird dann ldlinux.sys von der gleichen Partition geladen. Das ist der eigentliche, sichtbare Teil des Bootloaders, der z.B. das Bootmenü anzeigt.

Grub macht alles ganz anders, aber nicht unbedingt besser und sicher nicht einfacher ;)

Die anderen Markierungen werden vom Bootloader und vom Kernel nicht ausgewertet. Keine Ahnung, ob "Debian" (also irgendein Programm) damit mehr anfängt, als sie nur anzuzeigen. Windows und DOS verwenden für die verschiedenen FAT-Versionen je vier Partitionstypen[2], nämlich CHS, LBA, CHS-vesteckt, LBA-versteckt (z.B. für FAT32: 0b, 0c, 1b, 1c). {G}parted zeigt das als Dateisystem = FAT + "Markierungen" an. Diese Flags sind also etwas anderes als das einzige "echte" Flag.

Bei ext2|3|4 ist es einfacher; es gibt nur LBA und den einen Typ 83 und der wird vom Kernel auch noch ignoriert. Technisch gibt es nämlich keinen Zusammenhang zwischen dem Partitionstyp und dem Dateisystem auf der Partition. Ich kann ohne weiteres eine Typ-1b-Partition mit ext2 formatieren. Deshalb ist die parted-Darstellung zweideutig bis unbrauchbar: was ist mit der Spalte "Dateisystem" gemeint? Übrigens: das verlinkte parted-Manual ist auch mehr als 10 Jahre alt.

[1] http://en.wikipedia.org/wiki/Master_Boo ... le_entries
[2] http://en.wikipedia.org/wiki/Partition_type
Beware of programmers who carry screwdrivers.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Wozu benötigt Debian Partitions-Flags?

Beitrag von rendegast » 28.04.2013 10:59:40

Das "Manage Flags" bei gparted ändert eigentlich nur 1 wirkliches Flag "boot",
bei den anderen Häckchen wird der Partitionstyp geändert.
Verifiziere das nach jeder Änderung per 'fdisk -l /dev/sdX'.
(Einiges geht nicht, Setzen des lba-"Flag" für eine formatierte 500MB-ntfs-Partition wird verweigert.)

"active" ist das Gegenteil von 'hidden' und stammt auch aus DOS-Zeiten?




grub kopiert die Information über sein /boot/ in den Bootcode, baraucht daher kein flag.
Das mit dem bootflag steht auch im README des Paketes extlinux.


-------------------------------------------------------------------------------------------------------------------
Fehlende Rotation der mbr-${DEVICE}.old bei extlinux,
ein einfacher walkaround:

Code: Alles auswählen

#!/bin/sh
for FILE in $(ls -1 /boot/mbr-*.old); do
   cp -u  $FILE  ${FILE}.$(date -r $FILE  +%F%T | sed 's@[-:]@@g')
done
vielleicht in einem Wrapper-Skript fuer extlinux-install.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten