Re: Bootsector nach Partitionierung herstellen
David Haller <[email protected]> Sat, 9 Apr 2011 02:26:38 +0200
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Organization | What? |
| Message-ID | <[email protected]> |
Hallo,
Am Thu, 07 Apr 2011, Thomas Michalka schrieb:
>David Haller schrieb:
>> Lies auch mal 'info grub' ;) Da steht genau drin, was wie gebooted
>> wird. Und -- wenn du nicht per "aktiver Partition" zur FAT umschalten
>> willst: schreib GRUB einfach in den MBR.
>
>Bedeutet das, dass man einen Boot-Sektor-GRUB (BS-GRUB) direkt vom BIOS
>starten lassen kann, indem man das Aktiv-Flag der Partition, in der der
>BS-GRUB installiert ist, setzt? Also ohne Boot-Code im MBR?
Nein. Das BIOS liest immer schlicht den ersten Sektor des Ger=E4tes, das
in der Bootreihenfolge "vorne" ist (abh=E4ngig von den BIOS
Einstellungen und evtl. manueller Wahl via Boot-Men=FC), in den Speicher
und startet den Code dann. Der generische MBR-Bootsektor macht dann
das gleiche mit dem ersten Sektor der aktiven Partition der ersten
Platte.
>Noch eine Frage, ankn=FCpfend an die Diskussion, die wir k=FCrzlich hatten,
>mit einer kurzen Vorbemerkung:
>Es scheint wirklich so zu sein, dass mein BIOS meine eSATA-Platte immer
>an die zweite Stelle hinter der Boot-Platte setzt, obwohl sie eindeutig
>als dritte Platte im BIOS-Setup eingereiht ist. Durch lsscsi im selben
>System wird die Platte auch immer an der selben Stelle angezeigt, egal
>ob sie schon beim Booten drin war oder erst sp=E4ter eingeschoben wurde:
>
># lsscsi
>[3:0:0:0] disk ATA WDC WD5000BEVT-0 01.0 /dev/sdg
>[4:0:0:0] disk ATA OCZ-VERTEX2 3.5 1.22 /dev/sda
>[5:0:0:0] disk ATA ST3500630AS 3.AA /dev/sdb
>
>Also immer [3:0:0:0], mal als /dev/sda (beim Booten schon drin; unter
>den ATA-Ger=E4ten sogar das erste, hat aber nichts mir der Einreihung
>durch das BIOS zu tun), mal als /dev/sdg (ins laufende System eingesteckt).
Das h=E4ngt davon ab, in welcher Reihenfolge die SATA-Controller vom
Kernel erkannt werden. Guck dir mal deine /var/log/boot.msg an. Dort
wirst du in dem Fall den Controller, an der die Western Digital h=E4ngt,
erst beim Anschlie=DFen erkannt wird. Wenn du mit angeschlossener WD
bootest wird der Controller wohl vor den anderen erkannt. Guck mal,
welcher Treiber f=FCr den zust=E4ndig ist, wenn das nicht der gleiche ist
wie f=FCr den Onboard, dann kannst du das Problem l=F6sen in dem du das
Modul generell nach dem f=FCr Onboard l=E4dst.
>Nun die Frage: kann es sein, dass ein Aktiv-Flag in einer Partition auf
>der eSATA-Platte dazu f=FChrt, dass sie vom BIOS an die zweite Stelle
>eingereiht wird?
N=F6.
># fdisk -l /dev/sdg
>
>Disk /dev/sdg: 500.1 GB, 500107862016 bytes
>255 heads, 63 sectors/track, 60801 cylinders
>Units =3D cylinders of 16065 * 512 =3D 8225280 bytes
>Disk identifier: 0x0005df91
>
> Device Boot Start End Blocks Id System
>/dev/sdg1 * 1 523 4200966 82 Linux swap / ...
>/dev/sdg2 524 536 104422+ 83 Linux
>/dev/sdg3 537 3147 20972857+ 83 Linux
>/dev/sdg4 3148 60801 463105755 83 Linux
>
>Verstehe eh nicht, wieso die Swap-Partition als aktiv markiert ist, ist
>doch =FCberfl=FCssig.
=C4ndere es eben. Bei mir ist gar keine Partition aktiv ;P
>> # grub
>> grub> setup --stage2=3D/boot/grub/stage2 (hd0) (hd0,0)
>> grub> quit
>>=20
>> grub> help setup =20
>> setup: setup [--prefix=3DDIR] [--stage2=3DSTAGE2_FILE] [--force-lba[=3Do=
ff]] INSTALL_
>> DEVICE [IMAGE_DEVICE]
>> Set up the installation of GRUB automatically. This command uses
>> the more flexible command "install" in the backend and installs
>> GRUB into the device INSTALL_DEVICE. If IMAGE_DEVICE is
>> specified, then find the GRUB images in the device IMAGE_DEVICE,
>> otherwise use the current "root device", which can be set by the
>> command "root".
>>=20
>> -> Das "IMAGE_DEVICE" ist, wo GRUB dann stage2 und die menu.lst sucht.
>>=20
>> Du kannst nat=FCrlich auch weiter in die /-Partition installieren:
>>=20
>> grub> setup --stage2=3D/boot/grub/stage2 (hd0,0) (hd0,0)
>>=20
>> Wobei da die /boot/grub/device.map den passenden Eintrag haben mu=DF,
>> da=DF (hd0) =3D=3D CF-Karte.
>
>Wieso, Du verwendest doch auch f=FCr die Root-Partition nur
>GRUB-Ger=E4tebezeichner.
>
>Ich war bisher der Meinung, dass die device.map nur von
>grub-install[.unsupported] gebraucht wird, weil als Argumente f=FCr dieses
>Skript Linux-Ger=E4tebezeichner (/dev/sdXy) =FCbergeben werden k=F6nnen.
Und was meinst du, woher Grub wei=DF, as hd0 und was hd1 .. sein soll?
>Den Versuch, die Zuordnung zwischen Linux- und GRUB-Ger=E4tebezeichnern
>f=FCr die device.map mit der Option --recheck 'erraten' zu lassen, halte
>ich inzwischen sogar nur dann f=FCr sinnvoll, wenn man das genau in dem
>laufenden System macht, f=FCr das man GRUB gerade installieren m=F6chte.
Sowieso. Ich hab das System hier im neuen Rechner vorinstalliert --
und zwar auf ne externe Platte am anderen. Dort war meine jetztige
/dev/sda eben /dev/sdk. Und wenn ich dann (im BIOS-Bootmen=FC die Platte
ausgew=E4hlt hab) war sie dann /dev/sdg und Grub fand sich nicht weil's
eben nimmer hd0 sondern hd6 oder so war. Ich mu=DFte dann auch per find
die richtige Platte finden. Und im neuen System an Onboard SATA0
geh=E4ngt war sie dann eben /dev/sda.
>Installiert man GRUB aus einem z.B. von DVD gestarteten externen System
>f=FCr ein auf Platte installiertes System, dann sollte man das IMHO am
>besten in einer GRUB-shell, wie Du es oben gezeigt hast, machen. Man
>muss sich dann nur klar =FCber die Reihenfolge der Laufwerke sein, die das
>BIOS an den GRUB das gerade laufenden Systems gemeldet hat.
Vielmehr: melden wird, wenn man von der Platte startet. Aber dann mu=DFt
du AFAIK explizit '--stage2=3D' angeben, sonst wird das nicht klappen.
>> Wenn's dann klemmt mu=DFt du gucken, als was das device im Grub von
>> CF-gebootet auftaucht (da hilft dann z.B. 'find /boot/grub/menu.lst'
>> am grub-Prompt.
>
>Wenn man mehrere Platten bzw. Partitionen mit GRUB drauf hat, kann man
>so leider das Ger=E4t nicht identifizieren, weil find mehrere hd(x,y)
>findet :-(
Mach das mal wie ich mit 11 Platten (10 intern, 1 extern), aber
immerhin nur 3 Systemen (oder waren's 4?).
-dnh
--=20
"Sorry, I'm currently working with simpler life forms. Nothing with a
backbone." -- "Winston Scudder Thurmad"
"Oh. Can I have a middle manager then?" -- "Helix"
[from "Freefall" [http://freefall.purrsia.com/ff600/fv00507.htm]