ГНУ ГРУБ
Овом чланку је потребна лектура текста. То подразумева исправку граматичких, правописних и интерпункцијских грешака или тона. |
Програмер(и) | ГНУ пројекат , Ерик Болејн |
---|---|
Прво издање | 1995. |
Стабилно издање | 2.00 (ГРУБ 2)
/ 2012. |
Прелиминарно издање | 2.02~бета2 (ГРУБ 2)[1]
|
Репозиторијум | |
Написан у | Асемблер, C |
Оперативни систем | Линукс, OS X, BSD, Соларис (x86 улаз) и Windows |
Платформа | IA-32, X86-64, IA-64, АРМ, PowerPC, MIPS и SPARC |
Доступан на | Енглески и други |
Тип | Покретач оперативног система |
Лиценца | ГНУ ГПЛ |
Веб-сајт | www |
ГНУ ГРУБ (скраћеница за GNU Grand Unified Bootloader) је покретач оперативног система пакета ГНУ Пројекта. ГРУБ је референтна имплементација вишеструке спецификације покретања оперативног система фондације слободног софтвера, који обезбеђује кориснику избор за покретање једног од више инсталираних оперативних система на рачунару или избор специфичне конфигурације доступних кернела посебних партиција оперативног система.
ГНУ ГРУБ је развојни пакет који се зове Grand Unified Bootloader (изводи се у оквиру обједињене теорије[2]). Углавном се корисит у оквиру система сличних Јуниксу. ГНУ оперативни систем користи ГНУ ГРУБ као покретач, као и већина Линукс дистрибуција. Соларис оперативни систем је искористио ГРУБ као свој покретач на x86 системима, почевши од Соларис 10 1/06 верзије.
Могућности
[уреди | уреди извор]Корисници могу динамички да подесе ГРУБ подсистем. ГРУБ учитава своју конфигурацију приликом покретања, дозвољавајући бут-тајм промене, као што су одабир другог кернела или иницијализацију РАМ диска. У том смислу, ГРУБ пружа једноставан, налик на баш, интерфејс командне линије, који корисницима омогућава писање нове бут секвенце, поред нормалних листа менија.
ГРУБ је лако преносив. Подржава више извршних формата и независни геометријски превод. Подржава све најчешће коришћене Јуникс системе датотека, Windows системе датотека ФАТ и НТФС, и адресирање логичких блокова (ЛБА). ГРУБ омогућава корисницима да виде садржај фајлова на било ком подржаном систему датотека.
ГРУБ можете преузети као покретач оперативног система са мреже, чиме се подржава подизање система без диска. Такође подржава аутоматску декомпозицију у боот-у пре него што је покренут. Груб подржава оперативне системе који не врше вишеструко покретање оперативног система, помоћу учитавајућег ланца. Он користи две или треи исте линије кода за боотовањн било код ДОС, Windows, Линукс, BSD или Соларис система, чиме је рад са њим врло олакшан. Учитавајући ланац као подршка Јуникс оперативних система је уграђена у ГРУБ-у.
Груб може да се користи са различитим корисничким интерфејсима. Већина Линукс дистрибуција користи ГРУБ за графички интерфејс како би обезбедила прилагођн боот-мени са позадинском сликом. Модификација ГРУБ-овог текст интефејса се може користити као серијска веза, тако да удаљени терминал може имати приступ боот учитавању.
ГРУБ користи котрљајући екран за избор оперативног система за покретање. То значи 150 или више боот избор се може лако контролисати ГРУБ додавањем их у grub.cfg конфигурациони фајл. Стрелице се користе за избор оперативног система који треба да се покрене. Поред нормалног менија, груб такође пружа баш налик терминал команд-промт који пружа облина скуп команди како би се омогућило кориснику да види или измени било који део процеса подизања система. Са овим алатима се може, без претходног знања томе како се инсталира било шта на рачунару, користити ГРУБ из спољног уређаја као што су дискете, USB уређаја или CD-ROM како би се подигао инсталирани оперативни систем.
Операције
[уреди | уреди извор]Бутовање
[уреди | уреди извор]Када је рачунар укључен, БИОС рачунара prоналази намештени примарни бутован уређај (најчешће хард диск рачунара) и учитава и извршава почетне бутстрап програм из МБР-а. МБР је први сектор на хард диску, са нулом као својим офсет (секторима бројање почиње од нуле). Већ дуже време, величина сектора је била 512 бајтова, али од 2009. године постоје хард дискови са величином сектора од 4096 бајтова, и називају се унапрађеним форматом дискова. Од октобра 2013. године, што су чврсти дискови су увек приступити у 512-бајта секторима, користећи се 512е емулацију.
Права МБР партиција подржава највише четири партиције и заузима 64 бајтова. Заједно опцијаме диске, сигнатура диска (четири бајта) и ознаке диска (шест бајта), остављају између 434 и 446 бајтова доступне меморије за машински код једног бут учитавања. Иако тако мали простор може бити потпуно довољан за веома једноставне бут утовариваче,[3] није довољно велик да садржи покретачки подржава сложених и више система датотека, меније избор за покретање избора итд Боот утоваривачи са већим стопала су тако подељени у комаде, где је најмањи комад уклапа у и борави у МБР, а већи комад (и) се чувају на другим местима (на пример, у празне секторе између МБР и прве партиције) и позивају се преко бут МБР кода.
Оперативни систем кернел слике су у већини случајева фајлове који се налазе на одговарајућим фајл системима, али је концепт система датотека је непознат БИОС-у. Тако, у системима који користе БИОС, је дужност бут учитавача јесте да приступи садржају тих фајлова, тако да се они могу прочитати са хард диска, учитају у РАМ и покрену.
Један од могућих приступа за покретање оперативног система је учитавање основе језгра директно приступањем секторима хард диска заузетим од стране актуелне основе језгра, без разумевања основа система датотека. Обично је потребан додатни индиректни ниво, у облику мапе или мапе фајлова - помоћних фајлова који садрже списак физичких сектора обједињених основама језгра, чиме се омогућавају информације бут лоадеру о томе где се налазе фундаментални сектори основе језгра. Такве мапе треба да се ажурирају сваки пут када основе језгра мењају своју физичку локацију на диску, због инсталирања нове основе језгра, дефрагментације система фајлова итд. Такође, у случају да мапе мењају своје физичке локације, њихове локације треба да се ажурирају у оквиру МБР кода бут лоадера, тако сектори заобилазним механизмом настављају да раде. Ово није само гломазан, али и оставља могућност систему за ручне поправке у случају да нешто крене наопако током ажурирања система.[4]
Други приступ је да се направи бут лоадер битних системских датотека, па основе језгра су подешене и приступа им се користећи своје актуелне путање датотека. То захтева да бут лоадер садржи драјвер за системске датотеке за сваки од подржаних системских датотека, тако да се може схватити и приступити самом бут лоадеру. Овакав приступ елиминише потребу за фиксним локацијама сектора хард диска и постојање мапе фајлова, и не захтева МБР ажурирање након додавања или премештања основе језгра. Конфигурација бут лоадера се чува у редовном фајлу, који је такође прикључен у системске фајлове - на тај начин добија бут подешавање пре самог покретања било какве основе језгра. Као резултат тога, могућност да ствари крену наопако у разним променама система је значајно смањена. Као недостатак, такав бут лоадер има повећану унутрашњу сложеност и повећане путање.[4]
ГНУ ГРУБ користи други приступ, са подразумеваним суштинским системским датотекама. Сама платформа бут лоадера је подељена у више фаза, дозвољавајући себи да се уклопи у МБР бут шеме.
Две главне верзије ГРУБ-а су у општој употреби. ГРУБ верзија 2, назива се и ГРУБ 2, написан од нуле и треба да замени претходну ГРУБ верзију 1, и сада се користи од стране већине Линукс верзија. ГРУБ верзија 1, назва се и ГРУБ наслеђе, преовладава само у старијим дистрибуираним верзијама Линукса, међу којима су неки и данас у употреби и подржава, на пример, у ЦентОС 5.
ГРУБ верзија 1 (ГРУБ наслеђе)
[уреди | уреди извор]Мастер Бут Рикорд (МБР) обично садржи ГРУБ фазу 1, али може да садржи други покретач који може покренути ланац ГРУБ фазе 1 из другог бут сектора као што су партиције волјум бут рекорд. С обзиром на малу величину бут сектора (512 бајта), фаза 1 може учинити мало од учитавања следеће фазе ГРУБ-а учитавањем неколико сектора дискова фиксних локација близу почетка диска (у оквиру својих првих 1024 цилиндара).
Фаза 1 може да учита фазу 2 директно, али је обично подешен да учита фазу 1.5. ГРУБ фаза 1.5 се налази у првих 30 КБ хард диска одмах после МБР-а и пре прве партиције. У случају да овај простор није доступан (нарочито табела партиција, специјалних драјвера за дискове, ГПТ или ЛВМ диска) инсталације фазе 1.5 неће успети. Основа фазе 1.5 садржи драјвере системских датотека. Ово омогућава фази 1.5 директно учитавање фазе 2 од било ког познатог места у системском фајлу, на пример из /boot/grub. Фаза 2 ће тада учитати датотеку подразумеване конфигурације и било које друге потребне модуле.
ГРУБ верзија 2 (ГРУБ)
[уреди | уреди извор]- Фаза 1:
boot.img
се чува у мастер бут рикорду (МБР) или опционо у било ком од волјум бут рекорду (ВБР), и адресира следећу фазу од стране ЛБА48 адресе (дакле, ограничење 1024-цилиндара ГРУБ наслеђе се избегава); у току инсталације конфигурације учитава се први секторcore.img
. - Фаза 1.5:
core.img
се по дифолту уписује у секторе између МБР и прве партиције, када су ти сектори слободни и доступни. За наслеђивање, прва подела хард диск не почиње у сектору 1 (бројање почиње од 0), али у сектору 63, остављајући размак од 62 сектора празног простора. Тај простор није део ни једе партиције или система фајлова, а самим тим није подложан било каквим проблемима везаних са њим. Једном извршен, core.img ће учитати своју датотеку подешавања и било које друге потребне модуле, драјвере за посебне системске датотеке; у току инсталације генерисаће diskboot.img, и подесити да се учита фаза 2 са путањом за датотеку.. - Фаза 2: датотеке које припадају фази 2 се сви држе у
/boot/grub
директоријуму, који је подиректоријум /boot директоријума специфицираног по стандардима хијерархије фајл-система (FHS).
Када се ГРУБ фаза 2 учита, што представља ТУИ- оперативни систем базиран на изборном (избор језгра) менију, где корисник може да изабере који оперативни систем да се покрене. ГРУБ се може подесити да се аутоматски учита, изабере језгро, корисничко време завршетка; ако је време завршетка 0 секунди, притискање и задржавање ⇧ Shift док се рачунар стартује омогућава да приступи менију за покретање.[5]
Ако датотеке или партиција постану недоступни, или ако корисник жели да преузме директну контролу, фаза 2 ће пасти на коришћење ГРУБ командне линије, где затим корисник може да ручно наведе бут параметре.
У изборном менију оперативног система ГРУБ прихвата пар команди:
- Притиском e, могуће је мењати параметре за изабрани оперативни систем пре стартовања оперативног система. Типично, ово се користи за промену параметара језгра за Линукс систем. Разлог за ово у ГРУБ-у (не мењати параметре у већ покренутом систему) може бити хитан случај: систем није успео да се подигне. Коришћењем линије параметара језгра могуће је, између осталог, да наведете модул да буде онемогућен (блокиран) за језгро. Ово би могло бити потребно ако је специфичан модул језгра оштећен и на тај начин спречава бут-уп. На пример, ако је блокиран модул језгра
nvidia-current
, додатиmodprobe.blacklist=nvidia-current
на крају параметара језгра.[6] - Притиском c, корисник улази у ГРУБ командну линију. ГРУБ командна линија није регуларна Линукс љуска, као нпр.баш, и прихвата само одређене ГРУБ специфичне команде, документоване од стране разних Линукс дистрибуција.[7]
Када је изабрана опција бут, ГРУБ учитава изабрано језгро у меморију и контрола пролази на језгро. Алтернативно, ГРУБ може проћи контролу процеса подизања система другим бут лоадером, користећи учитавајући ланац. Ово је метод који се користи за учитавање оперативних система као што је Microsoft Windows, који не подржавају вишебутну спецификацију или нису директно подржани од стране ГРУБ-а.
Ако је коришћење дм-крипт намерно, садржај /boot
, као и/boot/grub
, Линукс језгра и initramfs
односно initrd
треба да буде на посебаној не-кодираној particiji јер логика за руковање шифроване партиције се налази унутар Линукс језгра.
Инсталација
[уреди | уреди извор]ГНУ ГРУБ (верзија 2) софтвер пакета садржи неколико извршних датотека:
- скрипт датотека која ће извршити следеће задатке: је
- креирати директоријум
/boot/grub
ако не постоји - генерисати датотеку
core.img
односноgrub*.efi
- написати
boot.img
било на MБР-у или волјум бут рекорду (ВБР), опционо наведено у командној линији - написати
core.img
у простору између МБР-а и прве партиције или респективно копиратиgrub*.efi
у EФИ системску партицију
grub.cfg
датотеке
је помоћни програм за генерисање grub-mkconfig -o /boot/grub/grub.cfg-а
, који комбинује поставке из /etc/default/grub и /etc/grub.d/* конфигуришући датотеке у једну /boot/grub/grub.cfg датотеку [5] се користи за рад
ГРУБ може да се инсталира на преносним медијима, као што је оптички диск (БИОС приступ, и Ел Торито), дискета или USB флеш, што би омогућило подизање система који не може да се покрене са чврстог диска.
Историја
[уреди | уреди извор]Груб је првобитно развијен од стране Ерик Болена као део рада на покретању оперативног система ГНУ / Хурд, направљен од стране фондације за слободни софтвер.[8] У 1999. години, Гордон Матцикајт и Јошинори К. Окуји су направили ГРУБ званични софтверски пакет о ГНУ пројекту и отворио развојни процес у јавности.[8] А од 2014, је већина Линукс произвођача прихватила ГНУ ГРУБ 2. Сонијев PlayStation 4 такође користи ГНУ ГРУБ верзију 2.00.[9]
Развој
[уреди | уреди извор]ГРУБ верзија 1 (такође позната као "ГРУБ Наслеђе") више није у фази развоја и нестаје.[10] ГНУ ГРУБ програмери имају у фокусу ГРУБ 2,[11] a комплетну прераду са намером израде ГНУ ГРУБ-а очишћеног, снажнијег, преносивог и моћнијег. Груб 2 је стартовао под именом ПУПА. ПУПА је подржан од стране Агенције за информационо-технолошку промоцију (ИПА) у Јапану. ПУПА је интегрисан у ГРУБ 2 развој око 2002. године, када је ГРУБ верзија 0,9x преименована у ГРУБ Наслеђе.
Неки од циљева ГРУБ 2 пројекта је да обухвати подршку не-x86 платформи, интернационализацију/локализацију, не-ASCII знакова, динамичких модула, управљање меморијом, скриптинг мини-језика, миграцију платформи специфичног (x86) кода на платформу посебних модула, као и објектно-оријентисани оквир. ГНУ ГРУБ верзија 2.00 је званично објављена 26. јуна 2012.[12][13]
Три најчешће коришћене [14][15][16] Линукс дистрибуције користе ГРУБ 2 као главни бут лоадер. Убунту усваја ГРУБ 2 као подразумевани бут лоадер од 9.10 верзије из Октобра 2009.[17] Федора користи ГРУБ 2 као подразумевани бут лоадер од верзије 16 објављене у новембру 2011. године.[18] Опен СУСЕ усваја ГРУБ 2 као подразумевани бут лоадер са 12.2 верзијом из септембра 2012. године.[19]
Соларис такође усваја ГРУБ 2 на x86 платформи у верзији Соларис 11.1.[20]
Варијанте
[уреди | уреди извор]ГНУ ГРУБ је слободни софтвер и софтвер отвореног кода, тако да је неколико варијанти и направљено. Неке значајне које нису спојене у ГРУБ палету:
- OpenSolaris укључује модификовану ГРУБ Наслеђе која подржава BSD оп.систем, аутоматски избор 64-битног језгра, и покретање са ЗФС-а (са компресијом и вишеструко бут окружење).[21][22]
- Syllable пројекат производи измењену верзију за ГРУБ-а да би учитао систем од свог AtheOS Система датотека.[23]
- TrustedGRUB проширује ГРУБ спровођењем верификације интегритета система и покретањем процеса безбедности, користећи верносни платформни модул (TПМ).[24]
Помоћни програми
[уреди | уреди извор]ГРУБ алат за подешавање
[уреди | уреди извор]Алати за подешавање у употреби од стране дистрибуираних верзија често укључују модуле за подешавање ГРУБ-а: на пример, YаСТ2 за СУСЕ/опенСУСЕ дистрибуције и Анаконда за Федора/РХЕЛ дистрибуције. StartUp-Менаџер и ГРУБ Кастјумајзер су графички уређивачи за подешавње за Дебиан базиране дистрибуције у ГРУБ-у.
За ГРУБ 2 постоје КДЕ контролни модули.[25][26]
GRLDR ICE је мали алат за модификовање подразумеване конфигурације грлдр датотеке за ГРУБ4ДОС.[27]
Остали помоћни програми
[уреди | уреди извор]ГРУБ помоћни програми су колекција вишеплатформских помоћних програма за ГРУБ Наслеђе, ГРУБ 2 и ГРУБ за ДОС.[28]
Бут-Рипер је једноставан графички алат за опоравак од честих проблема покретање у вези са ГРУБ и Windows покретачем система. Апликација је расположива и за остале ГНУ ГПЛ лиценце. Бут-Рипер може опоравити ГРУБ на вишеструким Линукс дистрибуцијама, укључујући, али не ограничавајући се ни на, Дебиан, Убунту, Минт, Федору, опенСУСЕ, и Арч Линукс[29] и да ће бити укључен у будуће верзије Убунту-а.[30]
Види још
[уреди | уреди извор]- Поређење покретача оперативних система
- НТЛДР
- ГУИД партициона табела (ГПТ)
- Јединствен проширив интерфејс (УЕФИ)
Референце
[уреди | уреди извор]- ^ ftp://alpha.gnu.org/gnu/grub/
- ^ EnterpriseLinux.com Definitions Архивирано на сајту Wayback Machine (3. децембар 2010) Definition of GRand Unified Bootloader
- ^ "mbldr (Master Boot LoaDeR)". sourceforge.net. 2009.
- ^ а б "Booting and Boot Managers" Архивирано на сајту Wayback Machine (17. септембар 2013).
- ^ а б "How to Configure the GRUB2 Boot Loader’s Settings". howtogeek.com.
- ^ "ArchWiki: Blacklist Kernel modules from GNU GRUB". 2012-11-11.
- ^ "GNU GRUB documentation".
- ^ а б GRUB Manual – 1.2 Grub History.
- ^ "PS4 runs Orbis OS, a modified version of FreeBSD that's similar to Linux". extremetech.com. 2013-06-24.
- ^ GNU GRUB – GRUB Legacy.
- ^ GNU GRUB – GRUB 2 at the Wayback Machine (archived June 7, 2008).
- ^ Vladimir 'φ-coder/phcoder' Serbinenko (28 Jun 2012).
- ^ Larabel, Michael.
- ^ Haddon, Tom (26 January 2012).
- ^ Janssen, Cory.
- ^ Varghese, Sam (2012-09-20).
- ^ "9.10 Karmic GRUB version".
- ^ GRUB 2.
- ^ openSUSE:Upcoming features – openSUSE Архивирано на сајту Wayback Machine (20. септембар 2012)
- ^ Solaris 11.1.
- ^ x86: Modifying Boot Behavior by Editing the GRUB Menu at Boot Time Архивирано на сајту Wayback Machine (19. јул 2011), Modifying Solaris Boot Behavior on x86 Based Systems (Task Map) – System Administration Guide: Basic Administration
- ^ x86: Supported GRUB Implementations Архивирано на сајту Wayback Machine (21. октобар 2009), (System Administration Guide: Basic Administration) – Sun Microsystems
- ^ 2.3 Why does Syllable have its own version of GRUB? Архивирано на сајту Wayback Machine (7. јануар 2011), Syllable Documentation
- ^ "TrustedGRUB project". sourceforge.net.
- ^ GRUB2 Bootloader Editor.
- ^ „Grub2 KCM”. Приступљено 27. 1. 2011.
- ^ "Grub4dos tutorial". narod.ru.
- ^ GRUB Utilities – Summary Архивирано на сајту Wayback Machine (4. фебруар 2011)
- ^ Official Boot-Repair website.
- ^ .
Спољашње везе
[уреди | уреди извор]- Official website
- Boot with GRUB, an April 2001 article in Linux Journal
- Booting Linux on x86 using Grub2
- LILO and GRUB: Boot Loaders Made Simple