26.04.2018, 03:46 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

09.10.2006, 21:55

Sinnlos: logische Partitionen als aktiv/bootfaehig markieren

Hallo,

ich suche eine verstaendliche, plausible Erklaerung, warum es
keinen Sinn macht, eine logische Partition als aktiv/bootfaehig
zu markieren.

Wo (im WWW) ist das klipp und klar beschrieben?

Tschuess
Karl

RalfonLinux

Erleuchteter

Beiträge: 2 931

Geschlecht: Männlich

2

09.10.2006, 22:26

Der BIOS-Boot-Code ist nur in der Lage die Adresse 0/0/1 anzusprechen.
Dort wird nach einem Aktiv-Flag gesucht, sofern das Magic-Byte 0x55AA den MBR als g?ltig erkl?rt.

Ein logisches Laufwerk in der Partition wird nicht im MBR, sondern im LBR vermerkt.
Im MBR stehen die Grenzen der (erweiterten) Partitionen.
Am Start der erweiterten Partiton ist ein LBR, welcher auf das logische Laufwerk zeigt, sowie den n?chsten LBR.
Beim n?chsten LBR steht wieder der LBR des n?chsten logischen Laufwerks sowie der Zeiger zum ?bern?chsten LBR.....

So hangelt sich das Betriebssystem durch die Kette der LBRs, um alle Laufwerke zu identifizieren.


Hoffe es ist klar geworden ?

Ralf
Auf Wunsch gibt es nur noch Text und keine Bilder mehr in der Signatur.
Keine ? ....... :evil:

Quellcode

1
2
3
4
5
6
7
8
.
    ~
   - -          M
   /V\         - *
  // \\        /V\
 /( _ )\      // \\
  ^~ ~^      /( _ )\
              ^~ ~^

3

09.10.2006, 23:51

Hallo Ralf,

> Hoffe es ist klar geworden ?

Nein, leider nicht. :-(

> LBR

Was ist das? Google liefert fuer "Logical Boot Record" magere 80 Treffer.
Darunter: "the first 512 bytes of a partition is the "logical boot
record" or "superblock" while the first 512 bytes of a drive is the
"master boot record" or MBR"
Meinst du das mit LBR? Die ersten 512 Byte einer Partition?
Ich nenne die ersten 512 Byte einer Partition Boot Record.

> Ein logisches Laufwerk in der Partition wird nicht im MBR, sondern im
> LBR vermerkt.

Ich wuerde sagen: Ein logisches Laufwerk in einer erweiterten Partition
wird nicht in der Partitionstabelle im MBR, sondern in der Partitionstabelle
im Boot Record (den ersten 512 Byte) der erweiterten Partition vermerkt.
(Vermutlich meinen wir das gleiche - oder?)

> Der BIOS-Boot-Code ist nur in der Lage die Adresse 0/0/1 anzusprechen.
> Dort wird nach einem Aktiv-Flag gesucht,

Was meinst du mit Adresse 0/0/1?
*Wer* sucht *wo* nach einem Aktiv-Flag?
**Das ist in meinen Augen die entscheidende Frage.**
Was ich dazu gefunden habe: "The PC hardware itself (i.e., the BIOS boot
code) knows nothing about disk partitions. The only thing the BIOS
code knows is how to load the master boot record (MBR) from physical
sector zero of the boot drive and execute the machine code found
therein. It is that code that knows about partitions."
Siehe auch noch http://linuxmafia.com/pipermail/conspire/2004-September/000499.html

Also ich verstehe das so, dass der BIOS-Boot-Code nichts mit den
Partitionen und deren Aktivierung zu tun hat. der BIOS-Boot-Code
laedt nur den MBR und dann ...

> So hangelt sich das Betriebssystem durch die Kette der LBRs, um alle
> Laufwerke zu identifizieren.

Wenn ich GRUB oder lilo in den MBR installiere, dann koennen sich
die auch durch diese Kette "hangeln". Warum kann der *Boot-Loader*
im MBR (siehe http://de.wikipedia.org/wiki/Master_Boot_Record) [der
vermutlich vom BIOS-Boot-Code geladen wird?] das nicht?

Ich habe heute Suse 10.1 auf hda6 installiert. Yast hat es mir
erlaubt, GRUB in den Boot Record von hda6 zu schreiben und hda6
zu aktivieren. Das Booten ging dann aber nicht. Warum erlaubt Yast
das? Es ist doch sinnlos die Aktivierung einer nicht primaeren Partition
zu erlauben. *Das* verstehe ich nicht.
In allen Linux Buechern, die ich habe, schreibt keineR, dass es nur
Sinn macht, *primaere* Partitionen zu aktivieren. Das ist doch seltsam.

Tschuess
Karl

4

10.10.2006, 09:08

Aber ist es nicht so, wenn Du bei einer Linux-Installation NICHT in den MBR installierst, Du damit sagst, Du kuemmerst Dich anderweitig um den Bootloader? Du koenntest einen Grub im MBR installiert haben, der den Grub in hda6 startet.

5

10.10.2006, 09:24

Hallo Brack,

> Du koenntest einen Grub im MBR installiert haben, der den Grub in hda6 startet.

ja, den Fall gibt es, aber in dem Fall muss hda6 *nicht* aktiviert sein,
weil der Grub im MBR sich nicht darum schert, welche Partition aktiv ist,
sondern nur darum, was in /boot/grub/menu.lst steht.

Tschuess
Karl

6

10.10.2006, 09:32

Hi,

?ber dieses Flag bin ich auch schon einige male gestolpert.
Mir ist aufgefallen, das eine unter Linix bereitete hd mit aktiviertem flag bei einer anschliessenden Installation von Windows nix als ?rger macht. Die Partitionen wurden erkannt, das war es aber auch schon.
Erst nach partitionieren mit fdisk unter dos gings dann.
Seitdem markiere ich gar nix mehr als aktiv und hab seitdem auch keine probs mehr gehabt......???!

Gruss Guido

RalfonLinux

Erleuchteter

Beiträge: 2 931

Geschlecht: Männlich

7

10.10.2006, 11:11

Hi Karl,

Was du "Partitions Boot Record" nennst, habe ich als "LBR" kennengelernt, und ja, wir meinen beide das gleiche :-)

Die Adresse 0/0/1 ist der erste Sektor auf dem ersten Zylinder, unter dem ersten Kopf der Festplatte.
Sektoren und Zylinder werden ab 0 gez?hlt, K?pfe ab 1.

Der BIOS-Boot-Loader untersucht, ob der MBR die Magic 0x55AA am Ende stehen hat. (Byte 511 und 512)
Wenn das der Fall ist, geht das BIOS von einem g?ltigen MBR aus, und ?bergibt die Kontrolle an das Assemblerprogramm,
welches sich im MBR von Byte 0 bis Byte 446 befindet.

Dieser Boot-Strap sucht dann in seiner Partitionstabelle (=MBR-Tabelle) nach einer aktiv markierten (0x80 an Byte 0 des Partitionseintrages) Partition, und startet die vermerkten Dateien ( z.B. NTLDR oder IO.SYS oder auch minirt.gz ...)
Da in einer erweiterten Partition keine Dateien abgelegt werden k?nnen (geht nur in logischen Laufwerken), kann man keine erweiterte Partition booten.

Eine L?sung w?re jetzt, keine Dateien im Boot-Strap zu hinterlegen, sondern einen absoluten Pfad.
Daf?r muss der Boot-Strap aber eine gewisse Intelligenz besitzen, und das ist in 446 Bytes nicht m?glich.
Also muss es noch etwas Zusatz-Code geben, welcher sich z.B. unter 1-63/0/1 verstecken kann.
Dort steht dann z.B. "Boot-Strap, du bootest /dev/hda1/minirt.gz" oder auch "/dev/hda6/minirt.gz" oder "Du bootest vom 20465836 Sektor"
(Das ist auch der Grund, warum man nicht vergessen sollte nach einer Umpartionierung auf jeden Fall noch einmal lilo aufzurufen)

Windows z?hlt seine Partitionen nach folgender Reihenfolge:
  1. Aktive, prim?re Partition der ersten Platte
  2. Aktive, prim?re Partition der zweiten Platte
  3. Aktive, prim?re Partition der .... Platte
  4. Erste nicht aktive prim?re Partition der ersten Platte
  5. Zweite nicht aktive prim?re Partition der ersten Platte
  6. .... nicht aktive prim?re Partition der ersten Platte
  7. Erste nicht aktive prim?re Partition der zweiten Platte
  8. Zweite nicht aktive prim?re Partition der zweiten Platte
  9. .... nicht aktive prim?re Partition der zweiten Platte
  10. Erste nicht aktive prim?re Partition der ... Platte
  11. Zweite nicht aktive prim?re Partition der .... Platte
  12. .... nicht aktive prim?re Partition der .... Platte
  13. Erstes logisches Laufwerk in der ersten erweiterten Partition der ersten Platte
  14. Zweites logisches Laufwerk in der ersten erweiterten Partition der ersten Platte
  15. .... logisches Laufwerk in der ersten erweiterten Partition der ersten Platte
  16. Erstes logisches Laufwerk in der zweiten erweiterten Partition der ersten Platte
  17. Zweites logisches Laufwerk in der zweiten erweiterten Partition der ersten Platte
  18. .... logisches Laufwerk in der zweiten erweiterten Partition der ersten Platte
  19. Erstes logisches Laufwerk in der .... erweiterten Partition der ersten Platte
  20. Zweites logisches Laufwerk in der .... erweiterten Partition der ersten Platte
  21. .... logisches Laufwerk in der .... erweiterten Partition der ersten Platte
  22. und das ganze jetzt noch f?r die zweite, dritte .... Platte


Leider kann Windows <XP aber nur mit einer aktiven Partition pro Platte umgehen.
Daher gibt es im LILO die M?glichkeit, die nicht als Boot-Laufwerk ben?tigten Partitionen zu deaktivieren.
Anderenfalls wird die aktive zu C:\, obwohl sich %SYSTEMFOLDER% auf D:\ befindet.
Dann kommt es so richtig sch?n zum Durcheinander.

HTH
Ralf




PS: Wenn du es richtig schwierig erkl?rt haben willst, kannst du dir ja mal von Phoenix-BIOS die Bootspezifikation durchlesen.
http://www.phoenix.com/NR/rdonlyres/56E38DE2-3E6F-4743-835F-B4A53726ABED/0/specsbbs101.pdf
Auf Wunsch gibt es nur noch Text und keine Bilder mehr in der Signatur.
Keine ? ....... :evil:

Quellcode

1
2
3
4
5
6
7
8
.
    ~
   - -          M
   /V\         - *
  // \\        /V\
 /( _ )\      // \\
  ^~ ~^      /( _ )\
              ^~ ~^

prh

Profi

Beiträge: 1 248

Geschlecht: Männlich

8

10.10.2006, 11:18

Eine Zeitlang hatte ich auch mal zwei Partitionen mit active Flag - irgendwann kanns dann Aerger geben. Kano meinte, dass immer nur eine Part. aktiv markiert sein sollte.
Am besten fahre ich mit einem Bootloader im MBR ganz vorne auf der ersten HD - wenns denn funktioniert, von mir aus auch mit grub.
Vielleicht spielt auch noch die 1024-Zylinder-Grenze eine Rolle, auf keinem Fall wuerde ich mich noch mal mit Yast rumaergern -duck-
:)
LG
prh

RalfonLinux

Erleuchteter

Beiträge: 2 931

Geschlecht: Männlich

9

10.10.2006, 11:35

Zitat

auf keinem Fall wuerde ich mich noch mal mit Yast rumaergern


Bez?glich des Boot-Records w?rde ich das auch nicht machen.
Das benutzt dieses GRUB, mir ist LILO lieber
Ansonsten ist es okay.

Die 1024 spielen nur bei alten Boot-Straps eine Rolle, da alte BIOSe die Zylinder ?ber 1023 nicht ansteuern kann, ohne im neueren LBA-Modus zu laufen.
Daher wurde im Boot-Strap davon ausgegangen, das sich die Dateien auch innerhalb der ersten 1023 Zylinder befinden.

Ralf
Auf Wunsch gibt es nur noch Text und keine Bilder mehr in der Signatur.
Keine ? ....... :evil:

Quellcode

1
2
3
4
5
6
7
8
.
    ~
   - -          M
   /V\         - *
  // \\        /V\
 /( _ )\      // \\
  ^~ ~^      /( _ )\
              ^~ ~^

10

10.10.2006, 12:37

Hallo,

>> *Wer* sucht *wo* nach einem Aktiv-Flag?
>> **Das ist in meinen Augen die entscheidende Frage.**

> das Assemblerprogramm, welches sich im MBR von Byte 0 bis Byte 446
> befindet...
> sucht dann in seiner Partitionstabelle (=MBR-Tabelle) nach einer aktiv
> markierten (0x80 an Byte 0 des Partitionseintrages) Partition, und ...

also ist es dieses Assemblerprogramm, das "nur" in der Lage ist,
die ersten 512 Byte einer primaeren/erweiterten Partition zu lesen/starten,
nicht aber die ersten 512 Byte einer logischen Partition.

BTW: Hat dieses Assemblerprogramm eigentlich keinen Namen?

> Da in einer erweiterten Partition keine Dateien abgelegt werden k?nnen
> (geht nur in logischen Laufwerken), kann man keine erweiterte Partition
> booten.

Theoretisch: Ja. Praktisch: Nein. Wuerde ich sagen.
Ich boote z.B. einen meiner Rechner jeden morgen von der erweiterten
Partition. Es sieht so aus:

...
/dev/hda2 624 1246 5004247+ 83 Linux
/dev/hda3 1247 2492 10008495 83 Linux
/dev/hda4 * 2493 7448 39809070 5 Erweiterte
/dev/hda5 2493 2617 1004031 82 Linux Swap / Solaris
/dev/hda6 2618 3738 9004401 83 Linux
...

Mich muss der Teufel geritten haben, das zu tun, denn ich habe damit
jede Menge Scherereien. Nach jedem Umpartitionieren ist z.B. der GRUB
in hda4 im Eimer und muss neu erstellt werden. Es geht also, ist aber
*nicht* zu empfehlen.

>> auf keinem Fall wuerde ich mich noch mal mit Yast rumaergern
> Bez?glich des Boot-Records w?rde ich das auch nicht machen.
> Das benutzt dieses GRUB, mir ist LILO lieber

In Yast kann man bei der Installation auswaehlen, ob man GRUB oder lilo
verwenden will und fdisk ist z.B. auch nicht besser als Yast:

Wenn ich in fdisk die logische Partition hda6 mit "a" aktiviere, dann geht
das, obwohl es *keinen* Sinn macht. Da wuerde ich mir eine Fehler-
meldung wuenschen: "hda6 ist eine logische Partition. Es macht aber
nur Sinn primaere Partitionen zu aktivieren".

Tschuess
Karl

RalfonLinux

Erleuchteter

Beiträge: 2 931

Geschlecht: Männlich

11

10.10.2006, 14:17

Hallo Karl,

Zitat

das "nur" in der Lage ist,
die ersten 512 Byte einer primaeren/erweiterten Partition zu lesen/starten

dieses Assembler-Programm liest nur sich selber.
Es sieht in SEINER Partitionstabelle nach, also innerhalb SEINER 512 Bytes.
Es sucht sich die aktive Partition, und dort den Secondary-Boot-Loader.

Zitat

BTW: Hat dieses Assemblerprogramm eigentlich keinen Namen?

Es hei?t im allgemeinen Boot-Strap oder auch (First) Boot-Loader. Du kannst es aber auch LILO oder GRUB nennen.

Das BIOS hat einen IPL-Boot-Strap (IPL), welcher dem First Boot-Strap / Boot-Code die Kontrolle ?bergibt.
Dieser wiederum sucht sich dann den Secundary-Boot-Loader, der vom Betriebsstem vorgegeben wird. (NTLDR, IO.SYS...)

Zitat

Ich boote z.B. einen meiner Rechner jeden morgen von der erweiterten Partition

Du bootest dann aber nicht ein /dev/hda4/minirt.gz bzw. /dev/hda4/vmlinuz, oder ?
Du ?bergibst vielleicht die Kontrolle an den Boot-Strap im LBR von hda4.
Dort ist dann vermerkt "/dev/hda2/vmlinuz"
Du bootest also nicht die erweiterte Partition, sondern dessen Boot-Code, der dann wiederum eine andere Partition bootet.

Ich m?chte mal behaupten, das grub vielleicht sogar in der Lage ist, ohne aktive Partition zu booten, sofern der MBR-Code mitspielt.
Welchen Inhalt hat den dein MBR ?
Was f?r ein Boot-Loader ist den dort vermerkt ?

Mach doch mal folgende Versuche:
Bau dir eine virtuelle Maschine, bzw. besorge dir Hardware.
Dort installierst du MS-Windows 9xoder auch MS-DOS.
Boote die Maschine mit einer Knoppix-CD und probiere mal folgendes aus:[code:1]dd if=/dev/hda bs=512 count=1 | hexdump -C[/code:1]
Nun ein [code:1]dd if=/dev/hda1 bs=512 count=1 | hexdump -C[/code:1]

Sie dir die Ausgaben mal an.
Bei einem W2K-System ist hda mit Meldungen wie "Invalid partition table" versehen.
hda1 hat dann Meldetexte wie "Missing NTLDR" und ist aktiv gesetzt.
Das l??t darauf schliessen, das der W2k-MBR (hda) die Kontrolle an den W2k-LBR (hda1) ?bergibt, und dort nach NTLDR gesucht wird.
Das w?re jetzt das LILO / GRUB Pondon, bloss das lilo/grub sich nicht um das Aktiv-Flag k?mmert, sondern den Parameter root= aus der lilo.conf benutzt.


Ralf

PS: Du kannst ruhig hda6 aktivieren, das sollte grub egal sein.
grub l?uft ja schon, wenn du den MBR liest, grub ist der MBR.
(Sofern du grub in den MBR installiert hast)
Bei mir liegt lilo im MBR, meine W2K-Partition ist aktiv, und trotzdem bootet er /dev/hda7/vmlinuz.
Auf Wunsch gibt es nur noch Text und keine Bilder mehr in der Signatur.
Keine ? ....... :evil:

Quellcode

1
2
3
4
5
6
7
8
.
    ~
   - -          M
   /V\         - *
  // \\        /V\
 /( _ )\      // \\
  ^~ ~^      /( _ )\
              ^~ ~^

12

19.10.2006, 13:31

Hallo Ralf,

> Welchen Inhalt hat den dein MBR ? ...
> dd if=/dev/hda bs=512 count=1 | hexdump -C
> Bei einem W2K-System ist hda mit Meldungen wie "Invalid partition table"
> versehen.

tja, so ist es. :-(

So wie viele Knoppix benutzen, um Windows zu retten, benutze ich
jaemmerliche 446 Byte von Microsoft um das glorreiche Linux zu booten!
Das ist doch oberpeinlich.

Ich habe mal eben kurz "install-mbr /dev/hda" gemacht. :-)
(Geht einfach schneller als sich durch testdisk zu hangeln.)

Tschuess
Karl

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