Boot Managere in Linux

Embed Size (px)

Citation preview

Call for Papers 29.01.2005

Boot managere n Linux

Procesul de boot Dupa terminarea POST-ului, intreruperea INT 19 intra in actiune, aceasta intrerupere avand rolul de a incarca primul sector de pe hard disk adica MBR in memorie la locatia 0000:7c00, dupa care va rula codul de la locatia respectiva. Micutul program din MBR va incerca sa gaseasca partitia bootabila (activa) din tabela de partitii, in cazul in care o gaseste va incarca in memorie sectorul de boot din partitia activa.

MBR ( Master Boot Record) Master Boot Record este primul sector aflat pe hard disk, acest sector fiind creat la partitionare de programul FDISK, sector ce contine 512 Bytes. Sectorul este impartit in : 1) Programul de boot (Master Boot Code) 446 bytes 2) Tabela de partitii (Master Partition Table) 64 bytes (16 x 4) 3) Semnatura (Boot Signature) - 2 bytes

-1-

Call for Papers 29.01.2005

1) Programul de boot Este un mic programel ce incepe de la offset-ul 000h ocupand 446 de octeti. Rolul acestui program este de a afla care este partitia activa. In cazul in care o gaseste executa codul din sectorul de boot din partitia activa. 2) Tabela de partitii Acesta tabela contine intrarile pentru cele 4 partitii primare, dintre care numai una poate fi activa la un moment dat. Linux-ul noteaza aceste partitii cu : - daca hard disk-ul se afla pe primary master le noteaza cu hda1 - hda4, respectiv cu hdb1 hdb4 daca se afla pe primary slave. - daca hdd se afla pe pe controlerul secondary partiile vor primi denumirea de hdc1-4, respectic hdd1-4. In cazul in care exista si o partitie extinsa aceasta partitie va fi denumita hda5 hdxx. Aceasta tabela de partitii incepe de la offset-ul 0x01BE ocupand 64 de octeti ca marime, continand 4 partitii primare sau 3 primare si una extinsa, fiecare dintre ele ocupand 16 bytes. Cea extinsa la randul ei poate fi impartita in mai multe discuri logice (hda6 - hdaX). 3) Semnatura Ultimii 2 bytes sunt ocupati de o suma de control care are rolul de a verifica daca fost definita o tabela de partitii sau daca exista erori in tabela de partitii, semnatura avand intotdeauna valoarea AA55 in hexazecimal. Boot Managerul este primul program ce ruleaza cand este pornit un calculator. El este responsabil de incarcarea si transferarea controlului sistemului de operare sau mai bine zis kernelui, kernelul initializand restul sistemului de operare. El este instalat in MBR sau in sectorul de boot al unei partitii si ocupa 446 de octeti. Cele mai folosite bootmanagere sunt:

-2-

Call for Papers 29.01.2005 -

GRUB LILO LOADLIN

GRUB (GRand Unified Bootloader)Grub a fost realizat in anul 1995 de Erich Boleyn, iar in anul 1999 a ajuns facand parte componenta din proiectul GNU. Initial el a incercat sa modifice boot loader-ul de la FreeBSD, dar a realizat ca e mai bine sa inceapa sa scrie singur un bootmanager, ajungand azi unul dintre cei mai buni boot-manageri de linux. Este compatibil cu FreeBSD, NetBSD, OpenBSD, Linux, si de asemenea suporta Dos si Windows NT/XP. Acest manager este foarte flexibil el permitand ca incarcarea sistemului sa fie posibila si dintr-o consola: GRUB version 0.95 (639K lower / 261056K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename.] grub> De asemenea Grub suporta si o multitudine de sisteme de fisiere: FFS, FAT16, FAT32, minixfs (cel mai vechi sistem) si ext2. Cu grub putem face o discheta bootabila indiferent de distributia instalata, in cazul lui Lilo acest lucru era posibil doar pentru sistemul ce era instalat pe hard disk. Alcatuire Este alcatuit din 2 parti principale numite stage 1 si stage 2. Stage 1 se afla in MBR ocupand 512 octeti exact cat are si sectorul, iar stage 2 se afla pe hard disk in /boot/grub. Mai exista inca un stage numit stage 1.5 care este intermediar intre stage 1 si stage 2, mai exact stage 1 incarca stage 1.5 iar stage 1.5 incarca stage 2.

-3-

Call for Papers 29.01.2005 In cazul in care nu isi gaseste unul dintre stage-uri 1.5 sau 2 grub ne lasa la indemana o consola cu care putem sa pornim sistemul. 1.2 Sistemul de numerotare Sistemul de numerotare a partitiilor pe care il foloseste grub este diferit fata de sistemul de numerotare al linuxului. Primele 2 litere desemneaza mediul care este accesat adica hd (hard disk) sau fd (floppy disk). Prima cifra reprezinta hard disk-ul, iar a doua cifra reprezinta partitia, in ambele cazuri numerotarea facandu-se de la 0. Ex: (fd0) floppy (hd0) primul hard disk de pe sistem (hd1) al doilea hard disk de pe sistem (hd0,1) a doua partitie pe primul hard disk Partitiile primare sunt numerotate de la 0 - 3, iar discurile logice sunt numerotate de la 4 in sus. Instalarea programului 1) Se dezarhiveaza arhiva cu programul tar : #tar -xzvf grub-0.95.tar.gz 2) Se intra in director #cd grub-0.95 3) Se pregateste compilarea #./configure 4) Se compileaza programul # make 5) Dupa care se instaleaza programul #make install Dupa instalare fisierele de care avem nevoie se gasesc in directorul \usr\local\share\grub\i386-pc. Din acel director avem nevoie doar de fisierele stage1 si stage2. Aceste doua fisiere le copiem in directorul /boot/grub, in cazul in care el exista, daca nu exista cream noi directorul. # cp /usr/share/grub/i386-pc/stage{1,2} /boot/grub Dupa care cream un fisier cu intrarile pentru fiecare sistem de operare in parte pe care il denumim menu.lst. Trebuie spus ca suportul pentru splash-uri nu este activat, dar se poate rezolva cu anumite patch-uri.

-4-

Call for Papers 29.01.2005

Comenzi din consola pentru procesul de boot Linux grub> root (hd0,1)

Filesystem type is ext2fs, partition type 0x83grub> kernel /vmlinuz ro root=/dev/hda2

[Linux-bzImage, setup=0x1400, size=0x12d50d]Vmlinuz este doar simbolic, el se completeaza in continuare cu numele versiunii kernelui, versiunea diferind in functie de distributia folosita. Ex: (/vmlinuz-2.4.221.2115 in cazul Fedorei core 1). In cazul in care nu stim exact numele complet al kernelui putem folosi urmatoarea comanda : grub> kernel /boot/ Aceasta comanda ne listeaza toate fisierele ce se afla in directorul /boot pentru a ne usura gasirea exacta a kernelui. La distributiile mai noi trebuie executata si comanda initrd pentru ramdisk : grub> initrd (hd0,0) /initrd-2.4.22-1.2115.img

[Linux-initrd @ 0xffb8000, 0x27e3e bytes]In cazul in care se omite comanda initrd va aparea eroarea Kernel panic: No init found. Try passsing init=option to kernel . grub> boot Sa explicam comezile ce le-am scris acum:

-

comanda root desemneaza locatia partitiei root unde e instalat linux. a doua comanda dupa cum se poate vedea este locatia kernelui, aceasta comanda mai contine si parametrul ro (read only) doar pt citire. iar ultima comanda boot da startul bootarii.

Dupa cum se poate vedea la prima comanda root s-a tinut cont de sistemul de numerotare a partitiilor folosit de Grub iar la a doua comanda root s-a tinut cont de sistemul folosit de linux la numerotarea partitiilor. Windows 9X/NT/XP

-5-

Call for Papers 29.01.2005

Folosind aceste comenzi se poate boota orice sistem Windows, aceste comenzi fiind folosite ca standard. grub> grub> grub> grub> rootnoverify (hd0,1) makeactive chainloader +1 boot

Comanda rootnoverify face acelasi lucru ca si comanda root dar nu o monteaza, make active declara partitia ca fiind activa, iar chainloader +1 preda controlul programului de boot din primul sector de pe partitia specificata. Dupa cum stiti sistemul de operare Windows, nu poate sa booteze de pe al doilea hard disk, asta in cazul in care mai avem un hard disk, asa ca trebuie sa folosim o tehnica de inversare a hard disk-ului pentru al pacalii. grub> map (hd0) (hd1) grub> map (hd1) (hd0) O alta problema se iveste atunci cand pe hard disk avem mai multe sisteme Windows instalate pe un hard disk. Atunci vor exista mai multe partitii primare pe hard disk si pentru Grub va aparea o confuzie si nu va stii pe care sa o aleaga. Si in acest caz este o solutie, si aceasta solutie consta in ascunderea uneia dintre partitii, pe cealalta lasand-o vizibila. grub> grub> grub> grub> grub> grub> unhide (hd0,0) hide (hd0,1) rootnoverify (hd0,0) chainloader +1 makeactive boot

FreeBSD grub> root (hd0,a) grub> kernel /boot/loader grub> boot Metode de instalare/reinstalare Instalare din consola

grub> find /boot/grub/stage1

# pentru gasirea partitiei root

-6-

Call for Papers 29.01.2005

sau grub> find /grub/stage1 # daca exista o partitie separata pentru boot

(hd0,1)

grub> root (hd0,1)

Filesystem type is ext2fs, partition type 0x83grub> setup (hd0) # instalarea se face in MBR

Checking if "/boot/grub/stage1" exists....... no Checking if "/grub/stage1" exists....... yes Checking if "/grub/stage2" exists....... yes Checking if "/grub/e2fs_stage1_5" exists....... yes Running "embed /grub/e2fs_stage1_5 (hd0)"....... 15 sectors are embedded succeded Running "install /grub/stage1 (hd0) (hd0) 1+15 p (hd0,2)/grub/stage2 /grub/grub.conf....... succeded Donegrub> setup (hd0,1) # instalare in sectorul de boot al partitiei

Utilitarul grub-install Boot-managerul are in pachetul sau un utilitar de instalare, ce instaleaza stage 1 in MBR. Pentru a instala Grub folosind aceasta metoda trebuie sa avem la indemana o distributie de Linux, o discheta sistem, un Live CD sau orice altceva pentru a avea acces la consola. #mkdir linux - facem un director oarecare de ex. /linux #mount /dev/hda2 /linux - dupa care montam partitia in /linux #chroot /linux - intram in /linux #cd /boot/grub - intram in directorul /boot/grub Dupa care executam comanda : #grub-install /dev/hda # in cazul in care avem o singura partitie pentru linux sau #grub-install --root-directory=/boot /dev/hda # daca avem o partitie separata pentru /boot

-7-

Call for Papers 29.01.2005

Installation finished. No error reported. This is the contents of the device map /boot/grub/device.map. Check if this is correct or not. If any of the lines is incorrect, fix it and re-run the script `grub-install'. # this device map was generated by anaconda (fd0) /dev/fd0 (hd0) /dev/had

Metode de reinstalare Prezint cateva metode de reinstalare a acestui boot-loader in cazul distributiilor Fedora si Mandrake. Fedora Bootam cu primul CD al distributiei dupa care la aparitia prompterului tastam linux rescue. Mediul de salvare de pe cd va cauta partitia root si o va monta in /mnt/sysimage. In continuare vom intra in partitie cu comanda chroot /mnt/sysimage, dupa care vom executa comenzile de instalare. Mandrake La fel bootam ca si in cazul Fedorei cu primul CD al distributiei, la aparitia prompterului apasam tasta F1. La aparitia prompterului se vom scrie rescue si apasam [Enter]. boot: rescue Ne va aparea un meniu cu urmatoarele optiuni Re-Install Boot Loader Restore Windows Boot Loader Mount your partition under /mnt Go to console Reboot Doc: what's addressed by this Rescue Din meniu vom alege prima optiune de reinstalare a boot-managerului sau a treia optiune, optiune in care se monteaza automat partitia in /mnt, dupa care putem executa comenzile de instalare.

-8-

Call for Papers 29.01.2005 Editarea fisierului de configurare a meniului Fisierul de configurare al meniului se afla in directorul /boot/grub si se numeste menu.lst sau grub.conf depinde de distributie. In cazul in care meniul nu apare la bootare inseamna ca acesta lipseste si nu a fost incarcat de catre Grub.

Sa analizam in continuare intrarile pentru fiecare sistem de operare : Linux title Red Hat Linux default=0 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz root (hd0,1) kernel /vmlinuz-2.4.9-21 ro root=/dev/hda2 initrd /initrd-2.4.9-21.img Prima linie ne arata titlul ce va aparea in meniu, a doua linie default=0 seteaza ca aceasta intrare sa fie aleasa ca implicita la bootare, a treia linie timeout=10 ne arata timpul pentru a selecta o intrare din meniu, in cazul in care nu se apasa nici o tasta se executa automat selectia aleasa ca implicita. A patra linie splash=(hd0,0)/grub/splash.xpm.gz ne arata calea catre imaginea de fundal, de mentionat faptul ca calea catre fundal este numerotata in sistemul folosit de Grub. Splash-urile folosite de Grub sunt in format XPM, au ca dimensiuni o rezolutie de 640x480 si sunt pe 14 culori, iar in acest caz imaginea este comprimata cu Gzip pentru a se incarca mai repede. Pentru modificarea splash-urilor va recomand sa cititi urmatoarele tutoriale de pe urmatoarele site-uri: http://ruslug.rutgers.edu/~mcgrof/grub-images/ http://www.linuxgazette.com/node/142 sau daca doriti sa luati splash-uri gata facute le luati de aici: http://ruslug.rutgers.edu/~mcgrof/grub-images/images/ - pentru diferite distributii http://sleepybuddha.sl.funpic.de/ubuntu/ - cateva splash-uri pentru Ubuntu

-9-

Call for Papers 29.01.2005 Optional putem folosi si alte comenzi in afara de acestea. Cele mai folosite ar fi urmatoarele: password --md5 consola color black/yellow yellow/black # pentru blocarea accesului la # pentru colorarea meniului

Exemplu de creare a unei parole criptate folosind consola grub> md5crypt Password: ********** Encrypted: $1$saMbl3Bs$7SDDtT6YiTpQ4lGMCccDg.

Windows

title Windows XP Professional rootnoverify (hd0,0) makeactive chainloader +1 Va prezint in continuare exemplul unui fisier de configurare al distributiei Fedora core 1 pentru a vedea configurarile folosite de aceasta distributie. Fedora Core 1 # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You do not have a /boot partition. This means that # all kernel and initrd paths are relative to /, eg. # root (hd0,1) # kernel /boot/vmlinuz-version ro root=/dev/hda2 # initrd /boot/initrd-version.img #boot=/dev/hda default=1 timeout=10 splashimage=(hd0,1)/boot/grub/splash.xpm.gz password --md5 $1$saMbl3Bs$7SDDtT6YiTpQ4lGMCccDg. title Fedora Core (2.4.22-1.2115.nptl) root (hd0,1) kernel /boot/vmlinuz-2.4.22-1.2115.nptl ro root=LABEL=/ hdc=ide-scsi rhgb initrd /boot/initrd-2.4.22-1.2115.nptl.img title Windows XP rootnoverify (hd0,0)

- 10 -

Call for Papers 29.01.2005

chainloader +1 NTLDR Daca dorim sa pastram boot-managerul folosit de Windows atunci vom urma urmatorii pasi: 1) Salvarea MBR-ului sub forma unui fisier cu comanda : #dd if=/dev/hda2 of=/home/bootsect.lnx bs=512 count=1 2) In directorul /home vom gasi fisierul pe care l-am creat, acest fisier il vom copia pe o discheta sau il copiem din Windows in cazul in care avem un utilitar care sa acceseze partitii ext2 sau ext3, cum ar fi Explore2fs version 1.0 sau mai exista un plugin pentru Total Commander. #cp /home/bootsect.lnx /mnt/floppy

3) Pentru modificarea fisierului de configurare a boot-managerului din Windows, care se gaseste in C:\ si este ascuns trebuie sa mergem in meniul Tools->Folder Options->View, selectam Show hidden files and folders, si deselectam Hide protected operating system files (Recommended).Dupa care se da click dreapta pe fisier alegem Properties si debifam Read-only. [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect C:\bootsect.lnx="Linux" 4) Dupa ce s-au facut toate acestea va trebui sa se rescrie MBR-ul, existand 2 cazuri: a) Daca inca avem instalat Win9X pe calculator se va boota de pe o discheta sistem si se va da comanda : A:\Fdisk /mbr b) Iar in cazul in care avem Win XP instalat, se va boot-a cu CD-ul vom alege optiunea Repair, dupa care se alege partitia unde este instalat Windows, se va introduce parola de administrator si se va executa comanda : C:\WINDOWS\FIXMBR Crearea unei dischete bootabile 1) Formatam discheta

- 11 -

Call for Papers 29.01.2005 #fdformat /dev/fd0 2) Cream sistemul de fisiere #mke2fs /dev/fd0 3) Montam discheta #mount /dev/fd0 /mnt/floppy 4) Facem directoarele #mkdir -p /mnt/floppy/boot/grub 5) Copiem fisierele pe discheta (doar stage1, stage2 si menu.lst sunt necesare) #cp /boot/grub/stage1 /mnt/floppy/boot/grub #cp /boot/grub/stage2 /mnt/floppy/boot/grub #cp /boot/grub/menu.lst /mnt/floppy/boot/grub 6) Dupa care executam urmatoarele comenzi grub> root (fd0) grub> setup (fd0) grub> quit sau mai simplu #grub-install --root-directory=/mnt/floppy '(fd0)' La acesta comanda timpul de instalare este ceva mai mare, datorita faptului ca se copiaza toate stage-urile pe discheta. 7) Si in sfarsit demontam discheta #umount /mnt/floppy

LILO (LInux LOader)Numele de LILO provine de la Linux Loader si a fost unul dintre cele mai folosite boot-managere de-a lungul anilor. De ce zic ca a fost? Daca facem o comparatie intre el si Grub, Lilo avea cateva dezavantaje, cum ar fi: lipsa suportului pentru limita de 1024 de cilindri, incepand cu versiunea 21.4 a aparut si suportul pentru 1024 de cilindri sau la orice modificare a fisierului de configurare trebuia sa fie reinstalat, pentru a stii de modificarile facute. Sectorul de boot este incarcat de Bios dupa cum se stie la adresa 0x7C00, dupa care programul se muta la adresa 0x9A00 pentru anumite setari si incarca a doua parte a boot-managerului de la adresa 0x9B00, dupa care ii preda controlul. Pentru a vedea ce parti din boot-manager au fost incarcate, Lilo afiseaza pe rand literele L..I..L..O fiecare litera insemnand o anumita faza de incarcare din boot-manager.

- 12 -

Call for Papers 29.01.2005

Lilo poate incarca sisteme de operare ca: DOS, Windows 9x/NT/2000/XP, Linux, si BSD. Deasemenea Lilo nu necesita o partitie dedicata, poate fi instalat numai din Linux si nu are nevoie de un sistem de fisiere. Un dezavantaj semnificativ pe care il are Lilo este acela ca in cazul in care in fisierul de configurare apar erori, nu o sa putem sa bootam nici un sistem de operare, pe cand la Grub putem porni orice sistem direct din consola indiferent de setarile din fisierul de configurare. Si Lilo are o mini consola, dar este folosita doar pentru a specifica parametrii optionali kernelui. Pentru a avea acces la ea in cazul in care in fisierul de configurare nu apare comanda prompt trebuie sa apasam tasta [Shift]. Putem de asemenea sa incarcam sistemul de operare direct din prompter boot: linux root=/dev/hda2 Fisierul de configurare Fisierul de configurare se afla in directorul /etc/lilo.conf. Comanda sbin/lilo foloseste acest fisier pentru a determina ce informatii din fisier trebuie scrise in sectorul de boot. Linux boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 message=/boot/message.txt lba32 default=linux image=/boot/vmlinuz-2.4.0-0.43.6 label=linux initrd=/boot/initrd-2.4.0-0.43.6.img read-only root=/dev/hda2 Acum sa explicam comenzile de configurare :

boot=/dev/hda aceasta comanda ii spune lui Lilo ca instalarea sa se faca pe primul hard disk de pe primul controller. map=/boot/map localizarea fisierului map, fisier ce contine indicatoarele pentru sistemele de operare. install=/boot/boot.b comanda ce ii ordona lui Lilo sa instaleze acest fisier ca un nou sector de boot. prompt pentru afisarea prompterului, in cazul in care acesta linie lipseste, putem avea acces la consola prin apasarea tastei [Shift].

- 13 -

Call for Papers 29.01.2005

timeout=10 este timpul de asteptare pentru alegerea sistemului de operare, in cazul in care nu s-a facut o alegere, va boota intrarea aleasa ca implicita. message=/boot/message este mesajul de boot lba32 modul de acces al hard disk-ului. Aceasta linie se poate inlocui cu comanda linear. default=linux aceasta linie ne arata care este sistemul de operare ales ca implicit. image=/boot/vmlinuz-2.4.0-0.43.6 localizarea kernelui label=linux ne arata numele ce va aparea in meniu. initrd=/boot/initrd-2.4.0-0.43.6.img ne arata locatia ramdisk-ului. read-only specifica ca partitia root sa fie montata doar pentru citire. root=/dev/hda2 specifica ce partitie sa fie folosita ca partitie root.

Slackware 10 foloseste de exemplu urmatorul fisier de configurare : # generated by 'liloconfig' # Start LILO global section boot = /dev/hda message = /boot/boot_message.txt prompt timeout = 1200 # Override dangerous defaults that rewrite the partition table: change-rules reset # VESA framebuffer console @ 1024x768x256 vga = 773 # Normal VGA console # vga = normal # VESA framebuffer console @ 1024x768x64k # vga=791 .. # End LILO global section # Windows bootable partition config begins other = /dev/hda1 label = Windows table = /dev/hda # Windows bootable partition config ends # Linux bootable partition config begins image = /boot/vmlinuz root = /dev/hda2 label = Linux read-only # Linux bootable partition config ends Putem de asemenea adauga cateva linii suplimentare in fisierul de configurare, de exemplu punerea unei parole generale pentru a nu putea boota. password=

- 14 -

Call for Papers 29.01.2005

sau o parola pe un kernel sau chiar pe un sistem de operare. image=/boot/vmlinuz- password= Windows other=/dev/hda1 label=windows table=/dev/hda #partitia unde este instalat windows # numele ce va aparea in meniu # tabela de partitii

In cazul in care avem Windows instalat pe al doilea hard disk, intrarea pentru Windows ar trebui sa arate ceva de genul asta: other=/dev/hdb1 label=windows table=/dev/hdb map-drive = 0x80 to = 0x81 map-drive = 0x81 to = 0x80 Daca dorim sa dezinstalam Lilo putem face asta din Linux : /sbin/lilo -u sau din Windows : fdisk /mbr pentru Win 9X sau C:\WINDOWS\FIXBOOT pentru Windows XP Dupa modificarea fisierului de configurare Lilo va trebui sa fie reinstalat pentru a stii de modificarile facute si pentru asta vom executa comanda /sbin/lilo -v. Crearea unei dischete de boot 1) fdformat /dev/fd0 # Formatarea dischetei 2) mke2fs /dev/fd0 # Crearea sistemului de fisiere

- 15 -

Call for Papers 29.01.2005 3) mount t ext2 /dev/fd0 /mnt/floppy # Montarea dischetei 4) cd /mnt/floppy # Schimbarea mediului de lucru 5) mkdir etc && mkdir boot # Crearea directoarelor 6) cp /boot/boot.b /mnt/floppy/boot # Copierea fisierului ce contine sectorul de boot Dupa ce am executat toate aceste comenzi trebuie creat un fisier de configurare pe care il vom denumi lilo.conf. boot= /dev/fd0 install= /boot/boot.b MAP= /mnt/floppy/boot/map read-only image= /boot/vmlinuz label=linux root= /dev/hda2 Acest fisier il vom salva pe discheta in directorul /etc. Nu ne mai ramane decat sa instalam Lilo pe discheta cu urmatoarele comenzi: 7) cd /mnt/floppy # schimbarea mediului de lucru 8) lilo -v -C /mnt/floppy/etc/lilo.conf # Instalarea lui Lilo pe discheta 9) umount /mnt/floppy # Demontarea dischetei

LOADLINPana acum am prezentat doua dintre cele mai folosite boot-managere de linux. Aceste doua boot-managere trebuie instalate in MBR sau cel putin in sectorul de boot al unei partitii. Loadlin ofera posibilitatea de a boota Linux dintr-o partitie Dos, fara sa foloseasca MBR-ul sau un sectorul de boot dintr-o partitie. Nelucrand cu MBR-ul acest program ne da o oarecare siguranta fata de celelalte boot-managere. Programul il putem lua de pe http://elserv.ffm.fgan.de/~lermen/ sau de pe primul CD din Fedora, programul il gasiti in dir /dos utilities, sau din Slackware 10 din directorul /kernels.

- 16 -

Call for Papers 29.01.2005

Instalare Instalarea este foarte simpla si se face in cativa pasi. 1) Dezarhivam arhiva tar xzf /mnt/cdrom/dosutils/loadlin.gz 2) Facem un director pe partitia unde este instalat Windows numit /linux sau orice nume dar sa nu nu depaseasca 8 litere pentru ca in Dos lipseste suportul pentru fisierele mai lungi de 8 litere. mkdir /mnt/c/linux 3) Copiem urmatoarele fisiere : loadlin.exe, kernelul distributiei vmlinuz din /boot si fisierul initrd.gz. Dupa ce copiem kernelul va trebui sa il redenumim in vmlinuz sau orice altceva dar sa nu depaseasca 8 litere, la fel se procedeaza cu fisierul initrd.img Configurare Pentru a putea boota Linux trebuie sa ne aflam intr-un mediu Dos in care introducem urmatoarele comenzi: 1) Incarcarea kernelului fara ramdisk C:\Linux> loadlin vmlinuz root=/dev/hda2 ro # Slackware 10

- 17 -

Call for Papers 29.01.2005

2) Incarcarea kernelului si a ramdisk-ului C:\Linux> loadlin vmlinuz root=/dev/hda2 ro initrd=initrd.img Pentru a nu executa manual aceste comenzi de cate ori bootam in linux, vom face un fisier de configurare. c:\linux\vmlinuz root=/dev/hda2 initrd=initrd.img ro mem=256M # numele pe care il l-am dat kernelui # partitia pe care o vom monta ca root # imaginea ramdisk-ului # montarea sa fie facuta doar pentru operatia de citire # pentru folosirea intregii memorii de catre kernel

Acest fisier il vom denumi oricum, dar pentru exemplul nostru il denumim loadlin.par. De mentionat ca in arhiva vom gasi si un fisier de configurare dat ca exemplu numit test.par Putem folosi toate aceste comenzi intr-o singura linie de comanda cu specificarea ca prompterul de Dos suporta doar 128 de caractere in lungime. Ajunsi in prompterul de Dos vom tasta urmatoarea comanda pentru a incarca Linux. C:\Linux> loadlin @loadlin.par De asemenea pentru a fi si mai usor de incarcat sistemul de operare putem sa editam fisierul linux.bat pe care il gasim in arhiva cu care putem boota linux doar cu comanda linux. rem Sample DOS batch file to boot Linux. rem First, ensure any unwritten disk buffers are flushed: smartdrv /C rem Start the LOADLIN process: c:\linux\loadlin vmlinuz root=/dev/hda2 ro initrd=initrd.img C:\Linux> linux Cea mai buna solutie este de a boota linux este folosirea unui meniu asa cum are Grub si Lilo. Windows 98 Pentru a crea un meniu trebuie sa editam fisierul config.sys cu urmatoarele comenzi:

[Menu]

- 18 -

Call for Papers 29.01.2005

menuitem=Linux, Linux Fedora menuitem=Windows, Windows 98 menudefault=Linux, 10 menucolor=15,1 [Linux] shell=c:\linux\loadlin.exe @c:\linux\loadlin.par [Windows] Dupa cum am spus si mai sus trebuie sa ne aflam intr-un mediu Dos. Avem doua posibilitati de a intra in Dos, fie de pe hard disk, fie cu ajutorul unei dischete. Daca avem instalat Windows 98 pe hard disk putem sa intram in Dos chiar inainte de procesului de boot cu ajutorul tastei F8, de mentionat faptul ca doar la Windows 9x se poate intra in Dos. Daca nu avem instalat Windows 9X singura posibilitate este de a boota este cu discheta sau cu ajutorul unui CD-ROM. Pentru aceasta ne trebuie o discheta sistem pe care poate o avem de pe vremea lui Win 98, daca nu vom lua de pe internet imaginea unei dischete de sistem. Imaginile le putem lua de pe adresa www.bootdisk.com sau de pe orice site ce contin imagini pentru dischete. Daca nu avem posibilitatea de a ne conecta la internet singura noastra sansa este de a face noi o discheta sistem. My computer -> Floppy (A:) -> Format -> Create an MS-DOS startup disk -> Start

Ca si o concluzie putem spune ca oricare dintre aceste boot-managere de linux este o alegere potrivita, fiecare cu avantajele si dezavantajele sale. Lilo a fost o alegere buna de-a lungul anilor, noul venit Grub fiind folosit din ce in ce mai mult de foarte multe distributii. Loadlin este de asemenea o alegere potrivita, mai ales atunci cand sectorul de boot a fost rescris, si nu avem posibilitea de boota cu Grub sau Lilo. Ma jos aveti un tabel de comparatie pentru cele 3 boot-managere de linux pentru a va face o idee fiecare ce avantaje si dezavantaje are.

- 19 -

Call for Papers 29.01.2005

Grub

Lilo

Loadlin

Ultima versiune aparuta

0.95

22.6.3

1.6c

Suportul pentru limita de 1024 de cilindri

Da

Da (incepand cu versiunea 21.4)

Da

Partitie dedicata Instalare din sistemul Poate sa incarce urmatoarele sisteme de operare Instalare numai in MBR sau in sectorul de boot al partitiei Cerinte sistem de fisiere Imagini fundal Licenta

Nu Linux DOS, Windows 9x/NT/2000/XP, Linux, BSD, BEOS, SCO Unix, OS/2, Solaris Da EXT 2 Da free

Nu Linux DOS, Windows 9x/NT/2000/XP, Linux, BSD Da Da free http://www.acm.uiuc.ed u/workshops/ linux_install/lilo.html

Nu Windows, Linux

Linux

Nu FAT/FAT32 Nu free

Site

http://www.gnu.org /software/grub/

http://elserv.ffm.fga n.de/~lermen

Sper ca acest articol v-a lamurit intr-o oarecare masura si sa va ajute in rezolvarea problemelor de configurare ale acestor programe. Acest articol se va actualiza cu noi informatii despre aceste programe, plus adaugarea bootmanagerului ISOLINUX/SYSLINUX. Pentru eventualele greseli din articol va rog sa-mi scrieti pe adresa de email [email protected].

- 20 -