Discuri bootabile și proces de încărcare

Discul de boot este în esență un sistem Linux miniaturativ și autonom pe o dischetă. Trebuie să îndeplinească multe dintre funcțiile pe care le gestionează un sistem Linux de dimensiuni mari. Înainte de a încerca să o creați, trebuie să înțelegeți elementele de bază ale procesului de boot Linux. Prezentăm aici principiile care sunt suficiente pentru a înțelege restul acestui document. Multe detalii și opțiuni alternative au fost omise.







Procesul de bootstrap.

Toate sistemele PC pornesc procesul de boot de la executarea codului în ROM (denumit BIOS) prin încărcarea sectorului 0, cilindrul 0 al dispozitivului de încărcare. Un dispozitiv de boot este de obicei o unitate (numită A: în DOS și / dev / fd0 în Linux). BIOS-ul încearcă apoi să execute acest sector. Pe majoritatea discurilor de boot, sectorul 0, cilindrul 0 conține fie:

codul încărcătorului, cum ar fi LILO, care găsește, încarcă și execută nucleul, pornind corespunzător boot-ul; sau

începutul kernelului sistemului de operare, cum ar fi Linux.

Dacă nucleul Linux este copiat direct pe o dischetă, primul sector al discului este primul sector al kernel-ului Linux. Acest prim sector va continua procesul de încărcare, încărcând restul kernel-ului din dispozitivul de boot.

Odată ce nucleul este încărcat complet, acesta inițializează driverele de dispozitiv și structurile lor de date. Odată ce este complet inițializată, se arată în imaginea sa o celulă specială, numită cuvânt ramdisk. Acest cuvânt specifică unde nucleul va căuta sistemul de fișiere rădăcină. Sistemul de fișiere rădăcină este un sistem de fișiere obișnuit care va fi montat ca `` / ''. Nucleul trebuie să-i spună unde să caute sistemul de fișiere rădăcină; Dacă nu poate găsi imaginea de boot, se oprește.

În unele situații # 8208; de multe ori când porniți de pe o dischetă # 8208; sistemul de fișiere rădăcină este încărcat în ramdisk - RAM (RAM), cu care sistemul funcționează ca un disc. RAM are mai multe ordine de mărime mai rapidă decât o floppy disk, astfel încât operațiile de sistem cu ramdisk sunt rapide. Kernel-ul poate de asemenea să descarce un sistem de fișiere comprimat de pe o dischetă și să-l decomprime într-un ramdisk, ceea ce vă permite să plasați mai multe fișiere pe dischetă.

Odată ce sistemul de fișiere rădăcină este încărcat și montat, veți vedea mesajul:

Odată ce sistemul a încărcat cu succes sistemul de fișiere rădăcină, încearcă să execute programul init (in / bin sau / sbin). init citește fișierul de configurare / etc / inittab. caută un șir marcat de sysinit. și execută scriptul specificat. Scriptul de sysinit este, de obicei, ceva de genul / etc / rc sau /etc/init.d/boot. Acest script este un set de comenzi pentru shell care rulează servicii de bază ale sistemului, cum ar fi rularea fsck pe hard-discuri. încărcați modulele kernel necesare, inițiați schimbarea, inițializați rețeaua și montați unitățile menționate în / etc / fstab.







Acest script solicită de multe ori alte scripturi, pentru inițierea modulară. De exemplu, în sysvinit structura generală, directorul /etc/rc.d/ conține o structură complexă de subdirectoare ale căror fișiere să specifice cum să activați și să închidă cele mai multe servicii de sistem. Cu toate acestea, pe discurile bootabile, scriptul sysinit este adesea foarte simplu.

Când scriptul sysinit se termină, controlul revine la init. care apoi intră în nivelul de execuție implicit. definită în inittab de cuvântul cheie initdefault. Șirul runlevel definește de obicei un program similar cu getty. care este responsabil pentru conexiunea dintre consola și tty. Acesta este programul getty. care imprimă promptul "login:" prompt. Programul getty. pentru a verifica sesiunea de conectare și pentru a stabili sesiunile de utilizatori, solicită programul de conectare.

Tipuri de discuri.

După ce am făcut o prezentare generală a procesului de bootstrap, putem defini acum diferitele tipuri de discuri presupuse. Clasificăm discurile în patru tipuri. Aici și în acest document, dacă nu se specifică altfel, termenul "disc" este folosit ca o dischetă, deși majoritatea materialelor discutate pot fi, de asemenea, folosite pentru hard discuri.

Discul conține un nucleu bootabil. Discul poate fi folosit pentru a porni kernelul, care poate încărca apoi sistemul de fișiere rădăcină pe un alt disc. Kernel-ul de pe discul de boot trebuie să specifice de obicei unde să caute sistemul de fișiere rădăcină.

Deseori, discul de încărcare încarcă sistemul de fișiere rădăcină de la o altă dischetă, dar puteți specifica că discul de boot pornește sistemul de fișiere rădăcină de pe hard disk. Acest lucru se face de obicei atunci când testați un nou kernel. (De fapt, `` make zdisk '' va crea automat un astfel de disc din codul sursă al kernelului).

Un disc cu un sistem de fișiere care conține fișierele necesare pentru a rula sistemul Linux. Un astfel de disc nu conține neapărat un kernel sau un bootloader.

Discul rădăcină poate fi folosit pentru a rula sistemul independent de orice alte discuri după încărcarea kernel-ului. De obicei, discul rădăcină este copiat automat în ramdisk. Acest lucru face ca discul rădăcină să fie mult mai rapid și eliberează unitatea de disc pentru discul de serviciu.

Boot / Root (boot / rădăcină)

Un disc care conține atât sistemul de fișiere kernel cât și sistemul de fișiere rădăcină. Cu alte cuvinte, are tot ce aveți nevoie pentru a încărca și rula un sistem Linux fără un hard disk. Avantajul acestui tip de disc în compact # 8208; tot ce aveți nevoie este pe același disc. Cu toate acestea, dimensiunea treptată a tuturor duce la faptul că este tot mai dificil să se pună totul pe o dischetă, chiar și cu compresie.

Un disc care conține un sistem de fișiere care nu este destinat pentru montare de către sistemul de fișiere rădăcină. Acesta este un disc de date suplimentar. Dacă aveți prea mult spațiu pe discul root, puteți utiliza un disc de acest tip pentru a stoca alte utilități.

În general, atunci când spunem "crearea unui disc bootabil", noi intenționăm să creăm atât componentele de boot (kernel) cât și cele de root (files). Ele pot fi fie disc (single boot / root), fie separate (boot + root). Abordarea cea mai flexibilă pentru dischetele de salvare constă în utilizarea dischetelor separate de rădăcină și de boot, precum și una sau mai multe dischete de service, pentru a soluționa excesul.







Articole similare

Trimiteți-le prietenilor: