Упатство:Конфигурирање и употреба на GRUB
Кога се вклучува компјутерот BIOS-oт ја пронаоѓа примарната активна партиција обично на тврдиот диск. Потоа контролата ја превзема MBR (Master Boot Record), првите 512 бајти од дискот.
MBR ја содржи првата фаза од [[GRUB]]. Тој само ја вклучува втората фаза која може да се наоѓа каде и да е на дискот. Кога втората фаза се повикува, таа дава интерфејс со кој може да се избере оперативен систем за да се вклучи. Ова е обично формата со графичко мени, меѓутоа, GRUB има командна линија во која корисникот може сам да внесе параметри за стартување. Може да се намести и тајмер, време за кое избраната слика ќе се вклучи.
Откога ќе биде избрана слика, GRUB го внесува јадрото во меморијата и му ја предава контролата нему.
Инсталација
Откако ќе извршите промени во конфигурацијата, GRUB нема потреба да се преинсталира. Неговите конфигурациони датотеки се наоѓаат на партицијата што се користи, а ако не може да се пронајдат, првата фаза го префрла корисникот на командната линија.
Името и локацијата на дискот на GRUB конфигурационите датотеки варираат од систем до систем. На пр., во Debian GNU/Linux и OpenSUSE датотеката е во /boot/grub/menu.lst, додека во Fedora Core во /boot/grub/grub.conf. Fedora исто така додава и врска до /etc/grub.conf. GRUB, наместо да биде инсталиран на тврдиот диск, може да се инсталира и на преносен медиум како оптички диск, дискета или USB flash меморија со цел да се стартува систем кој не може да се вклучи од самиот диск. GRUB командна линија
Што апсолутно мора да се знае за да може едно јадро да се вклучи:
- Партицијата каде се наоѓа јадрото
- Неговата локација на таа партиција
- Дали партицијата ја има програмата /sbin/init
Дополнително, може да биде потребно да се знае адресата на initrd датотеката, но обично не е неопходно.
Покренување од една партиција
Систем во кој сликата од кернелот се наоѓа во /boot, името е vmlinuz-i686-up-4GB, а /dev/hda1 e самата партиција:
grub> root (hd0,0) grub> kernel /boot/vmlinuz-i686-up-4GB root=/dev/hda1 grub> boot
Пребарување со GRUB
Често ја знаеме партицијата на која е инсталиран GRUB, кернелот и потребните партиции за монтирање. Меѓутоа, понекогаш може да се направат грешки. Нешто се измешало со LILO, или некој инсталирал Windows по грешка, па го презапишал МBR... Тогаш GRUB ни е најпотребен.
Првиот чекор е да се пронајде партицијата која го содржи /sbin/init. Потоа го пишувате следното во grub> командната линија:
find /sbin/init
На машина со инсталирани три GNU/Linux оперативни системи, би се појавило нешто како ова:
grub> find /sbin/init (hd0,8) (hd0,11) (hd1,11) grub>
Беа пронајден трите партиции со системот, што го содржат /sbin/init:
(hd0,8) /dev/hda9 (hd0,11) /dev/hda12 (hd1,11) /dev/hde12
Следно, ги пронаоѓате сите партиции кои содржат кернел:
grub> find /vmlinuz (hd0,0) (hd0,11) (hd1,11) grub>
Потоа пребарувате во директориумот /boot:
grub> find /boot/vmlinuz (hd0,11) (hd1,11) grub>
Функцијата find е ограничена, бидејќи може да пребарува само датотеки, а не и директориуми. Друга помош во grub> e Таb, кој врши надополнување на командите и зборовите.
Создавање на GRUB дискета за покренување
Ова може да се прави на секоја GNU/Linux дистрибуција на која има инсталирано GRUB. Претпоставуваме дека дискетата е без податочен систем.
# mkfs -t ext2 -c /dev/fd0u1440 # umount /dev/fd0 # umount /dev/fd0u1440 # mkdir /mnt/test # mount /dev/fd0u1440 /mnt/test # mkdir -p /mnt/test/boot/grub # cp /boot/grub/stage1 /mnt/test/boot/grub # cp /boot/grub/stage2 /mnt/test/boot/grub # chmod a-w /mnt/test/boot/grub/stage2
# umount /dev/fd0u1440
# grub grub> root (fd0) grub> setup (fd0) grub> quit
На дискетата мора да се додаде и menu.lst, која би користела за GRUB мени. Напомена: menu.lst не се става на дискетата пред сите овие чекори. Mount и umount мора да се применуваат. Еве како да се стави menu.lst:
# mount /dev/fd0u1440 /mnt/test # cp -p /usr/share/doc/grub-doc-0.93/menu.lst /mnt/test/boot/grub/
stage1 stage2
# cp -p /usr/share/doc/grub-doc-0.93/menu.lst /mnt/test/boot/grub/menu.lst.example # umount /dev/fd0u1440 #
Инсталирање на GRUB од дискета
Не правете го инсталирањето пред претходните чекори успешно да завршат. Ставете ја дискетата во уредот и вклучете го компјутерот. Наместете во BIOS да побара boot-ирање од дискета. Основните процедури се:
- Пуштете го системот од дискетата
- Копирајте ги датотеките од /boot/grub од дискетата на тврдиот диск
- Конфигурирајте го /boot/grub/menu.lst за овој компјутер
- Инсталирајте GRUB и рестартирајте го компјутерот
Стартување од GRUB дискетата
grub> root (hd0,0) grub> kernel /vmlinuz-i686-up-4GB root=/dev/hda9 grub> boot
На крајот од вториот ред може да се додаде lang= и јазикот на кој сакате да работите. Пр. lang=us
Копирање на датотеките од дискетата на тврдиот диск
Прво, осигурајте се дека не постои /boot/grub на тврдиот диск. Потоа:
# mkdir /mnt/test # mount /dev/fd0u1440 /mnt/test # cp -Rp /mnt/test/boot/grub /boot
menu.lst ги содржи сите команди кои се внесуваат преку командната линија, само што не пишувате boot. Овде ќе ги внесете сите команди за стартување на кернелите или оперативни системи на Вашата машина, ќе дадете наслов како објаснение за секој од нив, ќе изберете позадина или боја и време на автоматско вклучување. Еве еден едноставен пример:
# Boot automatically after 30 secs. timeout 30
# By default, boot the first entry. default 0
# For booting GNU/Linux title GNU/Linux root (hd0,0) kernel /boot/vmlinuz-2.6.7 root=/dev/hda1 lang=us
Објаснување:
- default 0 – покажува кој кернел или оперативен систем ќе се вклучи по истекувањето на timeout периодот
- lang= е непотребно, освен ако се стартува дистрибуција која работи со друг јазик
- root (hd0,0) треба да биде поставено да покажува на партицијата што го содржи кернелот
- root=/dev/hda1 покажува на партицијата која ќе биде монтирана како root после стартувањето. Ова е ГНУ/Линукс, а не GRUB нотација
- /boot/vmlinuz-2.6.7 го покажува самиот кернел. Ако кернелот се наоѓа на друга локација, ова е местото каде што тоа треба да се каже
Рестартирање од дискетата и инсталирање GRUB
Ставете ја дискетата и ресетирајте. Кога ќе се прочита GRUB од дискетата, ќе бидете однесени на командната линија. Внесете:
grub> root (hd0,0) grub> setup (hd0) grub> reboot
Компјутерот се рестартира уште еднаш, извадете ја дискетата и ќе го добиете мени за избор на дистрибуција. Во овој случај има само една. Додајте ги и другите кернели во menu.lst за да можете да ги вклучите на почетокот. Откако е инсталиран, нема потреба да се преинсталира за секоја промена која е направена. Изменете го menu.lst и внесете grub во конзолата, за да ги видите резултатите. Еве уште еден пример за menu.lst:
# Boot automatically after 30 secs. timeout 30
# By default, boot the first entry. default 0
# Fallback to the second entry. fallback 1
# For booting GNU/Linux title 26 root (hd0,0) kernel /boot/vmlinuz-2.6.7 root=/dev/hda1 lang=us
# For booting GNU/Linux title 24 root (hd0,0) kernel /boot/vmlinuz-2.4.27 root=/dev/hda1 lang=us
Повикување на веќе инсталиран GRUB
Може и да се повика веќе инсталиран GRUB кој не може да се лоцира (презапишан MBR од друга инсталација)
Во терминалот од некоја жива дистрибуција, пронајдете го името на партицијата на која се наоѓа кернелот:
# fdisk –l
Резултат од ова би бил, на пример:
/dev/hda/host0/bus0/target0/lun0/part1
за IDE тврди дискови, или:
/dev/scsi/host0/bus0/target0/lun0/part1
за SCSI дискови.
Направете директориум за оваа партиција и монтирајте ја:
# mkdir /mydisk # mount /dev/hda/host0/bus0/target0/lun0/part1 /mydisk
Внесете:
# chroot /mydisk
за директориумот да се однесува како root
# grub-install /dev/hda
Ова ќе го преинсталира GRUB на Вашата партиција.
Внесете
# exit
и рестартирајте го компјутерот.