ГНУ ГРУБ

Из Википедије, слободне енциклопедије
Иди на навигацију Иди на претрагу
ГНУ ГРУБ
Grub logo.png Grub logo2.png
Debian Unstable GRUB2 (2015).png
ГРУБ верзија 2 покренута у текст модулу
Првобитни
аутор(и)
ГНУ пројекат , Ерик Болејн
Прва верзија 1995. год.; пре 23 године (1995)
Најновија
верзија
2.00 (ГРУБ 2)
2012. год.; пре 6 година (2012)
Предверзија 2.02~бета2 (ГРУБ 2)[1]
2013. год.; пре 5 година (2013)
Статус развоја Активно
Писано у Асемблер, C
ОС Линукс, OS X, BSD, Соларис (x86 улаз) и Виндоус
Платформа IA-32, X86-64, IA-64, АРМ, PowerPC, MIPS и SPARC
Доступно у Енглески и други
Тип Покретач оперативног система
Лиценца ГНУ ГПЛ
Веб-сајт www.gnu.org/software/grub/

ГНУ ГРУБ (скраћеница за GNU Grand Unified Bootloader) је покретач оперативног система пакета ГНУ Пројекта. ГРУБ је референтна имплементација вишеструке спецификације покретања оперативног система фондације слободног софтвера, који обезбеђује кориснику избор за покретање једног од више инсталираних оперативних система на рачунару или избор специфичне конфигурације доступних кернела посебних партиција оперативног система. 

ГНУ ГРУБ је развојни пакет који се зове Grand Unified Bootloader (изводи се у оквиру обједињене теорије[2]). Углавном се корисит у оквиру система сличних Јуниксу. ГНУ оперативни систем користи ГНУ ГРУБ као покретач, као и већина Линукс дистрибуцијаСоларис оперативни систем је искористио ГРУБ као свој покретач на x86 системима, почевши од Соларис 10 1/06 верзије.

Могућности[уреди]

Корисници могу динамички да подесе ГРУБ подсистем. ГРУБ учитава своју конфигурацију приликом покретања, дозвољавајући бут-тајм промене, као што су одабир другог кернела или  иницијализацију РАМ диска. У том смислу, ГРУБ пружа једноставан, налик на баш, интерфејс командне линије, који корисницима омогућава писање нове бут секвенце, поред нормалних листа менија.

ГРУБ је лако преносив. Подржава више извршних формата и независни геометријски превод. Подржава све најчешће коришћене Јуникс системе датотека, Виндоус системе датотека ФАТ и  НТФС, и адресирање логичких блокова (ЛБА). ГРУБ омогућава корисницима да виде садржај фајлова на било ком подржаном систему датотека.

ГРУБ можете преузети као покретач оперативног система са мреже, чиме се подржава подизање система без диска. Такође подржава аутоматску декомпозицију у боот-у пре него што је покренут. Груб подржава оперативне системе који не врше вишеструко покретање оперативног система, помоћу учитавајућег ланца. Он користи две или треи исте линије кода за боотовањн било код ДОС, Виндоус, Линукс, BSD или Соларис система, чиме је рад са њим врло олакшан. Учитавајући ланац као подршка Јуникс оперативних система је уграђена у ГРУБ-у.

Груб може да се користи са различитим корисничким интерфејсима. Већина Линукс дистрибуција користи ГРУБ за графички интерфејс како би обезбедила прилагођн боот-мени са позадинском сликом. Модификација ГРУБ-овог текст интефејса се може користити као серијска веза, тако да удаљени терминал може имати приступ боот учитавању.

ГРУБ користи котрљајући екран за избор оперативног система за покретање. То значи 150 или више боот избор се може лако контролисати ГРУБ додавањем их у grub.cfg конфигурациони фајл. Стрелице се користе за избор оперативног система који треба да се покрене. Поред нормалног менија, груб такође пружа баш налик терминал команд-промт који пружа облина скуп команди како би се омогућило кориснику да види или измени било који део процеса подизања система. Са овим алатима се може, без претходног знања томе како се инсталира било шта на рачунару, користити ГРУБ из спољног уређаја као што су дискете, USB уређаја или CD-ROM како би се подигао инсталирани оперативни систем.

Операције[уреди]

ГБУ ГРУБ на a МБР-партицији хард диска; stage 1 (boot.img) може алтернативно бити написан у облику ВБР-а.
ГНУ ГРУБ на ГПТ-партицји хард диска

Бутовање[уреди]

Када је рачунар укључен, БИОС рачунара prоналази намештени примарни бутован уређај (најчешће хард диск рачунара) и учитава и извршава почетне бутстрап програм из МБР-а. МБР је први сектор на хард диску, са нулом као својим офсет (секторима бројање почиње од нуле). Већ дуже време, величина сектора је била 512 бајтова, али од 2009. године постоје хард дискови са величином сектора од 4096 бајтова, и називају се унапрађеним форматом дискова. Од октобра 2013. године, што су чврсти дискови су увек приступити у 512-бајта секторима, користећи се 512е емулацију.

Права МБР партиција подржава највише четири партиције и заузима 64 бајтова. Заједно опцијаме диске, сигнатура диска (четири бајта) и ознаке диска (шест бајта), остављају између 434 и 446 бајтова доступне меморије за машински код једног бут учитавања. Иако тако мали простор може бити потпуно довољан за веома једноставне бут утовариваче,[3] није довољно велик да садржи покретачки подржава сложених и више система датотека, меније избор за покретање избора итд Боот утоваривачи са већим стопала су тако подељени у комаде, где је најмањи комад уклапа у и борави у МБР, а већи комад (и) се чувају на другим местима (на пример, у празне секторе између МБР и прве партиције) и позивају се преко бут МБР кода.

Оперативни систем кернел слике су у већини случајева фајлове који се налазе на одговарајућим фајл системима, али је концепт система датотека је непознат БИОС-у. Тако, у системима који користе БИОС, је дужност бут учитавача јесте да приступи садржају тих фајлова, тако да се они могу прочитати са хард диска, учитају у РАМ и покрену.

Један од могућих приступа за покретање оперативног система је  учитавање основе језгра директно приступањем секторима хард диска заузетим од стране актуелне основе језгра, без разумевања основа система датотека. Обично је потребан додатни индиректни ниво, у облику мапе или мапе фајлова - помоћних фајлова који садрже списак физичких сектора обједињених основама језгра, чиме се омогућавају информације бут лоадеру о томе где се налазе фундаментални сектори основе језгра. Такве мапе треба да се ажурирају сваки пут када основе језгра мењају своју физичку локацију на диску, због инсталирања нове основе језгра, дефрагментације система фајлова итд. Такође, у случају да мапе мењају своје физичке локације, њихове локације треба да се ажурирају у оквиру МБР кода бут лоадера, тако сектори заобилазним механизмом настављају да раде. Ово није само гломазан, али и оставља могућност систему за ручне поправке у случају да нешто крене наопако током ажурирања система.[4]

Други приступ је да се направи бут лоадер битних системских датотека, па основе језгра  су подешене и приступа им се користећи своје актуелне путање датотека. То захтева да бут лоадер садржи драјвер за системске датотеке за сваки од подржаних системских датотека, тако да се може схватити и приступити самом бут лоадеру. Овакав приступ елиминише потребу за фиксним локацијама сектора хард диска и постојање мапе фајлова, и не захтева МБР ажурирање након додавања или премештања основе језгра. Конфигурација бут лоадера се чува у редовном фајлу, који је такође прикључен у системске фајлове - на тај начин добија бут подешавање пре самог покретања било какве основе језгра. Као резултат тога, могућност да ствари крену наопако у разним променама система је значајно смањена. Као недостатак, такав бут лоадер има повећану унутрашњу сложеност и повећане путање.[4]

ГНУ ГРУБ користи други приступ, са подразумеваним суштинским системским датотекама. Сама платформа бут лоадера је подељена у више фаза, дозвољавајући себи да се уклопи у МБР бут шеме.

Две главне верзије ГРУБ-а су у општој употреби. ГРУБ верзија 2, назива се и ГРУБ 2, написан од нуле и треба да замени претходну ГРУБ верзију 1, и сада се користи од стране већине Линукс верзија. ГРУБ верзија 1, назва се и ГРУБ наслеђе, преовладава само у старијим дистрибуираним верзијама Линукса, међу којима су неки и данас у употреби и подржава, на пример, у ЦентОС 5.

ГРУБ верзија 1 (ГРУБ наслеђе)[уреди]

ГРУБ v1 покренут као део Убунту 8.04 инсталације

Мастер Бут Рикорд (МБР) обично садржи ГРУБ фазу 1, али може да садржи други покретач који може покренути ланац ГРУБ фазе 1 из другог бут сектора као што су партиције волјум бут рекорд. С обзиром на малу величину бут сектора (512 бајта), фаза 1 може учинити мало од учитавања следеће фазе ГРУБ-а учитавањем неколико сектора дискова фиксних локација близу почетка диска (у оквиру својих првих 1024 цилиндара).

Фаза 1 може да учита фазу 2 директно, али је обично подешен да учита фазу 1.5. ГРУБ фаза 1.5 се налази у првих 30 КБ хард диска одмах после МБР-а и пре прве партиције. У случају да овај простор није доступан (нарочито табела партиција, специјалних драјвера за дискове, ГПТ или ЛВМ диска) инсталације фазе 1.5 неће успети. Основа фазе 1.5 садржи драјвере системских датотека. Ово омогућава фази 1.5 директно учитавање фазе 2 од било ког познатог места у системском фајлу, на пример из /boot/grub. Фаза 2 ће тада учитати датотеку подразумеване конфигурације и било које друге потребне модуле.

ГРУБ верзија 2 (ГРУБ)[уреди]

boot.img има тачну величину 446 бајтова и уписује се у МБР (сектор 0). core.img је уписан у празне секторе између МБР и прве партиције, ако је на располагању (за наслеђене основе прва партиција почиње у сектору 63, уместо сектор 1, али то није обавезно). /boot/grub директоријум може да се налази на посебаној партицији, или на рут партицији.
  • Фаза 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]

Када је изабрана опција бут, ГРУБ учитава изабрано језгро у меморију и контрола пролази на језгро. Алтернативно, ГРУБ може проћи контролу процеса подизања система другим бут лоадером, користећи учитавајући ланац. Ово је метод који се користи за учитавање оперативних система као што је Мајкрософт Виндоу, који не подржавају вишебутну спецификацију или нису директно подржани од стране ГРУБ-а.

Ако је коришћење дм-крипт намерно, садржај /boot, као и/boot/grub, Линукс језгра и initramfs односно initrd треба да буде на посебаној не-кодираној particiji  јер логика за руковање шифроване партиције се налази унутар Линукс језгра.

Инсталација[уреди]

ГНУ ГРУБ (верзија 2) софтвер пакета садржи неколико извршних датотека:

  1. креирати директоријум /boot/grub ако не постоји
  2. генерисати датотеку core.img односно grub*.efi
  3. написати boot.img било на MБР-у или волјум бут рекорду (ВБР), опционо наведено у командној линији
  4. написати core.img у простору између МБР-а и прве партиције или респективно копирати grub*.efi у EФИ системску партицију
  • grub-mkconfig(8) је помоћни програм за генерисање grub.cfg датотеке
  • update-grub(8) се користи за рад grub-mkconfig -o /boot/grub/grub.cfg-а, који комбинује поставке из /etc/default/grub  и /etc/grub.d/* конфигуришући датотеке у једну /boot/grub/grub.cfg датотеку [5]

ГРУБ може да се инсталира на преносним медијима, као што је оптички диск (БИОС приступ, и Ел Торито), дискета или USB флеш, што би омогућило подизање система који не може да се покрене са чврстог диска.

Историја[уреди]

Груб је првобитно развијен од стране Ерик Болена као део рада на покретању оперативног система ГНУ / Хурд, направљен од стране фондације за слободни софтвер.[8] У 1999. години, Гордон Матцикајт и Јошинори К. Окуји су направили ГРУБ званични софтверски пакет о ГНУ пројекту и отворио развојни процес у јавности.[8] А од 2014, је већина Линукс произвођача прихватила ГНУ ГРУБ 2. Сонијев плејстејшн 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]

Варијанте[уреди]

ГНУ ГРУБ је слободни софтвер и софтвер отвореног кода, тако да је неколико варијанти и направљено. Неке значајне које нису спојене у ГРУБ палету:

Помоћни програми[уреди]

ГРУБ алат за подешавање[уреди]

StartUp-Менаџер, програм се користи за подешавање ГРУБ-а
ГРУБ Кастјумајзер, други алат за подешавање ГРУБ-а

Алати за подешавање у употреби од стране дистрибуираних верзија често укључују модуле за подешавање ГРУБ-а: на пример, YаСТ2 за СУСЕ/опенСУСЕ дистрибуције и Анаконда за Федора/РХЕЛ дистрибуције. StartUp-Менаџер и ГРУБ Кастјумајзер су графички уређивачи за подешавње за Дебиан базиране дистрибуције у ГРУБ-у.

За ГРУБ 2 постоје КДЕ контролни модули.[25][26]

GRLDR ICE је мали алат за модификовање подразумеване конфигурације грлдр датотеке за ГРУБ4ДОС.[27]

Остали помоћни програми[уреди]

ГРУБ помоћни програми су колекција вишеплатформских помоћних програма за ГРУБ Наслеђе, ГРУБ 2 и ГРУБ за ДОС.[28]

Бут-Рипер је једноставан графички алат за опоравак од честих проблема покретање у вези са ГРУБ и Мајкрсофт Виндоус покретачем система. Апликација је расположива и за остале ГНУ ГПЛ лиценце. Бут-Рипер може опоравити ГРУБ на вишеструким Линукс дистрибуцијама, укључујући, али не ограничавајући се ни на, Дебиан, Убунту, Минт, Федору, опенСУСЕ, и Арч Линукс[29] и да ће бити укључен у будуће верзије Убунту-а.[30]

Видети и[уреди]

Референце[уреди]

  1. ^ ftp://alpha.gnu.org/gnu/grub/
  2. ^ EnterpriseLinux.com Definitions Definition of GRand Unified Bootloader
  3. ^ "mbldr (Master Boot LoaDeR)". sourceforge.net. 2009.
  4. 4,0 4,1 "Booting and Boot Managers".
  5. 5,0 5,1 "How to Configure the GRUB2 Boot Loader’s Settings". howtogeek.com.
  6. ^ "ArchWiki: Blacklist Kernel modules from GNU GRUB". 2012-11-11.
  7. ^ "GNU GRUB documentation".
  8. 8,0 8,1 GRUB Manual – 1.2 Grub History.
  9. ^ "PS4 runs Orbis OS, a modified version of FreeBSD that's similar to Linux". extremetech.com. 2013-06-24.
  10. ^ GNU GRUB – GRUB Legacy.
  11. ^ GNU GRUB – GRUB 2 at the Wayback Machine (archived June 7, 2008).
  12. ^ Vladimir 'φ-coder/phcoder' Serbinenko (28 Jun 2012).
  13. ^ Larabel, Michael.
  14. ^ Haddon, Tom (26 January 2012).
  15. ^ Janssen, Cory.
  16. ^ Varghese, Sam (2012-09-20).
  17. ^ "9.10 Karmic GRUB version".
  18. ^ GRUB 2.
  19. ^ openSUSE:Upcoming features – openSUSE Архивирано на сајту Wayback Machine (септембар 20, 2012) (на језику: енглески).
  20. ^ Solaris 11.1.
  21. ^ 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
  22. ^ x86: Supported GRUB Implementations Архивирано на сајту Wayback Machine (октобар 21, 2009) (на језику: енглески), (System Administration Guide: Basic Administration) – Sun Microsystems
  23. ^ 2.3 Why does Syllable have its own version of GRUB? Архивирано на сајту Wayback Machine (јануар 7, 2011) (на језику: енглески), Syllable Documentation
  24. ^ "TrustedGRUB project". sourceforge.net.
  25. ^ GRUB2 Bootloader Editor.
  26. ^ Grub2 KCM Retrieved 2011-01-27
  27. ^ "Grub4dos tutorial". narod.ru.
  28. ^ GRUB Utilities – Summary Архивирано на сајту Wayback Machine (фебруар 4, 2011) (на језику: енглески).
  29. ^ Official Boot-Repair website.
  30. ^ .

Спољашње везе[уреди]