Įkeliama „Linux“ operacinė sistema. Scenarijaus vykdymas paleidžiant arba išjungiant „Linux“

antrinis įkroviklis schema su vietos žemėlapis... Tai verčia jį dirbti LILO veikla, kuriai reikia didesnės priežiūros, nes pakeista įkrovos procedūra ne atomiškai: pirmiausia vartotojas modifikuoja branduolį ar jo modulius, tada - redaguoja failą / etc / lilo .conf, kuriame yra informacija apie visas kompiuterio įkrovos parinktis, ir tada vykdoma komanda lilokuris renka paskirstymo lenteles visiems nurodytiems branduoliams ir antrinis įkroviklis ir įrašo pirminį ir antrinis įkroviklis kartu su kortelėmis į nurodytą vietą diske. Pagrindinis įkroviklis LILO (vadinamas LI) gali būti parašytas tiek MBR, tiek pradžioje skyrius „Linux“.

Paprasčiausias failas lilo .conf gali atrodyti taip:

Įkrovimas \u003d / dev / hda map \u003d / boot / map image \u003d / boot / vmlinuz-up root \u003d / dev / hda1 10.1 pavyzdys. Pagrindinė LILO konfigūracija: failo lilo.conf pavyzdys

Toks nustatymas LILO apibrėžia tik vieną įkrovos parinktį: pagrindinis įkroviklis įrašoma į pirmo kietojo disko pradžią (eilutės įkrovimas \u003d / dev / hda), vietos žemėlapis naudingumas lilo rašo į failą / boot / map, branduolys išgaunamas iš failo / boot / vmlinuz-up, o įrašas šaknis \u003d / dev / hda1 sako branduoliui, kad šakninių failų sistema esantis pirmojo disko pirmajame skaidinyje.

Viena iš mašinų, su kuria dirbo Metodijus, kartais buvo naudojama paleisti vieną programą, parašytą MS-DOS. Šios programos šaltinio kodai buvo prarasti seniai, taip pat ir autorius, todėl kompiuteryje turėjo būti įdiegta tiek „MS-DOS“, tiek „Linux“. Kaip rezultatas lilo .conf pasirodė taip:

# cat /etc/lilo.conf boot \u003d / dev / hda map \u003d / boot / map default \u003d linux-up prompt timeout \u003d 50 paveikslėlis \u003d / boot / vmlinuz-up label \u003d linux-up root \u003d / dev / hda5 initrd \u003d /boot/initrd-up.img tik skaitomas vaizdas \u003d / boot / vmlinuz-up label \u003d failsafe root \u003d / dev / hda5 initrd \u003d / boot / initrd-up.img vga \u003d normal append \u003d "failsafe noapic nolapic acpi \u003d off "tik skaitoma kita \u003d / dev / hda1 etiketė \u003d kitos dozės \u003d / dev / fd0 etiketė \u003d diskelis nesaugus 10.2 pavyzdys. LILO konfigūravimas dvigubos sistemos mašinoje

Čia „Linux“ buvo įdiegta penktajame disko skaidinyje (apie skyrių numeravimą IBM suderinamuose kompiuteriuose kalbėsime 11 skyriuje), o pirmajame yra MS-DOS. Be „MS-DOS“ paleidimo, yra dvi „Linux“ paleidimo galimybės ir dar viena - bet kuri operacinė sistema iš diskelio. Kiekvienas įkrovos variantas pažymėtas linijos etikete \u003d variantas. Pradžioje LILO išveda paprasčiausią 3 Jei įdiegta grafinė sąsajos versija, langą galima savavališkai dekoruoti. langas, kuriame išvardytos visos etiketės (šiuo atveju - „linux-up“, „failsafe“, „dos“ ir „floppy“). Vartotojas pasirenka norimą parinktį naudodamas „rodykles“ ir paspaudžia Enter. Jei reikia, vartotojas gali rankiniu būdu pridėti kelis parametrus, jie bus perduoti sistemos branduoliui. Jei vartotojas nieko neliečia, pasibaigus skirtam laikui, pasirenkama etiketė, nurodyta numatytame lauke.

Dar keli paaiškinimai. Pavyzdyje nurodytos „Linux-up“ ir „failsafe“ etiketės naudoja tą patį branduolį („vmlinuz-up“), tačiau antruoju atveju režimas perkonfigūruojamas grafikos plokštė ir parametrai pridedami norint išjungti pasirinktinių aparatūros plėtinių palaikymą (daugiaprocesinis, automatinis energijos valdymas ir kt.). Eilutę po priedo \u003d vartotojas galėjo įvesti pats; tai yra branduolio parametrai. Lauke initrd \u003d nurodoma, kuriame faile yra pradinis virtualusis diskas (skyrius " Paleiskite virtualų diską ir „šios paskaitos“ moduliai bei nerimą keliantis užrašas nesaugus "(skirtas diskelio etiketei) tiesiog reiškia, kad diskelis yra išimamas įrenginys, todėl paleidžiant jis yra beprasmis lilo patikrinkite jo teisingumą įkrovos sektorius ir pasidaryti žemėlapį.

Galiausiai, formos \u003d other \u003d device įrašai tai rodo LILO nežinomas tipas operacinė sistemašiame įrenginyje, o tai reiškia, kad neįmanoma įkelti branduolio. Tačiau tikimasi, kad pirmajame įrenginio sektoriuje bus aptikta kitas pagrindinis įkroviklis, LILO pakraus jį ir perduos valdymą grandine žemyn. Taip „MS-DOS“ įsijungia į šią mašiną: pagrindinis įkroviklis imamas (etiketėmis dos) nuo pirmojo disko pirmo skaidymo pradžios.

GRUB

Įkrovos posistemis GRUB yra sudėtingesnė. Ji taip pat turi pagrindinis įkrovikliskuris įrašomas į pirmąjį disko arba skaidinio sektorių ir antrinis įkroviklisrandasi failų sistema... bet vietos žemėlapis į GRUB paprastai naudojamas tik vadinamajam „1.5 etapo“ įkrovos įrenginiui - iš tikrųjų vienam konkrečiam tvarkyklės failų sistema... Įkėlimo procedūra atrodo taip. Pagrindinis įkroviklis pakrauna pusantro pagal jame įrašytą vietos žemėlapis... Ši kortelė gali būti labai paprasta, nes paprastai pusantro įkroviklio įkeliama iškart po pagrindinio keliuose sektoriuose 4 Tie. nulinio cilindro 0 kelyje, pradedant nuo 2 sektoriaus. Ši disko sritis dažnai nenaudojama failų sistemos (žr. 11 paskaitą). iš eilės arba kitoje specialiai tam skirtoje vietoje lauke failų sistema... Pusantro krautuvo galima atpažinti vienas failų sistema ir rasti ten jau antrininką vardas (paprastai / boot / grub / stage2). Pagaliau, antrinis įkroviklis, naudodamasis pusantro pajėgumo, skaito iš failo / boot / grub /menu.lst meniu, kuriame vartotojas gali pasirinkti įkrovos parinktis taip pat, kaip ir LILO... Taigi atnaujinant ir perkonfigūruojant įdiegtą GRUB nereikalauja perskaičiuoti paskirties vietų žemėlapius ir pakeisti ką nors, išskyrus failus / boot / kataloge grub.

Metodijaus prašymu Gurevičius sumontavo dviejų sistemų mašiną GRUB... Šiuo atveju failas / boot / grub /menu.lst pasirodė taip:

# cat /boot/grub/menu.lst default 0 timeout 50 title Linux-up branduolys (hd0,4) / boot / vmlinuz-up root \u003d / dev / hda5 initrd (hd0,4) /boot/initrd-up.img title failsafe branduolys (hd0,4) / boot / vmlinuz-up root \u003d / dev / hda5 failsafe noapic nolapic acpi \u003d off initrd (hd0,4) /boot/initrd-up.img title floppy root (fd0) chainloader +1 title dos root (hd0,0) grandinės krautuvas +1 10.3 pavyzdys. GRUB nustatymas dvigubos sistemos mašinoje

Skirtumas tarp lilo .conf tik sintaksėje ir netgi tuo, kad standieji diskai ir skaidiniai juose GRUB pavadina savaip, formoje (hddisk_number, partition_number) ir pradeda numeruoti nuo nulio. Žymos („title“ (! LANG :) taip pat yra sunumeruotos nuo nulio, todėl numatytasis įrašas 0 reiškia, kad pasibaigus skirtam laikui, bus įkelta pati pirmoji konfigūracija (pagal pavadinimą" linux-up ").!}

Studijuojate vadovą GRUBMetodijus atrado daug svarbesnį skirtumą nuo LILO... Pasirodo GRUB ne tik parametrus, bet ir pačius failus (branduolį, pradedant virtualų diską ir kt.) yra pripažįstami ir yra pakraunami vykdoma. Vietoj meniu elementų galite pasirinkti komandinės eilutės režimaskuris įtartinai atrodo kaip bash, kuriame galite prisiversti GRUB įkelkite kitą, nenurodytą konfigūracijos, branduolį, pažiūrėkite į katalogų turinį failų sistema, atpažintas pusantro įkroviklio, ir net šių failų turinį, neatsižvelgiant į jokias prieigos teises: sistema dar neįkrauta. Be to, galite perkonfigūruoti įkrovos tvarkyklę savaip ir užsirašyti derinimo rezultatai. Neturėdamas laiko mėgautis netikėta laisve, Metodijus vieną dieną atrado, kad išėjimas į komandinę eilutę yra apsaugotas slaptažodžiu.

„Linux“ branduolio veiksmai įkrovos proceso metu

Taigi tai vyksta trimis etapais.

  1. Paleidimo programa iš ROM nustato, iš kurių įrenginių galima įkelti, ir, galbūt, ragina vartotoją pasirinkti vieną iš jų. Jis atsisiunčiamas iš pasirinkto įrenginio pagrindinis įkroviklis ir perduoda jam kontrolę.
  2. Pagrindinis įkroviklis nustato (ir dažniausiai žino) kur antrinis įkroviklis yra didelė ir gana protinga programa. Jam tai padaryti lengviau nei programai iš ROM: pirmiausia dėl kiekvieno įrenginio pagrindinis įkroviklis savo, antra, todėl, kad jį galima lengvai pakeisti keičiant įkrovos sistemos nustatymus. Siūlomoje schemoje LILO ir GRUB, pagrindinis įkroviklis nesileidžia į pokalbius su vartotoju, bet iškart įkelia antrinį ir perduoda jam valdymą.
  3. Antrinis įkroviklis pakankamai protingas, kad žinotų, kur yra sistemos šerdis (galbūt daugiau nei viena), pasiūlykite vartotojui pasirinkti keletą įkrovos parinkčių ir netgi tuo atveju, jei GRUB, leidžia jums nustatyti savo įkrovos parinktis. Jo užduotis yra įkelti branduolį ir viską, kas būtina sistemos paleidimui į atmintį (kartais - modulius, kartais - pradedant virtualų diską), sukonfigūruokite visa tai ir perkelkite valdymą į branduolį.

Branduolys yra „Linux“ smegenys ir širdis. Visus veiksmus, kurių negalima patikėti atskiram sistemos antriniam uždaviniui (procesui), atlieka branduolys. Branduolys valdo prieigą prie RAM, tinklo, disko ir kitų išorinių įrenginių. Branduolys paleidžia ir registruoja procesus, valdo laiko padalijimą tarp jų.

„Bootstrapping“ reiškia sistemą, kuri pradedama įjungus. Kadangi šiame etape dar nėra įprastų operacinės sistemos įrankių, sistema turi „paleisti pati“, pažodžiui „pati aptarnauti“. Šio proceso metu sistemos branduolys įkeliamas į atmintį ir aktyvuojamas. Tada atliekama keletas inicijavimo užduočių, po kurių sistema yra pasirengusi aptarnauti vartotojus.

Bootstrapping yra ypatingo sistemos pažeidžiamumo laikotarpis. Konfigūracijos klaidos, veikimo sutrikimai, aparatūros trūkumas arba sugadintos failų sistemos gali trukdyti normaliai paleisti kompiuterį. Įkrovos režimų nustatymas dažnai yra viena iš pirmųjų užduočių, kurias administratorius turi išspręsti naujoje sistemoje, ypač pridedant naują įrangą. Deja, ši užduotis yra viena sunkiausių ir reikalauja gerai išmanyti daugelį kitų sistemos aspektų.

Įjungus maitinimą, vykdomas tik skaitymo atmintyje saugomas įkrovos kodas. Jis turėtų pradėti branduolį. Branduolys apklausia aparatūros įrenginių būseną ir paleidžia „init“ demoną, kurio ID visada yra 1.

Prieš pilnai paleidžiant sistemą, reikia patikrinti ir prijungti failų sistemas ir paleisti sistemos demonus. Šios procedūros įgyvendinamos naudojant „shell“ scenarijus, kuriuos nuosekliai vykdo „init“ deimonas. Tiksli scenarijų struktūra ir jų vykdymas priklauso nuo sistemos.

Pagrindinis dalykas yra suaktyvinti komandos apvalkalą

Įprasto veikimo metu sistemos pačios paleidžiamos neprisijungus, o administratoriai ir vartotojai gali prieiti prie jų nuotoliniu būdu. Tačiau administratoriams reikia turėti sistemos atkūrimo įrankį tuo atveju, jei netikėta disko gedimas ar kokia nors konfigūracijos problema neleidžia sistemai normaliai atlikti įkrovos proceso. UNIX sistemos (užuot paleidę „visą programą“) gali apsiriboti tik būtiniausiais, būtent suaktyvinti komandų apvalkalą sistemos konsolėje. Ši parinktis vadinama įėjimu į vadinamąjį „vieno vartotojo režimą“, atkūrimo režimą arba prevencinį režimą - visi šie terminai vartojami pakaitomis. Vieno vartotojo režimas neleidžia atlikti tinklo operacijų, o norint naudotis sistemos konsole reikia turėti fizinę prieigą prie jos.

Daugumoje sistemų turite perduoti konkretų parametrą komandinės eilutės branduoliui, kad paleisties metu įeitumėte į vieno vartotojo režimą. Jei sistema jau veikia ir veikia, galite ją perkelti į vieno vartotojo režimą naudodami komandą išjungti arba telinit.

Pakrovimo etapai

Tipinę įkrovos procedūrą sudaro šeši skirtingi žingsniai:

  • nuskaityti įkrovos programą iš pagrindinio įkrovos įrašo;
  • prietaisų atradimas ir konfigūravimas;
  • branduolio procesų kūrimas;
  • administratoriaus įsikišimas (tik vieno vartotojo režimu);
  • sistemos paleidimo scenarijų vykdymas.

Beveik visuose etapuose nereikia interaktyvaus administratoriaus valdymo. Galų gale, administratoriai turi galimybę valdyti sistemos paleidimą redaguodami sistemos paleidimo scenarijų konfigūracijos failus arba pakeisdami įkrovos programos į branduolį pateiktus argumentus.

Branduolio inicijavimas

Branduolys yra programa, ir kaip pirmoji įkrovos užduočių užduotis programa įrašoma į atmintį vėlesniam vykdymui. Branduolio failo pavadinimą nurodo jo gamintojas, tačiau tradiciškai jis vadinamas / unix arba / vmunix... „Linux“ sistemose branduoliui paprastai suteikiamas kelio pavadinimas kaip temos variantas / boot / vmlinuz.

Daugelyje sistemų apkrova atliekama dviem etapais. Pirma, iš kompiuterio į kompiuterio atmintį (naudojant kodą, įrašytą tik skaitymo atmintyje) nuskaitoma nedidelė įkrovos programa (vadinama įkrovos įkrovikliu), kuri iš tikrųjų įkelia branduolį. Ši procedūra vyksta už UNIX srities ribų, todėl nėra standartizuota visose sistemose.

Branduolys vykdo bandymus, kad nustatytų, kiek sistemos atminties turi. Kai kurios vidinės branduolio struktūros yra fiksuoto dydžio, todėl branduolys pasilieka sau tam tikrą fizinės atminties kiekį. Ši atmintis nėra prieinama vartotojo procesams. Branduolys išleidžia konsolei pranešimą apie bendrą fizinės atminties kiekį ir atminties kiekį, kurį gali naudoti vartotojo procesai.

Aparatinės įrangos konfigūravimas

Viena iš pirmųjų branduolio užduočių yra aparatūros komponentų tyrimas. Testuojant įvairias sistemos magistrales ir inventorizuojant aparatūrą, branduolys konsolei pateikia kiekvieno aptikto įrenginio santrauką. Daugeliu atvejų branduolys įkelia įrenginio tvarkykles kaip nepriklausomus branduolio modulius. Sistemose, orientuotose į asmeninius kompiuterius, paskirstymai apima branduolį, kuris gali veikti daugumoje kompiuterio aparatinės įrangos konfigūracijų, nereikalaujant minimalios konfigūracijos.

Aparatūros konfigūravimo procesas turėtų būti gana skaidrus administratoriams, ypač „Linux“ aplinkoje. Parduodami branduoliai yra moduliniai ir automatiškai aptinka daugumą įrenginių. Tačiau galite susidurti su neatpažintais įrenginiais.

Branduolio procesų kūrimas

Baigęs pagrindinį inicializavimo etapą, branduolys sukuria kelis „savarankiškai vykdomus“ procesus vartotojo programoms skirtoje atmintyje. Tai aplenkia standartinį sistemos mechanizmą. šakutė.

Tokių procesų skaičius priklauso nuo operacinės sistemos, nors „init“ deemonas visada turi proceso ID ( PID) lygus 1. Daugumoje UNIX sistemų planavimas naudojamas kaip proceso ID 0. „Linux“ neturi proceso su PID 0. Daemonas inic veikia su įvairiais branduolio atminties ir signalo tvarkytuvais. Visi šie procesai turi mažai sunumeruotų ID ir jų pavadinimai yra uždėti laužtiniuose skliaustuose ps komandų sąrašuose (pavyzdžiui). Kartais proceso pavadinimuose gali būti pasvirasis brūkšnys ir skaičius, pvz.,. Skaičius nurodo procesorių, kuriame veikia šis procesas. Ši informacija gali būti naudinga nustatant daugiaprocesorinę sistemą.

Kai kurie iš labiausiai paplitusių branduolių procesų „Linux“ sistemose
Proceso tikslas

k journald Rašo žurnalo atnaujinimus į diską
kswapd Keisti procesus, kai nepakanka fizinės atminties

ksoftirqd Tvarko minkštus pertraukimus, jei jų negalima išspręsti perjungiant kontekstą

khubd Konfigūruoja USB įrenginius

Kiekvienam prijungtam ext3 arba ext4 failų sistemai yra vienas kjoumald procesas.

Iš šių procesų tik init yra visavertis vartotojo procesas; likusi dalis iš tikrųjų yra branduolio dalys, kurias konceptualiai sukūrė procesai.

UNIX sistemos sukuria panašius branduolio procesus, tačiau kadangi šie procesai atspindi konkretaus branduolio diegimo specifiką, joks pavadinimas ar funkcija negali būti vienodi skirtingoms sistemoms. Laimei, administratoriams niekada nereikia tiesiogiai bendrauti su šiais procesais.

Sukūrus šiuos procesus, branduolys nebedalyvauja sistemos įkrovos sekoje. Tačiau šiuo metu dar nėra sukurtas nė vienas procesas, tvarkantis pagrindines operacijas (pvz., Registruojant vartotojus sistemoje), ir dauguma demonų neveikia. Visa tai (kai kuriais atvejais netiesiogiai) pasirūpins pradinis demonas.

Operatoriaus veiksmai (tik atkūrimo režimu)

Jei sistemą reikia paleisti atkūrimo režimu, operatorius komandinėje eilutėje nustato specialią vėliavą, o branduolys šią informaciją perduoda „init“ deemonui kaip paleidimo pranešimą. Vieno vartotojo paleidimo metu turėtumėte paprašyti įvesti šakninį slaptažodį. Jei teisingai įvedamas, komandų vertėjas paleidžiamas su vartotojo teises. Negalite nustatyti slaptažodžio, bet tiesiog paspauskite klavišų kombinaciją , po kurio atsisiuntimas bus tęsiamas kelių žaidėjų režimu

Vieno vartotojo režimu komandos vykdomos panašiai kaip ir visiškai įkrautoje sistemoje. Tačiau kartais montuojamas tik šakninis skaidinys. Kad galėtumėte naudoti programas už / bin, / sbin ar / etc katalogų, turite rankiniu būdu prijungti likusias failų sistemas.

Daugelyje vieno vartotojo aplinkų failų sistemos šaknis yra prijungtas tik skaityti. Jei / etc yra šakninių failų sistemos dalis (dažna situacija), daugelio konfigūracijos failų nebus galima redaguoti. Norėdami išeiti iš šios situacijos, turėsite pradėti vieno vartotojo sesiją iš naujo įdiegdami katalogą / skaitymo / rašymo režimu. Reikalingus veiksmus „Linux“ sistemose atlieka ši komanda.

# mount -o rw, permontuoti /

Daugumoje kitų sistemų galite paleisti komandą montuoti /įgyvendinti prieigą prie bylos fstab arba vfstab ir išsiaiškinkite, kaip turėtų būti įdiegta failų sistema.

„Red Hat“ sistemoje paleidimas į vieno vartotojo režimą yra šiek tiek greitesnis nei įprastai. Kol nebus rodoma komandų eilutė, šis paskirstymas bandys prijungti visas vietines failų sistemas. Iš pirmo žvilgsnio tai gali atrodyti patogu, tačiau gali būti problematiška, kai naudojamas su neišsivysčiusia failų sistema.

Komanda fsckkuris tikrina ir taiso sugadintas failų sistemas, paprastai atliekamas automatinio įkrovimo metu. Jei sistema paleidžiama vieno vartotojo režimu, komanda fsck reikės įvesti rankiniu būdu.

Kai išeis vieno vartotojo režimo komandų vertėjas, sistema atnaujins paleidimą.

Vykdomi sistemos paleisties scenarijai

Tuo metu, kai sistema gali vykdyti paleisties scenarijus, tai jau galima vadinti UNIX. Tai dar nėra visiškai įkrauta sistema, tačiau nėra jokių paslaptingesnių įkrovos proceso žingsnių. Scenarijaus failai yra įprasti paketiniai failai, kuriuos pasirenka ir vykdo „init“ deimonas sudėtingame, bet paprastai suprantamame algoritme.

Tiksli paleisties scenarijų vieta, turinys ir organizavimas nusipelno atskiro tyrimo.

Baigiamas atsisiuntimo procesas

Atlikus inicializavimo scenarijus, sistema yra visiškai paruošta darbui. Sistemos demonai, pvz., DNS ir SMTP serveriai, priima ir aptarnauja ryšius. Turėkite omenyje, kad „init“ deemonas ir toliau vaidina svarbų vaidmenį net ir baigus paleidimą.

„Init“ deemonas turi vieną vieno ir kelių vartotojų „paleidimo lygius“, kurie nustato vartotojui prieinamus sistemos išteklius.

Operacinei sistemai pasirinkti ir paleisti kompiuterio įkrovos metu naudojama specializuota įkrovos programa. Populiariausias įkrovos įrankis yra „Grub“. Diegiant kelias operacines sistemas, pvz., „Linux“ per „Windows“, paskutinė įdiegta OS bus pirmoji įkrovos meniu.

Tai nesukels problemų vartotojams, naudojantiems „Linux“ kaip pagrindinę sistemą, jiems tai netgi pageidautina parinktis. Bet jei jūs vis dar esate pradedantysis ir norite naudoti „Linux“ kaip antrą sistemą, o „Windows“ vis dar yra pagrindinė, kol jums patogu, tada tikriausiai norite, kad „Windows“ būtų pirmoji. Šiame straipsnyje mes apžvelgsime, kaip pirmiausia „Windows“ paleisti „Grub“. Pažvelkime į du būdus: naudodami „Grub Customizer“ programą ir rankiniu būdu naudodami „Grub“ įkrovos tvarkyklės konfigūracijos failus.

„Grub“ pritaikymo priemonė

„Grub Customizer“ yra programa, leidžianti pritaikyti įvairius „Grub“ įkrovos programos parametrus. Įskaitant pakrovimo vietų padėtį ir tvarką. Programą galite įdiegti iš oficialių saugyklų. Pavyzdžiui, „Ubuntu“ turite naudoti ppa:

sudo add-apt-repository ppa: danielrichter2007 / grub-customizer
$ sudo apt-get atnaujinimas
$ sudo apt-get install grub-customizer

Norėdami paleisti programą, atidarykite terminalą (Ctrl + Alt + T) ir įveskite grub-customizer:

Kad programa veiktų, jums reikia root teisių, kai kuriose sistemose gali tekti naudoti šią komandą:

gksu grub-customizer

Be to, programą galima paleisti iš pagrindinio meniu. Pagrindinis langas atrodo taip:

Kelios sekundės po programos paleidimo nuskaitys įdiegtas operacines sistemas, tada tame pačiame lange mes galime perkelti „Windows“ įkrovą į pirmąją vietą. Norėdami tai padaryti, dešiniuoju pelės mygtuku spustelėkite norimą elementą, kad atidarytumėte kontekstinį meniu:

Meniu pasirinkite Judėk aukštyn... Šį veiksmą reikės pakartoti keletą kartų, kol „Windows“ bus pirmoji sąraše. Dabar bus paleistas numatytasis „Windows Grub“.

Jei vėliau norite sugrąžinti „Windows“ atgal, yra atvirkštinis veiksmas - Judėk žemyn.

Norėdami išsaugoti nustatymus, tiesiog spustelėkite mygtuką Išsaugoti. Padaryta. Galite iš naujo paleisti kompiuterį ir pamatyti, kas vyksta.

Bet noriu paliesti dar porą nustatymų, kurie gali būti naudingi. Užuot pirmiausia paleidę „Windows“ sistemoje „Grub“, galite pakeisti numatytąjį įrašą. Eikite į skirtuką pagrindiniai nustatymai:

Yra sąrašas, kuriame galite pasirinkti numatytąjį elementą, naudojamą pagal numatytuosius nustatymus. Užsiimkite:

Be to, pagal numatytuosius nustatymus galite paleisti paskutinę įkeltą OS, tam yra žymimasis laukelis:

„Grub“ įkrovos tvarkos keitimas per terminalą

Kaip pažadėjau, dabar pažiūrėkime, kaip padaryti, kad „WIndows“ pirmiausia būtų paleista „Grub“ naudojant konfigūracijos failus. „Grub“ konfigūracija yra faile /boot/grub/grub.cfg.

gksu gedit /boot/grub/grub.cfg

Paprastai meniu juostos atrodo taip:

menuentry item_name --options (
...

Pavyzdžiui, „Windows“ elementas:

menuentry "Windows 8 (loader) (on / dev / sda1)" --class windows --class os $ menuentry_id_option "osprob
er-chain-FC324E26324DE66C "(
....

Dabar, norint pakeisti meniu punktų tvarką, pakanka supjaustyti viską iki galinės skliaustų kartu su šia eilute ir įterpti prieš visus kitus elementus. Tada galite išsaugoti failą ir viskas. Perkraukite ir žiūrėkite. Pagal numatytuosius nustatymus „Windows“ paleidžiama. Vienintelis šio metodo trūkumas yra tas, kad atnaujinus „Grub“ konfigūraciją, visi nustatymai bus prarasti.

Panašiai kaip mes konfigūravome numatytąjį įrašą „Grub Customizer“, tai galima padaryti terminale.

Atidarykite failą / etc / default / grub.

gksu gedit / etc / default / grub

Čia mus domina eilutė:

Pakeiskite 0 elementu, kurį norite atsisiųsti, taip pat galite nurodyti elemento pavadinimą, o ne skaičių, pavyzdžiui:

GRUB_DEFAULT \u003d "Windows 8 (krautuvas) (į / dev / sda1)"

Galite peržiūrėti galimus atsisiuntimo taškus neatidarę konfigūracijos failo naudodami komandą:

sudo grep menuentry /boot/grub/grub.cfg

Taip pat galite sukonfigūruoti paskutinės įkeltos sistemos įkrovą, tam pridėkite eilutę

GRUB_SAVEDEFAULT \u003d tiesa

GRUB_DEFAULT nurodykite išsaugotą:

GRUB_DEFAULT \u003d išsaugota

Akivaizdus šio metodo pranašumas yra tas, kad nustatymai nebus prarasti atnaujinant „Grub“ konfigūraciją, nes atnaujinimo metu informacija paimama iš šio failo. Dabar atnaujinkime konfigūraciją ir išsaugokime parametrus naudodami komandą:

Ne visos sistemos veikia taip, todėl galite naudoti kitą komandą:

grub2-mkconfig -o /boot/grub/grub.cfg

Tai viskas. Dabar jūs žinote, kaip pirmiausia „Windows“ paleisti „Grub“. Tačiau šiame straipsnyje pateikta informacija gali būti naudojama platesniam tikslui. Tai bus naudinga ne tik „Windows“, bet ir bet kurioms kitoms kelioms sistemoms, kurių įkrovos tvarką reikia kontroliuoti.

Susiję įrašai:


„Linux“ įkrovos seka susideda iš šių veiksmų:

BIOS (pagrindinė įvesties-išvesties sistema)

BIOS yra žemiausio lygio sąsaja tarp kompiuterio ir išorinių įrenginių, kuri ieško ir vykdo įkrovos sektorių bet kuriame prie kompiuterio prijungtame saugojimo įrenginyje.

Paprastai tai yra:

  • Kompaktinių diskų įrenginys
  • HDD
  • Diskų įrenginys (vis mažiau naudojamas)

Sąrašas priklauso nuo jūsų konkrečios BIOS galimybių ir aparatūros.

Įkrovos prioritetą galima pakeisti BIOS "f. Įeikite į BIOS sąrankos meniu" ir paprastai galite paspausti Del, F1, F2 arba F10, kol kompiuteris paleidžiamas.

MBR (pagrindinis įkrovos įrašas)

Pirmasis įkrovos saugojimo įrenginio sektorius yra rezervuotas pagrindiniam įkrovos įrašui. Paleidžiant iš įrenginio, BIOS įkelia ir vykdo įkrovos įrenginį, esantį MBR.

Daugeliu atvejų įkrovos tvarkyklė yra gana sudėtinga ir negali tilpti į 512 baitų paskirstytą MBR. Šiuo atveju MBR yra vadinamasis etapas1, programa, kuri paprasčiausiai įkelia antrojo operacinės sistemos įkėlimo etapo programą - 2 etapą (kartais aktyviojo skaidinio įkrovos sektorius, įkrovos tvarkyklė arba autorizacijos ir prieigos apsaugos programa yra pakrautas kaip 2 pakopa).

Konkrečiai, GRUB „stage2“ įkrovos įrenginys skaito duomenis iš failo /boot/grub/grub.conf (arba /boot/grub/menu.lst, priklausomai nuo versijos), kuriame yra visų galimų operacinių sistemų sąrašas ir jų įkrovos parinktys. Po to ekrane rodomas operacinių sistemų, iš kurių vartotojas pasirenka OS, kad būtų paleistas, sąrašas.

Operacinės sistemos krautuvas

Kai kuriais atvejais GRUB (GRand Unified Bootloader) įkrovos pakopos 1 pakopa įkelia 1.5 etapą, kurio kodas yra pirmuose trisdešimt kilobaitų atminties įrenginio iškart po MBR, o 1,5 etapas jau įkelia 2 etapą.

Kai „stage2“ įgauna valdymą, rodomas (pseudo) grafinis meniu, kuriame vartotojas gali pasirinkti OS, kurią norite paleisti. Verta paminėti, kad įkrovos parametrus galima pakeisti tame pačiame meniu, o tai leidžia atkurti sistemą po to, kai menu.lst arba grub.conf buvo netyčia sugadinti.

Pasirinkus įkrovos parinktis, GRUB įkelia pasirinktą branduolį į atmintį ir perduoda valdymą branduoliui, kuris pats ir toliau paleidžia sistemą. Be to, GRUB gali perkelti valdymą ne į branduolį, bet į kitą įkrovos programą, naudodamas vadinamąjį grandinės pakrovimą, pavyzdžiui, įkrovos įrenginį, kuris nepalaiko „Multiboot“ standarto.

Šerdis

Savo ruožtu branduolys patikrina aparatūros konfigūraciją, inicializuoja įrenginius ir paleidžia initrd (pasirinktinai), po kurio įkrovos parametruose nurodytą įrenginį sumontuoja kaip „root“ kaip šakninę failų sistemą.

Įrenginio failų sistema aptinkama automatiškai. Jei dėl kokių nors priežasčių prijungimas nepavyksta, sistema sukelia branduolio paniką ir įkrovimas sustoja.

Sėkmingai įdiegus failų sistemą, branduolys paleidžia „init“ demoną, kuris gauna vieno proceso ID ir paleidžia likusią sistemos dalį.

inic

init yra paskutinis sistemos įkrovos sekos žingsnis. init yra visų sistemoje vykstančių procesų tėvas (arba tolimesnis protėvis). Šis procesas pirmiausia pradedamas sistemoje, o jį tiesiogiai paleidžia branduolys. Taip pat paleidžiami visi sistemos procesai, kaip nurodyta / etc / inittab.

Kol sistema veikia, init nebus nutrauktas. Verta paminėti, kad init yra vartotojo procesas, o ne sistemos procesas, nors jis veikia kaip root.

„Runlevels“

Kiekviename įraše / etc / inittab yra vadinamasis proceso „vykdymo lygis“, t. informacija apie tai, kokiu sistemos paleidimo lygiu reikėtų pradėti šį procesą.

„Linux“ sistemose yra septynios galimos vykdymo lygio vertės nuo 0 iki 6 imtinai:

  1. Sistemos išjungimas
  2. Vieno vartotojo režimas
  3. Vartotojo apibrėžtas, dažniausiai kelių vartotojų režimas be tinklo ir grafinio apvalkalo palaikymo
  4. Daugelio vartotojų režimas be grafinio apvalkalo
  5. Vartotojo apibrėžta, paprastai nenaudojama
  6. Daugelio vartotojų režimas su grafiniu apvalkalu

Remiantis dabartiniu vykdymo lygiu, init paleidžia scenarijus pakatalogiuose /etc/rc.d/, kiekvienas vykdymo lygis turi savo pakatalogį, nuo /etc/rc.d/rc0.d iki /etc/rc.d/rc6.d ...

Realiai scenarijų vykdymą kiekviename vykdymo lygyje atlieka / etc / rc scenarijus, kuris kiekviename vykdymo lygyje iškviečiamas parametru, lygiu dabartiniam lygiui. Kvietimas į / etc / rc su parametru yra užrašomas / etc / inittab kiekvienam iš galimų vykdymo lygių.

Numatytąjį vykdymo lygį nustato įrašas aplanke / etc / inittab:

Id: 3: initdefault:

Dabartinį vykdymo lygį galima pakeisti paskambinus:

/ sbin / telinit #

Kur # yra norimas vykdymo lygis. Tie. paskambinus „/ sbin / telinit 6“, sistema bus paleista iš naujo.

Paspauskite sistemos bloko maitinimo mygtuką ir po kelių sekundžių pamatysite prisijungimo langą.

Drįsčiau manyti, kad visiems kada nors buvo įdomu, kas vyksta už purškiamų ekranų ir įkrovos ekranų užuolaidų nuo kompiuterio įjungimo iki jo pasiūlymo prisijungti.

Siūlau susipažinti su šiais tipiško „Linux“ įkrovos lygiais:

1. BIOS

  • BIOS yra atsakinga už pagrindinius įvestis / išvestis iš / į įrenginius.
  • Ar tikrina prietaisų vientisumą. Be to, POST („Power-on self-test“, taip pat žinomas kaip „savarankiškumo testas“, atliekamas kaip išankstinio įkrovimo etapas) yra atsakingas už elektronikos, kurią valdo BIOS, našumo testavimą.
  • Ieško, įkelia ir vykdo OS krautuvo programą
  • Paima įkrovos programą iš diskelio, kompaktinio disko ar kietojo disko. Įkeliant BIOS galite spustelėti mygtuką (paprastai F12 arba F2 arba Del, priklausomai nuo platformos), jei reikia atlikti kai kuriuos aparatūros nustatymų pakeitimus.
  • Aptikus įkrovos tvarkyklę ir įkėlus ją į atmintį, BIOS perkelia valdymą į ją.
  • Trumpai tariant, BIOS įkelia ir vykdo įkrovos įrašą (MBR).

2. MBR

  • MBR yra kietajame diske saugomas pagrindinis įkrovos įrašas
  • Jis yra pirmajame įkrovos disko sektoriuje, pvz., / Dev / hda arba / dev / sda
  • MBR yra mažiau nei 512 baitų. Ją sudaro trys komponentai: 1) pagrindinė įkrovos informacija, „gyvenanti“ pirmuosiuose 446 baituose; 2) informacija apie skaidinių lentelę - per kitus 64 baitus; 3) ir paskutiniai 2 baitai reikalingi norint patikrinti mbr teisingumą.
  • Jame yra informacijos apie GRUB (arba LILO).
  • Paprastais žodžiais tariant - MBR įkelia ir vykdo GRUB įkrovos įrenginį.

3. GRUBAS

  • GRUB - „Grand Unified Bootloader“.
  • Jei jūsų sistemoje yra įdiegtas daugiau nei vienas branduolys, galite pasirinkti, kuris iš jų turėtų būti paleistas.
  • GRUB rodo gražią „plymouth“ ekrano užsklandos animaciją ir, palaukęs kelias sekundes vartotojo sąveikos, jei jis nepaspaudė jokių klavišų, jis įkelia numatytąjį branduolį į „grub“ konfigūracijos failą.
  • GRUB supranta, kas yra failų sistema (senoviniai „Linux“ įkrovos įrenginiai “, ir, pavyzdžiui, LILO ne).
  • „Grub“ konfigūracijos failas paprastai yra /boot/grub/grub.conf (taip pat /etc/grub.conf gali būti simbolinė nuoroda į jį). Čia yra „CentOS“ konfigūracijos failo pavyzdys:
    # boot \u003d / dev / sda
    numatytasis \u003d 0
    skirtasis laikas \u003d 5
    „splashimage“ \u003d (hd0,0) /boot/grub/splash.xpm.gz
    paslėptas meniu
    pavadinimas CentOS (2.6.18-194.el5PAE)
    šaknis (hd0,0)
    branduolys /boot/vmlinuz-2.6.18-194.el5PAE ro šaknis \u003d LABEL \u003d /
    initrd /boot/initrd-2.6.18-194.el5PAE.img
  • Kaip aukščiau pateiktos informacijos pastabą, konfigūracijos faile yra kelias į branduolį ir initrd vaizdą
  • Trumpai tariant, GRUB paprasčiausiai įkelia ir vykdo branduolio ir initrd vaizdus.

4. Branduolys arba branduolys

  • Branduolys montuoja failų sistemą pagal „root \u003d“ nustatymą faile grub.conf
  • Vykdo programą / sbin / init
  • Kadangi „init“ yra pirmasis „Linux“ branduolio pradėtas procesas, todėl jis turi proceso identifikatorių (PID) # 1. Galite paleisti „ps -ef | grep init “ir įsitikink pats.
  • initrd yra Initial RAM Disk, tai taip pat laikinas diskas RAM
  • „Initrd“ pats branduolys naudoja kaip laikiną šaknų failų sistemą, kol branduolys nebus įkeltas į tikrą prijungtą failų sistemą. Šiame laikinajame diske taip pat yra tvarkyklės, reikalingos paleisti, kad būtų galima pasiekti disko skaidinius ir kitą aparatinę įrangą.

5. Inic

  • Norėdami nustatyti vykdymo lygį, ieško failo / etc / inittab failo.
  • Yra šie vykdymo lygiai:
    • 0 - nutraukti vykdymą
    • 1 - vieno vartotojo režimas, vadinamasis „vieno vartotojo režimas“, arba, kitaip tariant, atkūrimo pultas
    • 2 - kelių vartotojų režimas be NFS palaikymo
    • 3 - pilno daugelio žaidėjų režimas
    • 4 - nenaudojamas
  • „Init“ nustato numatytąjį vykdymo lygį iš / etc / inittab ir naudoja jį reikalingoms programoms įkelti.
  • Savo sistemoje vykdykite „grep initdefault / etc / inittab“ ir sužinosite, kurį numatytąjį lygį turite
  • Jei negalite gyventi ramiai, galite nustatyti standartinį lygį 0 arba 6. :)
  • Daugeliu atvejų jums pakaks 3 ar 5 lygio.

6. Programos vykdymo lygis (Runlevel)

  • Kai „Linux“ kraunasi pati, galite stebėti įvairių paslaugų įkėlimą. Pvz., Tai gali būti tokie pranešimai kaip „pradėti„ Postfix “... Gerai“ („Postfix“ prasideda). Šios paslaugos vadinamos „runlevel“ programomis, vykdomomis iš katalogo, atitinkančio norimą „runlevel“.
  • Remiantis numatytaisiais nustatymais, sistema vykdys failus pagal žemiau pateiktus katalogus.
    • 0 lygio vykdymas - /etc/rc.d/rc0.d/
    • 1 lygio vykdymas - /etc/rc.d/rc1.d/
    • 2 lygio vykdymas - /etc/rc.d/rc2.d/
    • 3 lygio vykdymas - /etc/rc.d/rc3.d/
    • 4 lygio vykdymas - /etc/rc.d/rc4.d/
    • 5 lygio vykdymas - /etc/rc.d/rc5.d/
    • 6 lygio vykdymas - /etc/rc.d/rc6.d/
  • Tačiau nepamirškite, kad kataloge / etc taip pat gali būti simbolinių nuorodų. Pvz., /Etc/rc0.d yra susieta su /etc/rc.d/rc0.d.
  • Kataloguose /etc/rc.d/rc*.d/ galite pamatyti programų, kurių pavadinimas prasideda S ir K raidėmis, sąrašą.
  • Pradėti naudojamos programos, prasidedančios S. S, nes startupas.
  • Programos, kurios prasideda raide K, teisingai naudojamos išjungimui. K, nes knesveikas.
  • Programų pavadinimuose šalia raidžių S ir K taip pat yra skaičių. Šie skaičiai naudojami nustatant šių programų vykdymo tvarką.
  • Pavyzdžiui, „S12syslog“ skirtas paleisti „syslog“ deemoną, serijos numerį 12. „S80sendmail“, norint paleisti „sendmail“ deemoną, serijos numerį 80. Tai pradės „syslog“ programą prieš „sendmail“.

Tai viskas. Galbūt kai kuriems iš jūsų tai nėra nauja ir nebuvo jokio ypatingo susidomėjimo skaityti straipsnį, nes jis labiau orientuotas į pradinį ir vidutinį pažinčių su „Linux“ lygiu.
Šiuo atveju galiu pasakyti tik tiek, kad „kartojimas yra mokymosi motina“ (c).

Priedai, taisymai, patikslinimai

Komentaruose jis buvo ne kartą apeliuojamas į straipsnio tekstą, todėl manau, kad verta apsvarstyti keletą svarbių „Habraso“ bendruomenės komentarų. (ačiū artemlight, 3al, Tishka17, HhyperH, Next_Alex, Ilya_Shmelykh, Aux, soomrack, Xpeh)
  • artemlight: "Na, pripažinkime, ne visi distrai yra pakrauti tokiu būdu". Dauguma su juo sutiko pažymėdami „bsd“ stiliaus „init“, „u-boot“, ir nors straipsnyje trūksta „initrd“, verta paminėti, kad branduoliui jo nereikia visuose paskirstymuose. Taip pat pažymima, kad „slackware“ palaiko rc.d tik suderinamumo tikslais ir kad įterptosios sistemos yra įkeliamos skirtingai. EFI kartais galima rasti darbalaukiuose, be to, „Linux“ yra populiari įterptame pasaulyje ir vis dar yra daugybė skirtingų platformų. „Linux“ telefone paprastai įkeliama kitaip.
  • soomrack, remdamasis Vikipedija: Aš taip pat norėčiau pakomentuoti MBR, pirmąjį sektorių ir tt Pastaraisiais metais viskas tapo šiek tiek sudėtingiau. Dabar tikslingiau kalbėti apie EFI.

    „GUID skaidinių lentelė (GPT) yra standartinis formatas, skirtas skaidymo lentelėms įdėti į fizinį standųjį diską. Tai dalis „Extensible Firmware Interface“ (EFI) - standarto, kurį „Intel“ pasiūlė pakeisti pasenusią BIOS - vieną iš paskutinių originalaus „IBM“ kompiuterio relikvijų. EFI naudoja GPT, kai BIOS naudoja pagrindinį įkrovos įrašą (MBR) .... "

  • Jie taip pat paprašė prisiminti apie LILO. LILO, mes tave prisimename! Ei!
  • „Xpeh“ priduria, kad „BIOS (ir nepaminėtas čia (U) EFI) pirmiausia susijęs su įrenginių inicializavimu (įskaitant savo BIOS įkėlimą PCI įrenginiams), apie tai nieko nebuvo parašyta. Nors šis vaidmuo palaipsniui mažėja, nes vis daugiau aparatūros inicijuoja save ir (arba) palaiko karšto prijungimo funkciją, todėl OS vis tiek inicijuojama, tačiau, pavyzdžiui, ji visada inicijuoja RAM. „
  • „VolCh“ paaiškina „Debian-Ubuntu OS“ įkrovą:
    „Debian“ / „Ubuntu“:
    - nėra /etc/rc.d/ katalogo;
    - katalogai /etc/rc?.d/ yra tikri katalogai, o ne nuorodos;
    - šie katalogai saugo nuorodas į scenarijus kataloge /etc/init.d/

    Geriau nieko neredaguoti rankiniu būdu aplanke /etc/rc?.d/, o naudoti komandą update-rc.d, leidžiančią kurti nuorodas, jas ištrinti, išjungti (iš tikrųjų pervadinti iš S * į K *) ir leisti (nuo K * iki S *) paleisti.