IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Linux - Allgemeines - Linux Bootloader



Linux Bootloader

Es werden die verschiedenen linux bootloader vorgestellt (direkt kernel auf floppy, lilo, loadlin, syslinux, ...)


Autor: Franz Schaefer (mond)
Datum: 23-01-2002, 19:39:44
Referenzen: man lilo
lilo --help
man lilo.conf
Schwierigkeit: Fortgeschrittene
Ansichten: 5786x
Rating: 7 (1x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



| special deluxe |

Übersicht

gestern haben wir den bootvorgang ganz allgemein kennengelert. heute
wollen wir die verschiedenen bootloader fuer linux im detail besprechen.

und zwar:

* direktes booten von floppy disk

* LILO - der meist verwendete bootloader fuer linux

* syslinux - das gerne fuer bootfloppys und netzwerkboot verwendet wird.

* loadlin - booten direkt aus einem bestehenden dos/win3xx/win9x system.


zur wiederhohlung: die einfachste moeglichkeit linux zu booten (wenn auch
im dauerbetrieb nicht ideal) ist es einen nakten kernel direkt auf auf das
floppy device zu schreiben:

z.b.:

cat bzImage > /dev/fd0

der kernel enthaelt also seinen eigenen minibootloader am anfang selbst..
nachteil obiger methode ist dass man keine parameter mitgeben kann. einige
wichtige optionen kann man allerdings in den kernel hineinpatchen. dazu
dient der befehl "rdev"

rdev /dev/fd0

oder

rdev bzImage

wuerde das root device anzeigen dass der kernel nach der initalisierung
mounten will.

rdev /dev/fd0 /dev/hdb7

wuerde dem auf die floppy geschrieben kernel sagen dass er /dev/hda7 als
root filesystem mounten soll.

rdev -v wuerde den video modus verstellen mit dem der kernel bootet
(erfahrene linux user bevorzugen meist die 80x25 zeichen console: (modus
-2 ))

waehrend der nakte kernel auf der floppy recht praktisch ist in
notfaellen. fuer den taeglichen gebrauch will man meist von harddisk
booten. hier verwendet man meist LILO den LInux LOader.

LILO schreibt sich in den ersten block der harddisk (den sogenannten MBR)
genauer gesagt nur in die ersten 446 bytes weil dahinter steht dann die
parition table.

von dort laed er dann weitere sektoren von denen er sich gemerkt hat wo
sie liegen und schliesslich den kernel..

LILO bietet ein menue zur auswahl unterschiedlicher kernel, kann auch
andere system booten (z.b dos/win) und kann parameter an den kernel
uebergeben.

zum erstellen eines bootsektors dient das linux programm "lilo"

lilo

schreibt also einen neuen boot sektor, und zwar anhand der einstellungen
in /etc/lilo.conf

will man also aenderungen machen so editiert man dieses file und ruft dann
"lilo" auf. man muss lilo ebenfalls aufrufen wenn man einen kernel
geaendert hat. (selbst wenn man ihn auf den selben namen kopiert: da sich
lilo die bloecke merkt auf denen der kernel steht muss er in so einem fall
neu geschrieben werden.)


ein typischer block im lilo.conf koennte etwa so aussen:

image=/boot/bzim_test218
label=linuxtest
append="mem=128M ether=11,0x260,eth1"
root=/dev/hda1
read-only
alias=3

das erste waere der name des kernelfiles. hier also /boot/bzim_test218
dann der name des images den man bei der auswahl angeben muss. hier also
"linuxtest". dann parameter die dem kernel uebergeben werden. hier z.b.
mem=128 (fuer einen rechner der aufgrund eine alten BIOS den speicher
ueber 64MB sonst nicht erkennen wuerde. und die angabe fuer eine alte ISA
netzwerkarte damit er die findet..)

danach ganz wichtig: das root device wo er das rootfilesystem suchen soll.
hier z.b. /dev/hda1. danach noch ein alias name. d.h. man kann bei der
auswahl auch "3" eingeben anstatt "linuxtest".


sonstige wichtige optionen:

boot=/dev/hda

auf welches device er den boot sektor schreiben soll

lba32 .. ist empfehlenswert auf neueren rechnern - damit kann man auch
jenseits von 1024 cylinder booten (aelteren BIOSe konnte das nicht)

vga=-2 .. bootet im 80x25 modus. man hat mehr uebersicht als mit den 40x25

delay=30
timeout=30
prompt
.. man hat 3 sekunden zeit ansonsten wird der erste eintrag
gebootet. man bekommt immer einen prompt zum auswaehlen was man
booten will. sonst muesste man zuerst SHIFT taste druecken.

am LILO prompt kann man nicht nur den kernel auswaehlen sondern auch
haendisch parameter eintippen. z.b.:

INIT=/bin/bash

bootet direkt in eine shell. ohne passwort. damit kann jeder der zugang
zum rechner hat root werden. ist der rechner oeffentlich zugaenglich
sollte man daher ein lilo passwort setzten dass die eingabe von parametern
an den kernel nur mit passwortabfrage erlaubt:

password=strenggeheim

"lilo" erlaubt auch eine menge an kommandline optionen beim aufruf.
besonders nuetzlich:

lilo -r /mnt

wuerde einen lilo mit der configuration in /mnt/etc/lilo.conf schreiben
und alle pfade von /mnt weg betrachten. das ist praktisch wenn man nicht
auf der root partition gebootet hat die man normalerweise verwendet sonder
auf einer anderen oder auf einer rescue floppy oder aehnlichem und dann
das "/" verzeichniss dass man spaeter haben will haendisch unterhalb von
/mnt gemountet hat.

* hat man ein bestehendes dos/win system so kann man linux direkt von dort
heraus booten (geht nicht mit winNT, win2000). das packet dazu heist
loadlin. man hat ein programm namens loadlin.exe dem man als parameter
oder mit einem config file sagt welchen kernel und welche root partiton
man booten will..etc.. das file schaut aehnlich aus wie das lilo.conf
file. genau erklaerung findet man im readme.txt das beim loadlin dabei
ist..

* syslinux ist ebenfalls ein bootloader fuer linux er wird sehr gerne als
basis fuer rescue und boot disks von distributionen verwendet. syslinux
kann ein DOS filesystem lesen. d.h. kernel und configurationsfiles
(syslinux.cfg) muessen nicht auf fixen sektoren stehen sondern koennen als
DOS files auf einer DOS formatierten diskette stehen. das ist praktisch
fuer neueinsteiger die so die bootfloppy von ihrem alten dos/windows
system aus modifizieren koennen. um den syslinux bootloader auf eine leere
diskette zu schreiben kann man das program syslinux (unter linux) oder
syslinux.exe (unter dos/win) verwenden.


syslinux bietet ebenfalls die moeglichkeit ein BOOT image fuer systeme zu
erstellen die von netzwerk (PXE environment) booten koennen. damit kann
sehr leicht diskless systeme realisiern.

will man ein dualboot sytem mit windows NT machen so muss empfiehlt es
sich mit dem windowsNT bootloader zu booten (weil NT nur mit dem gebootet
werden will.) um linux zu booten schreibt man sich seinen bootsektor NICHT
in den MBR sondern an den anfang der partition von der aus man linux
starten will und kopiert sich dann diesen bootsektor in ein file:

z.b.:


dd if=/dev/hda2 bs=512 count=1 of=/boot/bootsec.lin


diese datei kopiert man sich dann auf seine windows NT partiton:
z.b.: auf C:\BOOTSEC.LIN

und traegt dann eine zeile ins "BOOT.INI" file des NT bootloaders ein:

C:\BOOTSEC.LIN="linux"

zum glueck gibt es ja heutzutage kaum noch gruende warum man ueberhaupt
ein dualboot system mit windows brauchen koennet... ausgenommen vielleicht
einige komerzielle spiele...


EXERCISES:

* schau dir deine bestehende lilo.conf an und zu verstehen was die
einzelnen zeilen im config file tun.

* fuege einen menuepunkt hinzu der identisch ist mit einem der anderen
punkte aber einen neuen namen (und eventuell alias) traegt.

* versuche am LILO bootprompt (ev. SHIFT druecken) parameter einzugeben.
experimentiere mit root=/dev/hdxx und init= parametern.

* versuche eine bootfloppy zu erstellen mit

- einem nakten kernel

- einem syslinux bootloader

* wenn du noch irgendwo eine verstaubte dos oder windows partition hast:
versuche linux mit loadlin zu booten.

 

_______________________________________________
CD ist ein service von SILVER SERVER
der inhalt unterliegt der GFDL
_______________________________________________



[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06246
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1154
Comments: 0