Marrja e kohës së nisjes së sistemit në Linux OS. Hapat e nisjes së Linux

Shtëpi / Nuk ndizet

Në këtë artikull do të shqyrtojmë procesin e shkarkimit sistemi operativ Linux. Le të hedhim një vështrim më të afërt në cilat faza kalojnë kompjuteri dhe sistemi operativ gjatë procesit të nisjes. Artikulli u drejtohet kryesisht përdoruesve të rinj që sapo kanë filluar të njihen me Linux. Të kuptuarit se si funksionon procesi i nisjes Linux është i rëndësishëm për zgjidhjen e problemeve të mundshme me procesin e nisjes nëse lindin ndonjë.

Menjëherë pas fillimit të kompjuterit, ju kërkohet të shtypni një çelës të veçantë për të nisur Menuja e BIOS-it, nëse kjo nuk bëhet, sistemi do të vazhdojë të fillojë. Më pas do të shohim se çfarë ndodh në çdo fazë të nisjes së Linux.

BIOS (Sistemi bazë i daljes së hyrjes) - ky është softuer i integruar paraprakisht në chipset motherboard. BIOS nis kompjuterin dhe skanon të gjithë harduerin e tij, duke kontrolluar praninë dhe funksionalitetin e pajisjeve si p.sh. hard drive, CD-ROM, RAM. Në këtë pikë, fillon procesi i nisjes së Linux OS.

BIOS-i më pas kërkon MBR (Master Boot Record), i cili zakonisht ndodhet në sektorin e parë hard drive dhe lëshon ngarkuesin e nisjes së shkallës së parë të regjistruar atje, për shembull Grub ose Lilo. BIOS përgatit ngarkuesin e nisjes MBR, ngarkon të gjitha të dhënat në RAM dhe e ekzekuton atë.

MBR zë 512 bajtët e parë në hard disk. Kjo përmban informacione rreth ngarkuesit të sistemit operativ për shumicën e sistemeve operative janë shkruar atje, për shembull: Linux, Unix, WIndows.

Edhe pse MBR zë hapësirë ​​në disk, kjo zonë nuk i përket asnjë ndarjeje. Adresa MBR është zakonisht pista 0, cilindër 0. Kjo hapësirë ​​është e rezervuar për programet e nisjes. Ai përfshin jo vetëm programin e ngarkuesit të ekzekutueshëm, por edhe tabelën e ndarjes në disk.

BIOS skanon MBR, gjen ngarkuesin e fazës së parë, më pas skanon tabelën e ndarjes dhe gjen ngarkuesin e fazës së dytë në ndarjen që është shënuar si bootable.

Ngarkues

Nëse e ndani procesin e nisjes së Linux në faza, kjo është faza e dytë. Pjesa e parë e ngarkuesit, e vendosur në MBR, ngarkon veten në RAM.

Pastaj skedarët e pjesës së dytë të ngarkuesit ngarkohen nga ngarkuesi seksion i vështirë disk. Për shembull, Grub ose Lilo. Kjo ndarje është e nevojshme sepse i gjithë kodi i ngarkuesit nuk përshtatet në 512 bajt.

Pasi të nisë ngarkuesi i nisjes Grub, ai lexon skedarin e tij të konfigurimit dhe e kërkon përdoruesin të zgjedhë sistemin operativ për të nisur.

Skedari i konfigurimit për çdo artikull përmban një kernel që duhet të ngarkohet. Zakonisht kernelet ndodhen në dosjen /boot. Grub më pas ngarkon versionin e dëshiruar të kernelit vmlinuz

Përgatitja e kernelit

Ngarkimi fillon këtu Kernelet Linux. Grub rezervon hapësirë ​​në RAM për imazhin Initrd, pastaj e ngarkon atë imazh atje. Ky imazh përmban sistemin fillestar të skedarëve, modulet dhe shërbimet e nevojshme për ngarkimin e hershëm, për shembull, për të punuar me Btrfs ose një ndarje të koduar. Ngarkuesi i nisjes më pas përgatit kernelin për nisje dhe ngarkon modulet e nevojshme në mënyrë që të fillojë procesi i inicializimit.

Në Linux, shumica e drejtuesve të pronarit paketohen si module dhe strehohen disk i nisjes initrd.img. Në këtë mënyrë, kur kernel boots, të gjitha modulet e nevojshme janë tashmë të disponueshme në initrd.

Pasi kerneli ka ngarkuar gjithçka që i nevojitet dhe ka përfunduar inicializimin fillestar, ngarkimi i kernelit Linux konsiderohet i plotë dhe fillon procesi i inicializimit të sistemit, i ashtuquajturi proces init, ai mund të vendoset manualisht, për shembull, me kernelin init opsion.

Inicializimi i kernelit

Inicializimi i kernelit përfshin hapat e mëposhtëm:

  • Inicializimi i komponentëve të procesorit si MMU
  • Inicializimi i programuesit (PID 0)
  • Montimi sistemi i skedarëve në modalitetin lexim-shkrim
  • Përfundoni procesin e inicializimit (PID 1)

Gjatë procesit të inicializimit, kerneli kryen detyrat e mëposhtme:

  • Nisja e sistemit kryesor dhe menaxherit të burimeve të përgjithshme (RAM, procesor, hard disk)
  • Fillimi i procesit të inicializimit (/sbin/init)

Sistemi i inicializimit

Pikërisht në këtë pikë procesi i nisjes së Linux është më i prirur ndaj gabimeve. Pasi kerneli të ketë transferuar kontrollin në sistemin e inicializimit, sistemi fillon përgatitjen për funksionim dhe lëshimin e të gjitha shërbimeve të nevojshme - regjistrimin, mesazhet e sistemit, konfigurimin e rrjetit, përgatitjen e sistemeve të skedarëve të rrjetit, konfigurimin e zërit, montimin e sistemeve të skedarëve lokalë dhe komponentëve të tjerë të sistemit. Aktiv për momentin Në shumicën e rasteve, përdoret një nga dy sistemet më të njohura të inicializimit - SysVinit ose Systemd.

Procesi i shkarkimit është paksa i ndryshëm në secilin rast, por thelbi është i njëjtë.

SysVinit fillimisht ekzekuton programin /sbin/init, më pas lexon skedarin e opsioneve /etc/inittab për të përcaktuar nivelin e dëshiruar të ekzekutimit të paracaktuar. Këto janë nivelet e nisjes së Linux:

  • 0 - mbyllje
  • 1 - Modaliteti me një përdorues
  • 2 - Modaliteti me shumë lojtarë pa rrjet
  • 3 - Modaliteti i plotë
  • 4 - Nuk përdoret
  • 5 - Nisni X11

Nivelet e nisjes Linux gjithashtu mund të ndërrohen manualisht duke përdorur komandën telinit. Parazgjedhja është zakonisht niveli 5.

Pastaj ekzekutohet skripti /etc/rc.d/rc.sysinit, si dhe të gjithë skriptet nga dosja /etc/rc.d/rcx, ku x është numri i nivelit të ekzekutimit. Për shembull, nëse nisemi me nivelin e ekzekutimit 5, atëherë të gjithë skriptet nga dosja /etc/rc.d/rc5.d do të ekzekutohen.

Emrat e skripteve fillestare fillojnë me shkronjën S dhe skriptet e përfundimit fillojnë me shkronjën K. Pasi të shikoni këtë strukturë, a e kuptoni tashmë se si funksionojnë shërbimet e nisjes automatike në Linux? Tani mund ta shtoni skriptin në nisje manualisht thjesht duke krijuar një lidhje simbolike në dosjen e dëshiruar.

Pas përfundimit të të gjithë këtyre hapave, sistemi duhet vetëm të nisë të gjitha konzolat virtuale TTY dhe një menaxher identifikimi, si XDM ose SDDM.

Në Systemd, procesi i ngarkimit është paksa i ndryshëm këtu, ndryshe nga versioni i mëparshëm, nuk përdoren skriptet, por skedarët e veçantë të konfigurimit - njësi. Kjo zgjidh shumë probleme, të tilla si transportueshmëria, dhe gjithashtu shton veçori të reja si varësitë dhe ngarkimi paralel.

Por thelbi i procesit të shkarkimit është i njëjtë, të njëjtat shërbime janë nisur. Në vend të niveleve të nisjes, përdoren njësi speciale - .target. Emri i njësisë përmban numrin runlevel dhe fjalën runlevel. Për shembull: runlevel0.target - çaktivizoj, etj. Këto njësi tërheqin me vete, në varësi, të gjitha shërbimet e nevojshme për funksionimin normal sistemeve.

Në fakt, ka dy sekuenca ngjarjesh që kërkohen për të nisur një kompjuter Linux dhe për ta bërë atë të përdorshëm: nisja dhe fillimi. Sekuenca e nisjes fillon kur kompjuteri është i ndezur dhe përfundon kur kerneli inicializohet dhe sistemi është nisur. Procesi i nisjes më pas përfundon detyrën e sjelljes së kompjuterit Linux në gjendje pune.

Në përgjithësi, procesi i shkarkimit dhe ekzekutimit të Linux-it është mjaft i lehtë për t'u kuptuar. Ai përbëhet nga hapat e mëposhtëm, të cilët do të përshkruhen më në detaje në seksionet vijuese.

BIOS POST;
- ngarkues (GRUB2);
- inicializimi i kernelit;
- nisja e systemd, komponenti mëmë i të gjitha proceseve.

Ju lutemi vini re se ky artikull mbulon GRUB2 dhe systemd pasi ato janë ngarkuesi aktual i nisjes dhe sistemi fillestar për shumicën e shpërndarjeve kryesore. Variante të tjera të programeve të tilla janë përdorur më parë, dhe ato përdoren ende në disa shpërndarje.

Procesi i nisjes

Procesi i shkarkimit mund të fillojë në një nga disa mënyra. Së pari, nëse rryma është e fikur, ndezja e tij do të fillojë procesin e nisjes. Nëse kompjuteri po funksionon tashmë, përdorues lokal duke përfshirë rrënjën ose përdorues i rregullt, mund të inicojë programatikisht sekuencën e nisjes duke përdorur GUI ose rreshti i komandës për të rifilluar kompjuterin. Kompjuteri fillimisht do të fiket dhe më pas do të riniset.

BIOS POST

Hapi i parë i procesit të nisjes së Linux në fakt nuk ka të bëjë fare me Linux. Kjo është pjesa harduerike e procesit të nisjes dhe është e njëjtë për çdo sistem operativ. Kur kompjuteri furnizohet me energji elektrike, ai fillon procedurën POST (Power On). Vetë Testi), e cila është pjesë e BIOS (Basic I/O System).

Kur IBM zhvilloi kompjuterin e parë, në vitin 1981, BIOS u zhvillua për të inicializuar komponentët e harduerit. POST është pjesë e BIOS-it, detyra e të cilit është të sigurojë funksionimin e duhur të harduerit. Nëse POST nuk funksionon siç duhet, kompjuteri mund të mos jetë në përdorim dhe procesi i nisjes nuk do të vazhdojë.

BIOS POST kontrollon funksionalitetin bazë hardware, dhe më pas lëshon ndërprerjen e BIOS-it, INT 13H, i cili gjen sektorët e nisjes në të gjitha pajisjet e lidhura të nisjes. Sektori i parë i nisjes me një rekord të vlefshëm të nisjes që ai gjen ngarkohet në RAM dhe më pas kontrolli transferohet në kodin e ngarkuar nga sektori i çizmeve.

Sektori i nisjes është në fakt faza e parë e ngarkuesit. Ekzistojnë tre ngarkues boot që përdoren nga shumica e shpërndarjeve Linux: GRUB, GRUB2 dhe LILO. GRUB2 është më moderni dhe përdoret shumë më shpesh sot sesa versionet më të vjetra.

GRUB2

GRUB2 qëndron për "GRAND Unified Bootloader Version 2" dhe është ngarkuesi kryesor i nisjes për shumicën e shpërndarjeve Linux sot. GRUB2 është një program që e bën kompjuterin mjaftueshëm të zgjuar për të gjetur kernelin e sistemit operativ dhe për ta ngarkuar atë në memorie. Për shkak se GRUB është më e lehtë për t'u shkruar dhe thënë sesa GRUB2, unë do të përdor termin GRUB në të gjithë këtë dokument, por do t'i referohem GRUB2 nëse nuk shënohet ndryshe.

GRUB është projektuar që të jetë i pajtueshëm me specifikimin multiboot, i cili lejon GRUB të boot të shumëfishta Versionet Linux dhe sisteme të tjera operative pa pagesë; ai gjithashtu mund të nisë rekordin e nisjes së sistemeve operative të pronarit.

GRUB gjithashtu i lejon përdoruesit të zgjedhë të nis një nga disa kernel të ndryshëm për çdo shpërndarje Linux. Kjo bën të mundur nisjen nga versioni i mëparshëm kernel, nëse versioni i përditësuar nuk funksionon siç duhet ose është i papajtueshëm me një pjesë software. GRUB mund të konfigurohet duke përdorur skedarin /boot/grub/grub.conf.

GRUB1 tani konsiderohet i vjetëruar dhe është zëvendësuar në shumicën e shpërndarjeve moderne nga GRUB2, i cili është një rishkrim i GRUB1. Shpërndarjet e bazuara në Red Hat janë përditësuar në GRUB2, duke filluar me Fedora 15 dhe CentOS/RHEL 7. GRUB2 ofron të njëjtin funksionalitet si GRUB1, por GRUB2 gjithashtu ofron më shumë fleksibilitet në fazën paraboot. GRUB2 është konfiguruar duke përdorur skedarin /boot/grub2/grub.cfg.

Funksioni kryesor i GRUB është të ngarkojë kernelin Linux në memorie dhe ta ekzekutojë atë. Të dy versionet e GRUB funksionojnë në thelb njësoj dhe procesi përfshin të njëjtat tre hapa, por unë do të përdor GRUB2. Vendosja e GRUB ose GRUB2 dhe përdorimi i komandave GRUB2 është përtej qëllimit të këtij neni.

Megjithëse GRUB2 nuk përdor zyrtarisht shënimin e fazës për tre fazat e nisjes GRUB2, është e përshtatshme t'u referohemi atyre në këtë mënyrë, gjë që do të bëj në këtë artikull.

Faza 1

Siç u përmend në seksionin POST BIOS, në fund të POST BIOS shikon disqet e bashkangjitura në kërkim hyrje në çizme, zakonisht i vendosur në rekordin kryesor të nisjes (MBR), ngarkon të parën që gjendet në RAM dhe më pas fillon të ekzekutojë rekordin e nisjes. Kodi i bootstrap-it, pra faza 1 e GRUB2 është shumë i vogël pasi duhet të futet në sektorin e parë 512 bajt në hard disk së bashku me tabelën e ndarjes. Sasia totale e hapësirës së ndarë për kodin aktual të bootstrap-it në MBR-në klasike të përbashkët është 446 bajt. Skedari 446-byte për Fazën 1 quhet boot.img dhe nuk përmban një tabelë ndarjesh, e cila shtohet veçmas në regjistrimin e nisjes.

Për shkak se regjistrimi i nisjes duhet të jetë kaq i vogël, nuk është shumë i zgjuar dhe nuk e kupton strukturën e sistemit të skedarëve. Prandaj, qëllimi i vetëm i fazës 1 është gjetja dhe ngarkimi i fazës 1.5. Për ta bërë këtë, faza 1.5 e GRUB duhet të vendoset në hapësirën midis vetë regjistrimit të nisjes dhe ndarjes së parë në disk. Pasi faza 1.5 e GRUB është ngarkuar në RAM, faza 1 transferon kontrollin në fazën 1.5.

Faza 1.5

Siç u përmend më lart, faza 1.5 e GRUB duhet të vendoset në hapësirën midis vetë regjistrimit të nisjes dhe ndarjes së parë në disk. Për arsye teknike, kjo hapësirë ​​nuk është shfrytëzuar historikisht. Ndarja e parë në hard disk fillon në sektorin 63 me MBR në sektorin 0, i cili lë 62,512 sektorë bajt - 31,744 bajte - i cili ruan skedarin core.img, i cili është faza 1.5 e GRUB. Skedari core.img është 25389 bajt në madhësi, kështu që ka shumë hapësirë ​​midis MBR dhe ndarjes së parë të diskut hapësirë ​​të lirë për ruajtjen e tij.

Për shkak të sasisë më të madhe të kodit që mund të përfshihet për fazën 1.5, ai mund të përmbajë drejtues të shumtë për sistemet e skedarëve të zakonshëm si EXT dhe sisteme të tjera skedarësh Linux, FAT dhe NTFS. GRUB2 core.img është shumë më kompleks dhe inteligjent në krahasim me fazën më të vjetër 1.5 të GRUB1. Kjo do të thotë që faza 2 e GRUB2 mund të vendoset në një sistem skedar standard EXT, por nuk mund të vendoset në një vëllim logjik. Kështu, vendndodhja standarde për skedarët e fazës 2 është sistemi i skedarëve /boot, përkatësisht /boot/grub2.

Vini re se drejtoria /boot duhet të jetë në një sistem skedarësh të mbështetur nga GRUB. Jo të gjitha sistemet e skedarëve janë të përshtatshëm për të. Funksioni i fazës 1.5 është të ngarkojë drejtuesit e sistemit të skedarëve të nevojshëm për të kërkuar skedarët e fazës 2 në sistemin e skedarëve /boot dhe të ngarkojë drejtuesit e nevojshëm.

Faza 2

Të gjithë skedarët e fazës 2 të GRUB ndodhen në drejtorinë /boot/grub2 dhe disa nga nëndrejtoritë e saj. GRUB2 nuk ka një skedar imazhi si hapat 1 dhe 2. Në vend të kësaj, ai përbëhet kryesisht nga module kernel që ngarkohen sipas nevojës nga drejtoria /boot/grub2/ i386-pc.

Funksioni i fazës 2 të GRUB2 është të gjejë dhe të ngarkojë kernelin Linux në RAM dhe të kalojë kontrollin e kompjuterit në kernel. Kerneli dhe skedarët e lidhur me të ndodhen në drejtorinë /boot. Skedarët e kernelit mund të identifikohen sepse emrat e tyre fillojnë të gjithë me vmlinuz. Ju mund të shikoni përmbajtjen e drejtorisë /boot për të parë kernelët e instaluar në sistemin tuaj.

GRUB2, si GRUB1, mbështet nisjen nga një prej kerneleve Linux. Menaxheri i paketave të Red Hat, DNF, mbështet ruajtjen e versioneve të shumta të kernelit, kështu që nëse ka një problem me vetë kernelin version i ri, mund të shkarkoni më shumë version i vjetër bërthamat. Si parazgjedhje, GRUB ofron një meny para nisjes së kernelit të instaluar, duke përfshirë një opsion të sigurt të nisjes dhe, nëse konfigurohet, një opsion rikuperimi.

Faza 2 GRUB2 ngarkon kernelin e zgjedhur në memorie dhe transferon kontrollin e kompjuterit në kernelin e sistemit.

Bërthama

Të gjithë bërthamat ruhen në një format arkivi vetë-ekstraktues për të kursyer hapësirë. Bërthamat ndodhen në drejtorinë /boot së bashku me imazhin origjinal të diskut të RAM-it dhe hartat e pajisjes së hard drive-it.

Pasi kerneli i përzgjedhur të ngarkohet në memorie dhe të fillojë të ekzekutohet, ai duhet së pari të zharkivojë veten përpara se të mund të ekzekutojë ndonjë punë e dobishme. Pasi kerneli të jetë nxjerrë vetë, ai ngarkon systemd, i cili zëvendësoi programin e vjetër init SysV dhe kalon kontrollin në të.

Ky është fundi i procesit të shkarkimit. Në këtë pikë, kerneli Linux dhe systemd po funksionojnë, por nuk janë në gjendje të kryejnë ndonjë detyrë produktive për përdoruesin fundor sepse asgjë nuk po funksionon.

Procesi i fillimit

Procesi i nisjes ndjek procesin e nisjes dhe e fut kompjuterin tuaj Linux në një gjendje pune ku mund të përdoret për punë produktive.

sistemuar

systemd është nëna e të gjitha proceseve dhe është përgjegjëse për vendosjen e sistemit Linux në një gjendje ku mund të ekzekutohet. Disa nga veçoritë e tij që janë shumë më të gjera se program i vjetër init janë krijuar për të menaxhuar aspekte të ndryshme të një sistemi Linux që funksionon, duke përfshirë krijimin e sistemeve të skedarëve dhe fillimin dhe menaxhimin e shërbimeve të sistemit të nevojshëm për ditë pas dite Linux funksionon. Çdo nga detyrat e sistemit që nuk lidhen me sekuencën e fillimit janë përtej qëllimit të këtij neni.

Së pari, systemd monton sistemet e skedarëve të specifikuar në /etc/fstab, duke përfshirë çdo skedar ose ndarje shkëmbimi. Në këtë pikë, ajo mund të hyjë në skedarët e konfigurimit të vendosur në /etc, duke përfshirë të sajin. Ai përdor skedarin e tij të konfigurimit, /etc/systemd/system/default.target, për të përcaktuar gjendjen (objektivin) në të cilin duhet të nisë sistemin. Skedari default.target është vetëm një lidhje simbolike me skedarin aktual të synuar. Për stacionin e punës ose kompjuterët desktop kjo zakonisht do të jetë graphical.target, e cila është ekuivalente me nivelin e ekzekutimit 5 në sistemin e vjetër fillestar SystemV. Për serverin e paracaktuar, ky ka shumë të ngjarë të jetë multi-user.target, i cili është i ngjashëm me nivelin e ekzekutimit 3 në SystemV. Emergency.target është i ngjashëm me modalitetin me një lojtar.

Vini re se objektivat dhe shërbimet janë njësi të sistemuara.

Tabela 1 më poshtë ofron një krahasim të objektivave të sistemit me nivelet më të vjetra të ekzekutimit të SystemV. Pseudonimet e synuara ofrohen nga systemd për pajtueshmërinë e prapambetur. Pseudonimet e synuara lejojnë skriptet dhe shumë administratorë të sistemit si unë të përdorin komandat SystemV si init 3 për të ndryshuar nivelet e ekzekutimit. Sigurisht, komandat SystemV përcillen në systemd për interpretim dhe ekzekutim.

Niveli SystemV Objektivat e synuara pseudonimet e synuara të sistemuara Përshkrimi
- ndaloj.cak - Fik sistemin pa e fikur energjinë.
0 poweroff.objektiv niveli i drejtimit0.objektiv Fik sistemin duke fikur energjinë.
S emergjente.objektiv - Modaliteti me një përdorues. Shërbimet janë ulur; sistemet e skedarëve nuk janë montuar. Ky është një nivel bazë funksionimi me vetëm një predhë emergjence që funksionon në tastierën kryesore për të lejuar përdoruesin të ndërveprojë me sistemin.
1 shpëtim.cak niveli i drejtimit1.objektiv Një sistem bazë që përfshin sisteme skedarësh të montuar me vetëm atë primar funksionimin e shërbimeve dhe një predhë emergjence në tastierën kryesore.
2 - niveli i drejtimit2.objektiv Modaliteti me shumë përdorues pa NFS, por me shërbime të tjera të konsolës që funksionojnë
3 shumëpërdorues.objektiv niveli i ekzekutimit3.objektiv Të gjitha shërbimet po funksionojnë, por vetëm ndërfaqja e linjës së komandës është e disponueshme.
4 - niveli i drejtimit4.objektiv I pa perdorur
5 grafike.cak niveli i drejtimit5.objektiv Modaliteti me shumë përdorues me GUI
6 rindez.objektiv niveli i drejtuar6.objektiv
- i paracaktuar.objektiv - Ky objektiv është gjithmonë një lidhje simbolike për multi-user.target ose graphical.target. sistemi përdor gjithmonë default.target për të nisur sistemin. default.should kurrë nuk duhet t'i referohet halt.target, poweroff.target ose reboot.target.

Tabela 1: Krahasimi i niveleve të ekzekutimit të SystemV me objektivat e sistemit.

Çdo objektiv ka një grup varësish të përshkruara në skedarin e konfigurimit. systemd ekzekuton varësitë e nevojshme. Këto varësi janë shërbime që kërkohen për të drejtuar një host Linux në një nivel të caktuar funksionaliteti. Kur të gjitha varësitë e listuara në skedarët e konfigurimit të synuar shkarkohen dhe ekzekutohen, sistemi funksionon në atë nivel të synuar.

systemd gjithashtu shikon direktoriumet fillestare të SystemV për të parë nëse skedarët e nisjes janë atje. Nëse ato janë të pranishme, systemd i përdor ato si skedarë konfigurimi për të nisur shërbimet e përshkruara në ato skedarë. I vjetëruar shërbimi i rrjetitështë shembull i mirë një nga ato raste kur Fedora ende përdor skedarët e nisjes së SystemV.

Figura 1 më poshtë është kopjuar direkt nga faqja e bootup man. Ai tregon sekuencë e përgjithshme ngjarjet gjatë startup-it të sistemit dhe kërkesat bazë për porosinë e tyre për të siguruar një fillim të suksesshëm.

Objektivat sysinit.target dhe basic.target mund të mendohen si pikat e kontrollit gjatë procesit të fillimit. Megjithëse një nga qëllimet e projektimit të systemd ishte të lejonte që shërbimet e sistemit të funksiononin njëkohësisht, ka ende disa shërbime dhe objektiva funksionale që duhet të nisen përpara se të mund të nisin shërbimet dhe objektivat e tjera. Këto pika kontrolli nuk mund të kalohen derisa të plotësohen të gjitha shërbimet dhe objektivat e kërkuara.

Kështu, sysinit.target arrihet kur të kenë përfunduar të gjithë komponentët nga të cilët varet. Montimi i sistemeve të skedarëve, konfigurimi i skedarëve të faqeve, fillimi i udev, instalimi i gjeneratorit të numrave të rastësishëm, fillimi i shërbimeve të nivelit të ulët dhe konfigurimi i shërbimeve kriptografike nëse një ose më shumë sisteme skedarësh janë të koduar duhet të plotësohen, por brenda sysinit.target këto detyra mund të ekzekutohen paralelisht.

Sysinit.target fillon të gjitha shërbimet dhe komponentët e nivelit të ulët që kërkohen për funksionalitetin minimal të sistemit dhe që do të nevojiten për të migruar në base.target.

Local-fs-pre.target | shpëtim.cak v (montime të ndryshme dhe (ndërrim të ndryshëm (shërbime të ndryshme të kriptetimit fsck...) pajisje...) pajisje...) (të ndryshme të nivelit të ulët (të ndryshme të nivelit të ulët | | | shërbime: udevd, montime API VFS: v v v tmpfiles , mqueue rastësore, konfigurime, local-fs.swap.target.target cryptsetup.target seed, sysctl, ...) debugfs, ...) | | | | | emergjente.objektiv\_________________|________________ | ___________________|____________________/ \|/ v sysinit.target | shumëpërdorues.objektiv ___________________________________/|\_____________________________________________________ / | | | \ | | | | | grafike.cak

v v | v v (të ndryshme (të ndryshme | (kohësorë të ndryshëm shpëtimi.shërbimi...) shtigje...) | priza...) |

Pasi të ekzekutohet sysinit.target, systemd do të ekzekutojë basic.target, duke nisur të gjithë komponentët e nevojshëm për ta ekzekutuar atë. Basic.target ofron disa funksionalitete shtesë duke ekzekutuar komponentët që nevojiten për objektivin tjetër. Këto përfshijnë aspekte të konfigurimit të tilla si shtigjet drejt drejtorive të ndryshme të ekzekutueshme, prizat e komunikimit dhe kohëmatësit.

Së fundi, objektivat e nivelit të përdoruesit, multi-user.target ose graphical.target, mund të inicializohen. Ju lutemi vini re se modaliteti me shumë lojtarë duhet të arrihet përpara se të plotësohen varësitë grafike.

Objektivat e nënvizuara në Figurën 1 janë objektiva të zakonshëm të nisjes. Kur arrihet një nga këto qëllime, nisja përfundon. Nëse parazgjedhja është multi-user.target, duhet të shihni hyrjen në modalitetin e tekstit në tastierë. Nëse parazgjedhja është graphical.target, duhet të shihni një ekran grafik të hyrjes; Ekrani specifik i hyrjes që shihni do të varet nga menaxheri i parazgjedhur i sesioneve që po përdorni.

Problemet

Kohët e fundit më është dashur të ndryshoj kernelin e paracaktuar në një makinë Linux që funksionon GRUB2. Zbulova se disa nga komandat dukej se nuk funksiononin siç pritej, ose mbase po i përdorja gabimisht. Nuk jam ende i sigurt për arsyet, më duhet të bëj disa teste të tjera.

Komanda grub2-set-default nuk e vendosi saktë indeksin e paracaktuar të kernelit në /etc/default/grub, kështu që kerneli alternativ që doja nuk do të ngarkohej. Më pas, ndryshova manualisht /etc/default/grub GRUB_DEFAULT=ruajtur në GRUB_DEFAULT=2, ku 2 është indeksi i kernelit të instaluar që doja të nisja. Më pas ekzekutova komandën grub2-mkconfig> /boot/grub2/grub.cfg për të krijuar një skedar të ri konfigurimi grub. Ky zgjidhje funksionoi siç prisja dhe nisi një kernel alternativ.

konkluzioni

GRUB2 dhe systemd janë komponentë kyç gjatë fazave të nisjes dhe fillimit të shumicës së shpërndarjeve moderne Linux. Këta dy komponentë punojnë së bashku për të ngarkuar fillimisht kernelin dhe më pas për të ekzekutuar të gjitha shërbimet e sistemit të nevojshme për të krijuar një sistem plotësisht funksional Linux.

Megjithëse më duket GRUB2 dhe sistemet më komplekse se paraardhësit e tyre, ato janë mjaft të lehta për t'u mësuar dhe menaxhuar. Faqet man kanë shumë informacion rreth systemd, dhe freedesktop.org ka komplet i plotë faqet e personit systemd të disponueshme në internet.

Le ta zbërthejmë procesin e nisjes së Linux OS në nëntë hapa që zbatohen për pothuajse çdo konfigurim të Linux OS:

  1. Faza e parë e ngarkimit është leximi i BOIS-it të kompjuterit ose pajisjeve dhe softuerëve të tjerë nga MBR e hard drive-it ose të tjera pajisje boot(p.sh. CD, disketë ose pajisje për nisjen e rrjetit, etj.).
  2. Bootloader fillon të punojë. Linux në arkitekturën x86 zakonisht përdor LILO ose GRUB. Disa sisteme të vjetra mund të përdorin loadlin për të nisur përmes një ndarje dytësore DOS. NË Sistemet e energjisë PC® ky mund të jetë BootX ose yaboot. fare, ngarkuesështë një program i thjeshtë që megjithatë di ku të kërkojë kernelin Linux, mund të zgjedhë cilin të niset nga disa versione të kernelit, apo edhe të zgjedhë një sistem operativ të ndryshëm në të njëjtën makinë.
  3. Sistemi i skedarëve rrënjë është montuar. Në disa raste, një sistem skedari fillestar rrënjë montohet përkohësisht nga përmbajtja e, për shembull, një disku RAM i inicializuar nga ngarkuesi për të lejuar drejtues të veçantë dhe module që mund të nevojiten për të ekzekutuar sistemin aktual të skedarëve rrënjë.

    Tani kemi një sistem skedari rrënjë, mund të fillojmë inicializimin aktual.

  4. Nis procesi init, paraardhësi i të gjitha proceseve të tjera në Linux OS.
  5. Përmbajtja e skedarit /etc/inittab lexohet për të përcaktuar ecurinë e mëtejshme të shkarkimit. Është veçanërisht e rëndësishme ajo që shkruhet në skedarin /etc/inittab në rreshtin që përcakton nivelin e fillimit të sistemit (dhe, rrjedhimisht, fazat e mëvonshme të nisjes).

    Në të vërtetë, gjithçka që ndodh pas kësaj pike përcaktohet plotësisht nga përmbajtja e skedarit /etc/inittab. Në fakt, skriptet dhe mjetet e tjera që funksionojnë i nënshtrohen cilësimeve të duhura, por në parim ju mund të ndryshoni plotësisht /etc/inittab për të kontrolluar se si funksionojnë mjetet e ndryshme sipas dëshirës tuaj.

    Një nga cilësimet në skedarin /etc/inittab është veçanërisht i rëndësishëm. Kjo është një linjë e ngjashme me:

    id:5:initdefault:

    Zakonisht ndodhet afër fillimit të skedarit dhe cakton nivelin e funksionimit të sistemit. Niveli i ekzekutimit përcakton se çfarë veprimesh do të ndërmerren në udhëzimet e mbetura në skedarin /etc/inittab.

    Çfarë ndodh kur ekzekutohet skripti /etc/inittab? Dhe veçanërisht, cilët skedarë dhe drejtori marrin pjesë në proces?

  6. Inicializimi i pavarur i nivelit të ekzekutimit. Ka një sërë veprimesh që do të kryhen pavarësisht nga grupi i nivelit të ekzekutimit. Këto hapa tregohen në /etc/inittab nga rreshta të ngjashëm me:

    # Inicializimi i sistemit.
    si::sysinit:/etc/rc.d/rc.sysinit

    Në disa sisteme Linux (kryesisht sisteme të bazuara në Debian), ka të ngjarë të shihni rreshta më shumë si më poshtë:

    si::sysinit:/etc/init.d/rcS

    Në rastin e fundit, skedari /etc/init.d/rcS është thjesht një skript që ekzekuton skriptet /etc/rcS.d/??* një nga një. Nga ana tjetër, nëse sistemi juaj përdor /etc/rc.d/rc.sysinit, mjafton një skript i gjatë që gjendet në këtë skedar për të kryer inicializimin.

  7. Inicializimi i varur nga niveli i ekzekutimit. Në fakt, ju mund të përcaktoni sa më shumë aktivitete të nivelit të ekzekutimit që dëshironi, dhe çdo aktivitet mund t'i caktohet një ose më shumë niveleve të ekzekutimit. Në mënyrë tipike /etc/inittab do të përmbajë rreshta si:

    l0:0:prit:/etc/rc.d/rc 0
    # ...
    l5:5:prit:/etc/rc.d/rc 5
    l6:6:prit:/etc/rc.d/rc 6

    Nga ana tjetër, skripti /etc/rc.d/rc do të menaxhojë të gjithë skedarët me emrin /etc/rc$1.d/??*. Në shembullin e mëposhtëm, mund të shihni se në një sistem të caktuar duke filluar nga niveli i ekzekutimit 5, do të ekzekutohet në vijim (me radhë):

    /etc/rc5.d/K15postgresql
    /etc/rc5.d/S01switchprofile
    /etc/rc5.d/S05harddrake
    ...
    /etc/rc5.d/S55sshd
    ...
    /etc/rc5.d/S99linuxconf
    /etc/rc5.d/S99local

    Skedarët që fillojnë me "K" ose "k" janë vrasja e skenarëve, ata kryejnë procese ose organizojnë veprimet (pasojat) e tyre. Skedarët që fillojnë me "S" ose "s" janë skriptet e fillimit, ata fillojnë procese të reja ose përgatisin sistemin për të ekzekutuar në atë nivel ekzekutimi. Shumica e tyre janë skripta shell, dhe shumica prej tyre do të jenë lidhje (shpesh te /etc/init.d/).

    Ndërsa Sistemi Linux fillon në një nivel të caktuar ekzekutimi, ju dëshironi të hyni në sistem si përdorues. Për të siguruar që autorizimi është i suksesshëm, përdoret programi getty. Shumë lloje të programeve të bazuara në getty përdoren nga krijuesit e shpërndarjeve të tilla si agetty, mgetty dhe mingetty. Por të gjithë bëjnë të njëjtën gjë.

  8. Hyni në ftesë. Tabela e njohur /etc/inittab zakonisht ekzekuton getty në një ose më shumë ekrane virtuale dhe e bën këtë në nivele të shumta ekzekutimi. Nivelet përcaktohen në rreshta si:

    # Ekzekutoni gettys në nivele standarde
    1:2345:respawn:/sbin/mingetty tty1
    2:2345:respawn:/sbin/mingetty tty2
    3:2345:respawn:/sbin/mingetty tty3
    4:2345:respawn:/sbin/mingetty tty4
    5:2345:respawn:/sbin/mingetty tty5
    6:2345:respawn:/sbin/mingetty tty6

    Numri në fillim tregon se në cilin terminal virtual do të ekzekutohet programi getty; numrat e ardhshëm janë nivelet e ekzekutimit në të cilat do të ndodhë kjo (për shembull, ekzekutimi i mingetty në secilin nga nivelet 2, 3, 4 dhe 5).

Hapat e mëposhtëm nisin fillimin e shërbimeve shtesë, hyrjen në mjedisin grafik, rivendosjen e cilësimeve të ndërfaqes së përdoruesit ose detaje të tjera më të personalizuara që janë përtej qëllimit të këtij udhëzuesi.

Koncepti i nivelit të ekzekutimit është disi arbitrar, ai nuk është i shkruar në kernelin Linux. Nivelet aktuale të ekzekutimit janë hartuar në një grup numrash në mënyrë që të mund të vendosni (ose të ndryshoni një nivel ekzistues) të paracaktuar duke zgjedhur një numër nga 0 në 6. Sipas konventës, kuptimi i mëposhtëm i caktohet çdo numri të nivelit të ekzekutimit:


Listimi 1. Nivelet e ekzekutimit
# Niveli i parazgjedhur i ekzekutimit. Nivelet e ekzekutimit të përdorura nga Mandrake Linux janë: # 0 - Ndaloni (MOS e caktoni këtë si të paracaktuar) # 1 - Modaliteti i një përdoruesi # 2 - Multipërdorues, pa NFS (njëlloj si 3, nëse nuk keni rrjet) # 3 - Modaliteti i plotë i shumëpërdoruesve #4 - I papërdorur #5 - X11 #6 - Rindezni (MOS e vendosni si parazgjedhje në këtë)

Kjo konventë mund të shihet se përdoret në shpërndarjen Mandrake Linux, por shumica e shpërndarjeve përdorin të njëjtën konventë. Mund të rezultojë që shpërndarjet e tekstit ose të ngulitura nuk përdorin disa nga nivelet e ekzekutimit, por ato do të rezervojnë të njëjtat numra.

Ju keni parë shumë linja /etc/inittab në shembuj, por çfarë nënkuptojnë saktësisht ato? Çdo rresht ka formatin:

id:runlevels:action:proces

Fusha id është një shkurtim i shkurtër për një linjë konfigurimi. (1-4 shkronja brenda versionet e fundit init ; 1 - 2 në të moshuarit). Fusha e niveleve të drejtuara tashmë është diskutuar. Fusha tjetër e veprimit tregon veprimin e ndërmarrë nga rreshti. Disa veprime mund të jenë "të veçanta", si p.sh.

ca::ctrlaltdel:/sbin/shutdown -t3 -r tani

Kjo linjë vendos veprimin për sekuencën e tastit Ctrl-Alt-Delete (pavarësisht nga niveli i ekzekutimit). Por shumica e veprimeve thjesht fillojnë proceset përkatëse. Një listë e pjesshme e veprimeve përfshin:

  • respawn: Procesi do të riniset sa herë që del (siç është rasti me getty).
  • prisni: Procesi do të fillojë një herë kur të futet niveli i specifikuar i ekzekutimit dhe init do të presë që ai të përfundojë.
  • Once: Procesi do të ekzekutohet një herë kur të futet niveli i specifikuar i ekzekutimit.
  • boot: Procesi do të ekzekutohet gjatë nisjes së sistemit (por pas sysinit). Niveli i nisjes nuk ka rëndësi.

Vendosja e procesit të nisjes dhe nisjes së sistemit

Disa vite më parë, një program i quajtur LILO u përdor kryesisht për të nisur Linux në sistemet x86. Emri LILO është shkurtim i "Linux LOader". Në ditët e sotme, një program më popullor quhet GRUB (GRand Unified Bootloader). Në sistemet jo-x86, përdoren ngarkues të ndryshëm boot, por të gjithë janë konfiguruar në një mënyrë të ngjashme me LILO dhe GRUB.

Megjithëse ka dallime në sintaksën e tyre të konfigurimit, si LILO ashtu edhe GRUB kryejnë kryesisht të njëjtën detyrë. Në thelb, secili prej tyre ofron një zgjedhje të sistemit operativ (duke përfshirë ndoshta disa kernele Linux) dhe ngarkon kernelin e zgjedhur të OS në kujtesën e kompjuterit. Të dy programet ju lejojnë të kaloni argumente në kernel Linux gjatë rrugës, dhe të dy mund të konfigurohen për të nisur OS jo-Linux në të njëjtën makinë.

Ose LILO ose GRUB (ose ndonjë ngarkues tjetër boot) qëndron në MBR (Master Boot Record) të hard drive-it primar, i cili niset automatikisht nga BIOS-i i sistemit. LILO ka kufizime në ngarkimin e lëndëve të para speciale sektori i vështirë disk. Ngarkuesi i nisjes GRUB është më i sofistikuar dhe njeh sisteme të ndryshme skedarësh, si ext2/3, ReiserFS, VFAT ose UFS. Kjo do të thotë që GRUB nuk duhet të rishkruajë MBR sa herë që ndryshon skedari i konfigurimit (siç bën LILO).

Ngarkuesi i nisjes LILO konfigurohet duke përdorur përmbajtjen e skedarit /etc/lilo.conf. Për një vështrim më të detajuar të opsioneve të konfigurimit LILO, lexoni faqet e njeriut për lilo.conf. Natyra e përgjithshme e sjelljes përcaktohet nga disa parametra fillestarë. Për shembull, ndoshta do të shihni boot=/dev/hda ose diçka të ngjashme. Kjo komandë instalon ngarkuesin në MBR të diskut primar. Disku IDE . Ju gjithashtu mund të instaloni LILO brenda një ndarjeje specifike, zakonisht kur përdorni një ngarkues tjetër primar. Për shembull, boot=/dev/sda3 instalon LILO në ndarjen e tretë të diskut të parë SCSI. Parametra të tjerë përcaktojnë pamjen

Mos harroni se pasi të bëni korrigjimet në skedarin /etc/lilo.conf, duhet të ekzekutoni LILO për të instaluar një sektor të ri boot që përdoret në kohën e nisjes. Është e lehtë të harrosh vendosjen e parametrave të rinj, por vetë ngarkuesi i ngarkimit nuk do të jetë në gjendje të lexojë konfigurimin e ri nëse adresat aktuale të sektorit (të cilat LILO i njeh ndërsa ekzekutohet) nuk janë të shkruara.

Nëse përdoret LILO, linjat kanë një rëndësi të veçantë shkruani imazhin= dhe ndoshta të tjera = nëse ka një zgjedhje midis Linux dhe sistemeve të tjera operative. Një shembull /etc/lilo.conf mund të përmbajë:


Listimi 2. Shembull i konfigurimit LILO
image=/boot/bzImage-2.7.4 label="eksperimentale" image=/boot/vmlinuz label="linux" initrd=/boot/initrd.img append="devfs=mount acpi=off quiet" vga=788 read- vetëm të tjera=/dev/hda3 label=dos

Ky konfigurim ju lejon të zgjidhni ose kernelin 2.7.4, i cili është në zhvillim e sipër, ose kernelin e qëndrueshëm (më tej deklarohet se do të përdoret si disku i RAM-it fillestar (initrd) gjatë procesit të nisjes). Ju gjithashtu mund të zgjidhni DOS që është në ndarjen e tretë IDE parësore disk.

Avantazhi i pamohueshëm i GRUB është se nuk ka nevojë të riinstalohet sa herë që ndryshoni opsionet e nisjes. Sigurisht, duhet të instaloni GRUB herën e parë, zakonisht me një komandë si grub-install /dev/hda. Si rregull, shpërndarja e bën këtë për ju gjatë procesit të instalimit, kështu që ju nuk mund ta bëni kurrë vetë.


Listimi 3. Shembull i konfigurimit GRUB
kohëzgjatje 5 ngjyra e zezë/e verdhë e verdhë/e zezë e paracaktuar 0 fjalëkalimi i fjalës sekrete titulli linux kernel (hd0,1)/boot/vmlinuz root=/dev/hda2 quiet vga=788 acpi=off initrd (hd0,1)/boot/initrd.img kerneli eksperimental i titullit (hd0,1)/boot/bzImage-2.7.4 root=/dev/hda2 titulli i qetë dos root (hd0,4) ngarkues zinxhir aktivizues +1

Si LILO ashtu edhe GRUB ju lejojnë të kaloni parametra të veçantë në kernelin e zgjedhjes suaj. Nëse jeni duke përdorur LILO, mund t'i kaloni opsionet prompt-it të nisjes duke i bashkuar ato në kernelin e zgjedhjes suaj. Për shembull, për opsionet normale të nisjes mund të futni:

LILO: linux ether=9.0x300.0xd0000 root=/dev/ha2 vga=791 acpi=on

Kjo linjë kalon parametra të veçantë në modulin Ethernet, specifikon ndarjen rrënjë, zgjedh modalitetin e videos, etj. Sigurisht, jo e gjithë kjo është e përshtatshme, pasi duhet të dini saktësisht vlerat e duhura për këto parametra dhe të jeni në gjendje t'i vendosni ato saktë.

Me rëndësi të veçantë është parametri që ndryshon nivelin e nisjes së sistemit të ngarkuesit të nisjes. Për shembull, për qëllime të rikuperimit të sistemit, dëshironi të nisni sistemin në modalitetin e një përdoruesi. Kjo bëhet si më poshtë:

LILO: single eksperimentale

Një tjetër opsion i veçantë është argumenti init=, i cili ju lejon të përdorni programe të ndryshme nga init si proces primar. Opsionet për modalitetin e urgjencës mund të jenë init=/bin/sh, gjë që së paku do t'ju lejojë të keni rreshti i komandës(Linux shell) nëse init është krejtësisht jashtë funksionit.

Me ngarkuesin e nisjes GRUB ju keni edhe më shumë fleksibilitet. Në fakt, GRUB është një guaskë e linjës së komandës dhe i ofron përdoruesit funksionalitetin bazë të guaskës. GRUB bën të mundur jo vetëm ndryshimin e konfigurimit bazë të ngarkuesit të nisjes, por edhe leximin e sistemeve të skedarëve. Për të konfiguruar opsionet e nisjes, shtypni "e" në vijën e komandës GRUB, më pas shtoni parametrat (për shembull, numrin e nivelit të ekzekutimit ose fjalën kyçe "single" si në LILO). Të gjitha argumentet e tjera në prompt boot që mund të futni duke përdorur LILO mund të përdoren në linjën e komandës GRUB.

Për të kuptuar opsionet tuaja, mund të hapni vijën e komandës GRUB. Për shembull, supozoni se mendoni se skedari juaj /etc/inittab është i konfiguruar dobët dhe ju dëshironi të hetoni përpara se të nisni. Mund të futni:

grub>cat (hd0,2)/etc/inittab

Kjo do t'ju lejojë të shikoni skedarin tuaj të inicializimit paraprakisht, pa nisur sistemin operativ. Nëse do të kishte një gabim atje, do të ishte e mundur të filloni në modalitetin e një përdoruesi dhe ta rregulloni atë.

Pasi të kuptoni hapat në nisjen e Linux-it pas nisjes së kernelit (me fjalë të tjera, procesi init dhe gjithçka që ai thërret), ju gjithashtu kuptoni se si t'i modifikoni ato. Në thelb, i gjithë konfigurimi bëhet duke redaktuar skedarin /etc/inittab dhe skriptet e ndryshme në drejtorinë /etc/rc?.d/.

Për shembull, kohët e fundit më duhej të konfiguroja BIOS-in e videos në një laptop Linux të bazuar në Debian duke përdorur zgjidhje të palëve të treta. Nëse nuk do të ishte nisur përpara fillimit të X11s, shoferi im XOrg nuk do të vendoste modalitetet e duhura të videos. Pasi kuptova se cili ishte problemi, zgjidhja ishte aq e thjeshtë sa krijimi i skriptit /etc/rcS.d/S56-resolution.sh. Me fjalë të tjera, unë drejtova një skript shtesë sa herë që sistemi nisej.

Vini re se u sigurova që ky skript të funksiononte përpara /etc/rcS.d/S70xorg-common për shkak të konventës së thjeshtë që skriptet funksionojnë sipas rendit alfabetik (nëse do të doja që skripti im të ekzekutohej më vonë, mund të kisha thirrur do të ishte rezolucion S98 .sh në vend të /etc/rcS.d/S56-resolution.sh). Ndoshta do ta vendosa këtë skript vetëm në direktorinë /etc/rc5.d/ në mënyrë që të funksionojë kur X11s janë duke u ekzekutuar, por unë mund të ekzekutoj manualisht startx nga një nivel tjetër ekzekutimi.

Të gjitha cilësimet gjatë procesit të inicializimit janë të hapura për redaktim, direkt në sistemin e skedarëve; pothuajse çdo gjë mund të rregullohet duke përdorur skriptet e tekstit.

Rimëkëmbja e sistemit të skedarëve

Gjëja më e mirë për Linux-in nga këndvështrimi i mirëmbajtjes së sistemit është se gjithçka është një skedar. Natyrisht, herë pas here lind pyetja , në të cilën dosje që jeton. Por, si rregull, rikthimi i Linux-it nënkupton përdorimin e shërbimeve bazë të sistemit të skedarëve si cp, mv, rm dhe redaktori i tekstit lloji vi. Mjete të tilla si grep, awk dhe bash janë të dobishme për të automatizuar këto veprime; ose në një nivel më të lartë, perl ose python. Por në këtë tutorial ne nuk synojmë të studiojmë trajtimin e skedarëve.

Duke supozuar se dini si të redaktoni dhe menaxhoni skedarët, në një sistem të dëmtuar, skedarët e prekur mund të mos jenë fare të përdorshëm.

E juaja shoku më i mirë në rivendosjen e një sistemi skedarësh të dëmtuar fsck.

Komanda fsck është në fakt vetëm fillimi i komandës për sasi e madhe mjete të tjera fsck.* janë fsck.ext2, fsck.ext3 ose fsck.reiser. Ju mund ta përcaktoni llojin në mënyrë eksplicite duke përdorur opsionin -t, por fsck do të përpiqet ta kuptojë vetë. Lexoni faqen e njeriut për fsck ose fsck.* për më shumë informacion. informacion të detajuar. Gjëja kryesore që duhet të dini është se kur përdorni argumentin -a, programi do të përpiqet të rregullojë çdo gabim që gjen.

Ju mund të kontrolloni sistemin e skedarëve të çmontuar duke përmendur vendndodhjen e pajisjes në të cilën ndodhet. Për shembull, shkruani fsck /dev/hda8 për të kontrolluar për një ndarje të papërdorur. Ju gjithashtu mund të kontrolloni sistemin e skedarëve rrënjë duke shtypur fsck /home, por zakonisht bëni këtë vetëm nëse sistemi i skedarëve tashmë është montuar vetëm për lexim dhe jo për shkrim-lexim.

Një nga avantazhet kryesore të sistemeve Linux është fleksibiliteti i kontrollit të përdoruesit gjatë montimit dhe çmontimit të sistemeve të skedarëve. Ndryshe nga Windows dhe disa sisteme të tjera operative, lokacionet e ndarjeve nuk fiksohen automatikisht nga kerneli Linux, por i bashkëngjiten hierarkisë së sistemit të skedarëve rrënjë me komandën mount. Përveç kësaj, lloje të ndryshme

sistemet e skedarëve (madje edhe në pajisje të ndryshme) mund të montohen brenda së njëjtës hierarki. Mund të çmontoni një ndarje specifike me komandën umount, të caktoni çdo pikë montimi (për shembull, /home) ose adresën e pajisjes (për shembull, /dev/hda7).

Kur një sistem skedari është duke u rikthyer, aftësia për të kontrolluar pikat e montimit ju lejon të analizoni gjendjen e ndarjeve duke përdorur fsck ose mjete të tjera pa rrezikuar dëmtimin e mëtejshëm të një sistemi skedarësh tashmë të dëmtuar. Ju gjithashtu mund të montoni sistemin e skedarëve normalisht duke përdorur opsione të ndryshme; më të rëndësishmet e montojnë sistemin e skedarëve për përdorim vetëm për lexim duke përdorur një nga sinonimet -r ose -o ro.

Si shembull, mund të dëshironi të zëvendësoni vendndodhjen e drejtorisë së një përdoruesi me një tjetër, ose sepse ndarja është dëmtuar, ose thjesht dëshironi të zgjeroni hapësirën në disk, ose të kaloni në një disk më të shpejtë. Ky ndryshim mund të bëhet duke përdorur:
# umount /home # e vjetër /dev/hda7 dir
# montoj -t xfs /dev/sda1 /home # disk i ri SCSI duke përdorur XFS

# mount -t ext3 /dev/sda2 /tmp # gjithashtu vendos /tmp në SCSI


Për rikuperim, përmirësime të sistemit dhe qëllime të veçanta, është e dobishme të jeni në gjendje të montoni dhe çmontoni sistemet e skedarëve sipas dëshirës. Por për punën e përditshme, do t'ju duket e përshtatshme që grupi specifik i kërkuar i montimeve të kryhet automatikisht sa herë që sistemi fillon. Ju menaxhoni pikat e montimit duke shkruar linjat e nevojshme të konfigurimit në skedarin /etc/fstab. Një konfigurim tipik mund të duket si ky:
Listimi 4. Shembull i konfigurimit në /etc/fstab

/dev/hda7 / ext3 parazgjedhjet 1 1 asnjë /dev/pts devpts mode=0620 0 0 /dev/hda9 /home ext3 parazgjedhjet 1 2 asnjë /mnt/cdrom supermount dev=/dev/hdc,fs=auto,ro,- -,iocharset=iso8859-1,codepage=850,umask=0 0 0 asnjë /mnt/floppy supermount dev=/dev/fd0,fs=auto,--,iocharset=iso8859-1,sinkronizoj,codepage=850,umask =0 0 0 asnjë /proc proc defaults 0 0 /dev/hda8 swap defaults 0 0 Ndoshta detyra më parësore dhe tipike- Kjo është për t'u siguruar që sistemi operativ të niset saktë.

Për ta bërë këtë, është absolutisht e nevojshme që administratori të kuptojë qartë parimet e nisjes së sistemit dhe fazat e ndryshme të këtij procesi.

Duhet thënë se detyrat për të eleminuar keqfunksionime të ndryshme gjatë ngarkimit të sistemit shpesh gjenden në provime të ndryshme certifikimi në zonat e OS.

Hapi i parë pas ndezjes së kompjuterit është ekzekutimi i një kodi të posaçëm nisjeje, i cili përfaqësohet në formën e sistemit bazë të hyrjes/daljes (BIOS). Sistemi BIOS Pothuajse i gjithë konfigurimi i hekurit është i njohur. Ka informacione nga cila pajisje duhet të lexohen 512 bajtët e parë (MBR).

Është në MBR (Master Boot Record) që ruhet programi primar i nisjes (faza 1), i cili përmban informacione se ku në disk ndodhet programi sekondar i nisjes (faza 2), i cili ngarkon vetë sistemin operativ.

Një hamall i tillë në tonë shembull specifikështë GRUB (Grand Unified Boot Loader). Ekziston gjithashtu një fazë e ndërmjetme (e ashtuquajtura faza 1.5), e cila ndihmon ngarkuesin e OS të përcaktojë parametrat e veçantë të sistemit të skedarëve. Kjo rutinë përdoret nëse ngarkuesi i nisjes GRUB nuk është instaluar drejtpërdrejt në MBR.

Pas marrjes së kontrollit, GRUB shfaq një listë të sistemeve operative (Linux/Windows dhe versione të ndryshme kernelet Linux) nëse janë të disponueshme. Përndryshe, kontrolli shkon në linjën e komandës GRUB.

Le të supozojmë se gjithçka po shkon siç duhet dhe ne kemi zgjedhur sistemin operativ (ose versionin e kernelit) që na nevojitet. Në këtë rast, GRUB kalon në gjënë e tij të preferuar - ngarkimin e vetë sistemit operativ.

Të gjitha informacionet në lidhje me ecurinë e procesit të nisjes shfaqen në ekran (nëse nuk ka asnjë parametër në opsionet e nisjes së kernelit i qetë ), si dhe te skedari log /var/log/dmesg. Mund ta shikoni drejtpërdrejt ose duke përdorur programin dmesg.

Bazuar në daljen e informacionit të shërbimit, mund të nxirren përfundime në lidhje me parametrat e harduerit dhe softuerit, siç janë versionet e kernelit të OS, sasia e RAM-it, numri dhe karakteristikat e procesorëve, disqeve të ngurtë dhe ndarjeve përkatëse. kartat e rrjetit, shkëmbejnë skedarë dhe shumë më tepër.

Analiza e këtij informacioni në rast të dështimit të ngarkimit të sistemit operativ mund të hedhë dritë mbi problemin që ka lindur, kështu që ky skedar konsiderohet mjaft i rëndësishëm për zgjidhjen e problemeve.

Kur ngarkohet kerneli i sistemit, kryhet konfigurimi bazë i pajisjeve të nevojshme, nënsistemeve LVM dhe RAID dhe disku initrd RAM, duke lejuar ngarkimin e drejtuesve të nevojshëm.

Hapat e mëtejshëm për ngarkimin e proceseve ndryshojnë shumë në varësi të versionit të OS. RHEL5 përdor procesin tradicional të ngarkimit të shërbimit SysV. RHEL6 tashmë ka paralelizim të pjesshëm të ngarkimit të procesit, dhe sipas nevojës, dhe jo të gjitha me radhë. Në versionet e reja të RHEL (nga versioni 3.0 i kernelit), procesi optimizohet më tej përmes përdorimit të programit systemd, ashtu si në Fedora nga versioni 15. Në këtë rast, përdoret një mënyrë funksionimi asinkron, e cila përshpejton ngarkimin e OS.

Pas transferimit të kontrollit në procesin init, kerneli kalon në një modalitet të veçantë dhe pranon thirrje nga të gjitha proceset përmes një ndërfaqe të veçantë thirrjeje të sistemit universal. Në këtë pikë, shkarkimi i Linux mund të konsiderohet i përfunduar.

Ju gjithashtu do të pëlqeni:

Sistemi operativ Linux Kursi i leksioneve. Tutorial Rregullimi i defektit CVE-2015-0235 në Linux

Linux: Udhëzues i plotë Kolisnichenko Denis Nikolaevich

1.8. Së pari duke nisur Linux

1.8. Nisja e parë e Linux

Nëse keni zgjedhur modalitetin grafik për t'u identifikuar (ose instaluesi e ka zgjedhur vetë pa ju pyetur asgjë), atëherë do të shihni një ekran grafik me një fushë për të futur një emër dhe fjalëkalim. Hyni në sistem (mundësisht nën emrin që keni vendosur për një përdorues të rregullt; përdorni root vetëm nëse nuk keni tashmë llogari të rregullta) dhe do të shihni desktopin e mjedisit të dritares që keni vendosur si mjedis të paracaktuar, i cili duket mjaft i ngjashëm me desktopin e Windows.

Si është e mundur kjo, keni dëgjuar që përdoruesit e vërtetë të Linux punojnë në një mjedis të linjës komanduese? Tani le të gjejmë vijën e komandës.

Ju e dini se konsola, ose terminali (për kompjuter personal Këto koncepte janë sinonime) quhen pajisje hyrëse-dalëse të dizajnuara për komunikim midis sistemit dhe përdoruesit, domethënë tastierës dhe monitorit. Në sistemet e ngjashme me UNIX, ekziston koncepti i konzollave virtuale - konzolat që zënë me radhë fizikisht të njëjtin monitor dhe tastierë. Secili prej tyre mund të hapë një seancë të veçantë të përdoruesit, të ekzekutojë aplikacionet e veta, në përgjithësi, ato janë sisteme llogaritëse pothuajse të pavarura nga njëri-tjetri.

Shumica e shpërndarjeve Linux mbështesin gjashtë konzola virtuale të bazuara në tekst si parazgjedhje, me një të shtatë që është grafike. Këtu jeni ju. Për të kaluar nga ajo në tastierën e parë të tekstit, shtypni kombinimin e tastit Ctrl+Alt+F1 (në të gjashtën - Ctrl+Alt+F6).

Në përgjigje të ftesës së programit login: shkruani root dhe shtypni<Ввод>. Pastaj futni fjalëkalimin tuaj dhe sesioni i konsolës së tekstit fillon.

Informacioni për emrin e rrjetit të makinës, versionin e OS dhe arkitekturën mund të merret duke përdorur komandën uname -a.

Nëse llogari Për përdoruesin mesatar, nuk e keni ende, është koha për ta marrë atë. Futni komandën

#useradd< имя >

Nëse ju është përgjigjur “urdhër nuk u gjet", atëherë kjo komandë quhet adduser në sistemin tuaj.

#passwd< имя >

Tani mund të identifikoheni me një emër të ri në një tastierë tjetër virtuale. Për të kaluar nga një tastierë teksti në një panel tjetër teksti, shtypni kombinimin Alt+Fn, ku n është një numër nga 1 në 6. Do ta shihni përsëri kërkesën login:.

A jeni regjistruar? Kushtojini vëmendje linjës së ftesës. Në tastierën ku keni hyrë si rrënjë, ajo përfundon me një simbol #, dhe për çdo përdorues të rregullt - me një simbol $. Përveç këtij simboli, kërkesa zakonisht përbëhet nga emri i përdoruesit, emri i sistemit dhe drejtoria aktuale dhe mund të ndryshohet sapo të dini se si ta bëni atë. Në shembuj të mëtejshëm, rreshtat që fillojnë me # ose do të tregojnë komandën që po futet, dhe rreshtat pa një simbol të tillë do të tregojnë mesazhet e saj.

Tani shikoni vetë se Linux është me të vërtetë një sistem me shumë detyra dhe shumë përdorues, domethënë, ndryshe nga Windows, disa përdorues mund të punojnë njëkohësisht. Pyesni se kush është duke punuar aktualisht në sistem duke futur komandën who.

Do të shihni diçka si:

rrënjë tty1<дата и время начала сеанса root>

ivan tty2<дата и время начала сеанса ivan>

rrënjë: 0<дата и время начала сеанса root>

<на графической консоли>

ttyN është numri virtual i konsolës së tekstit.

Nëse jeni të humbur dhe dëshironi të dini se në cilën tastierë jeni aktualisht, ekzekutoni komandën tty. Nëse keni harruar se me cilin emër keni hyrë në tastierën aktuale, futni komandën whoami. Komanda w do të tregojë jo vetëm përdoruesit aktualë, por edhe detyrat që ata po ekzekutojnë.

Mund të lëvizni nëpër ekran duke përdorur kombinimet e tasteve Shift+PgUp dhe Shift+PgDn.

Për të kopjuar tekstin në vijën e komandës, përdorni miun: zvarritja e miut duke mbajtur të shtypur butonin e majtë zgjedh një fragment, klikoni butonin e djathtë e fut atë në pozicionin aktual të kursorit në çdo tastierë të tekstit virtual.

Nëse dëshironi të punoni nën emrin e një përdoruesi tjetër pa lënë këtë tastierë, futni su<имя>. Si parazgjedhje, emri është rrënjë. Kjo zakonisht nevojitet për të kryer shpejt disa veprime administrative. Kthehuni në punë nën emrin tuaj duke përdorur komandën e daljes.

Për t'u kthyer në tastierën grafike, shtypni Alt+F7.

Në modalitetin grafik, gjithashtu jo vetëm që mund të klikoni në ikona, por edhe të futni komanda. Për ta bërë këtë, hapni një terminal virtual (Fig. 1.13) - aplikimi grafik, në dritaren e së cilës mund të punoni në modalitetin e linjës së komandës.

Oriz. 1.13. Dritarja e terminalit virtual

Numri i terminaleve virtuale, ndryshe nga numri i konzollave virtuale, nuk kufizohet nga asgjë, madje as nga tradita.

Për të përfunduar një sesion në një terminal virtual ose në një tastierë virtuale, futni daljen e komandës (mund të dilni gjithashtu në një tastierë virtuale) ose shtypni kombinimin e tastit Ctrl+D.

Mbyllja e një përdoruesi nuk e ndalon të gjithë sistemin. Për të fikur makinën, duhet të lëshoni komandën me të drejtat e superpërdoruesit

# mbyllje - ora 19:00 [Fundi i ditës së punës]

Në këtë rast, disa minuta para kohës së caktuar, një mesazh paralajmërues "Fundi i ditës së punës" do t'i dërgohet të gjithëve që punojnë në sistem, pas së cilës sistemi do të ndalet saktë. Forma e shkurtër e kësaj komande është halt, e cila e ndalon sistemin menjëherë dhe pa paralajmërim. Mund të rindizni me komandën e rindezjes.

Nga libri Bota e Komunikimit: ICQ autor Leontyev Vitaly Petrovich

Nisja e parë e programit. Ndërfaqja ICQ Pas instalimit të ICQ dhe rinisjes së kompjuterit, një lule modeste me petale të zbehta do të shfaqet në këndin e djathtë të shiritit tuaj të detyrave - ICQ Netdetect Agent.

Ikona e ICQ Në momentin që hyni në internet, petalet e luleve duhet të kthehen në jeshile të ndezur autor Nga libri Udhëzuesi i përdorimit Fedora 8

Kolisnichenko Denis Nikolaevich 1.1.3.1. Ekzekutimi i instaluesit Linux Hapi i parë është të konfiguroni kompjuterin tuaj që të niset nga një CD. Zakonisht, kur nisni kompjuterin tuaj, shihni një mesazh në ekran: Shtypni DEL për të hyrë në SETUP ose Shtypni F2 për të hyrë në SETUP Programi SETUP

ju duhet të konfiguroni kompjuterin tuaj që të niset nga CD/DVD (Fig. 1.2), nëse ju autor Nga Linux për librin e përdoruesit

Kostromin Viktor Alekseevich

Kapitulli 3. Nisja e parë e Linux OS 3.1. Nisja e Linux OS Pra, instalimi i Linux ka përfunduar dhe ju rinisni kompjuterin tuaj. Nëse Linux është i vetmi sistem operativ i instaluar në kompjuterin tuaj (që do të thotë se ngarkuesi i nisjes LILO ndodhet në rekordin kryesor të nisjes - MBR), atëherë pas Nga libri 200 programet më të mira autor për Linux

Yaremchuk Sergej Akimovich

P5. Tek Kapitulli 3 "Nisja e sistemit operativ Linux për herë të parë" 1. Në faqen e Alexey Makhotkin (http://alexm.here.ru/manpages-ru/index.html) mund të gjeni përkthime të faqeve man në Rusisht. 2. Guido Gonzato, “Nga DOS/Windows në Linux HOWTO”, përkthyer nga Alex Ott, v1.3.2, 22 shkurt 1999 (http://linux.webclub.ru/howtorus/doswinhow/dos-win-to-linux -howto .html). Ky është një material shumë i dobishëm autor Dneprov Alexander G

Nisja Lojërat Windows për Linux Ka pak lojëra për Linux. Linux ka shumë lojëra jo të rastësishme për të vrarë kohën kur instalon shpërndarjen, përdoruesi do të gjejë disa dhjetëra prej tyre. Ekzistojnë gjithashtu projekte OpenSource që ofrojnë lojëra mjaft serioze në një shumëllojshmëri të gjerë

Nga libri Krijimi Modelet e Joomla-s autor Autori i panjohur

Nisja e Premiere Pro për herë të parë Instalimi i Premiere Pro në kompjuterin tuaj kryhet duke përdorur një magjistar hap pas hapi. Thjesht duhet të ndiqni udhëzimet në ekran Programi premierë Pro dhe krijoni një projekt të ri për t'u njohur më tej me ndërfaqen e programit.1. Klikoni

Nga libri Revista Dixhitale “Computerra” Nr.71 autor Revista Computerra

Nisja e parë Pasi të kemi krijuar strukturën e drejtorisë [PathKJoomla!]/templates/, shablloni ynë do të shfaqet në seksionin përkatës të pjesës administrative të Joomla! (Zgjerime | Model). Tani mund të përdoret si shabllon i paracaktuar. Oriz. 2: Struktura e drejtorisë dhe skedarët e shablloneve

Nga libri Computerra PDA N113 (05/28/2011-06/03/2011) autor Revista Computerra

Shikimi i parë në Fedora Linux 15 Evgeny Krestnikov Publikuar më 30 maj 2011 Ky version është i rëndësishëm për disa arsye. Së pari, Fedora është një shpërndarje popullore që përdoret nga shumë njerëz në mbarë botën. Plus është krijuar nga komuniteti.

Nga libri Si të gjeni dhe shkarkoni ndonjë skedar në internet autori Reitman M.A.

Shikimi i parë në Fedora Linux 15 Autori: Evgeniy Krestnikov Publikuar më 30 maj 2011 Ky version është i rëndësishëm për disa arsye. Së pari, Fedora është një shpërndarje popullore që përdoret nga shumë njerëz në mbarë botën. Për më tepër, ai është krijuar nga një komunitet zhvilluesish të pavarur

Nga libri Një tutorial vizual për të punuar në një netbook autori Senkevich G. E.

Nisja e parë Ashtu si ato më moderne programet antivirus AVG Anti-Virus Free nuk është një program i vetëm, por një paketë e përbërë nga disa module përgjegjëse për fusha të ndryshme të mbrojtjes së kompjuterit:? Antivirus - skaner antivirus, është përgjegjës për skanimin e skedarëve

Nga libri Firebird UDHËZUES PËR ZHVILLIMIN E BAZAVE TË TË DHËNAVE nga Borri Helen

Nisja e parë e Mail Windows Live Për të ekzekutuar të instaluarit programi i postës, klikoni butonin Start dhe zgjidhni Windows Live Mail (1) nga menyja që hapet Nëse kjo ikonë nuk është në meny, klikoni Të gjitha programet. Në listën e programeve, klikoni mbi artikull Windows Live -

Nga libri Photoshop CS4 autor Zhvalevsky Andrey Valentinovich

Së pari Fillimi i Windows Media Për të nisur Windows Media Player, klikoni butonin në shiritin e detyrave ose zgjidhni All Programs|Windows Media Player nga menyja Start. Kur e nisni luajtësin për herë të parë, do t'ju kërkohet të bëni disa cilësime. Vendosni çelësin

Nga libri Pyetjet e historisë: UNIX, Linux, BSD dhe të tjerët autor Fedorchuk Alexey Viktorovich

Ekzekutimi i Firebird në Linux/UNIX Superserver Drejtoria e parazgjedhur e instalimit është /opt/firebird. Drejtoria /bin përmban serverin fbserver Firebird në format binar (ibserver për Firebird 1.0.x), i cili funksionon si një proces demon në Linux/UNIX. Fillon automatikisht pas instalimit nëpërmjet RPM ose

Nga libri i autorit

Instalimi i Photoshop CS4 dhe lansimi i tij për herë të parë Kërkesat e sistemit për Photoshop CS4 janë si më poshtë: një procesor me një shpejtësi orësh të paktën 1.8 GHz; salla e operacionit Sistemi Windows XP me Service Pack 2 (mundësisht Service Pack 3) ose Windows Vista; të paktën 512 MB RAM (rekomandohet 1 GB); 16-bit

Nga libri i autorit

Slackware: hapi i parë drejt Linux për të gjithë Pra, shpërndarja SLS ka vdekur. Por shpirti i tij jetoi. Edhe gjatë periudhës së zhvillimit të tij aktiv, Patrick Volkerding miratoi SLS si bazën e sistemit të tij Linux, të quajtur Slackware, versioni i parë i të cilit u bë publik më 17 korrik 1993 dhe ka qenë duke u zhvilluar me sukses që atëherë.

Nga libri i autorit

Ekipi Linux i IPLabs: fillimi i Linux-it rus Pika tjetër në rrugën e Linux-it rus ishte viti 1998, kur IPLabs (më saktë, ndarja e tij - Ekipi i IPLabs Linux) së bashku me Institutin e Logjikës (në fakt, këta ishin të njëjtët njerëz - Alexey Novodvorsky, Alexey Smirnov dhe Yuri Devyatkin me

© 2024 ermake.ru -- Rreth riparimit të PC - Portali informacioni