Похоже, я опять всё напутал -)
У меня на диске hdb уже стоял grub от suse, который загружал только её и виндовс. Мне нужно было добавить в список ещё и mandriva. Дело в том, что lilo грузить ядро suse (а также fedore) напрочь не хочет (скорее всего из-за того, что я не правильно это делаю). Но в любом случае пришлось разбираться с тем, как работает grub.
Что делал я:
1) добавил необходимый пункт в список menu.lst;
2) перезаписал grub в mbr командой (здесь я действовал по аналогии с lilo):
install (hd0,13)/boot/grub/stage1 (hd0) (hd0,13)/boot/grub/stage2 p (hd0,13)/boot/grub/menu.lst
Потом я понял, что 2-ой пунки выполнял напрасно, ибо после него вместо красивого меню с выбором ОС, при загрузке у меня появилась лишь надпись: "grub>"
К счатью, я уже был в состоянии загрузить от сюда ОС, но у меня осталось несколько вопросов.
1. Нужно ли было выполнять пункт №2 для перезаписи загрузчика grub в mbr, т.е. так, как это делается с lilo? Теперь мне кажется, что нет. Значит, на сколько я понимаю, дело обстоит так: при загрузке компа биос передаёт управление grub`у в mbr, который читает с диска меню menu.lst и выводит его на экран. Дальнейшие действия очевидны.
2. Как вернуть себе графическое (или текстовое) меню?
3. Почему винчестер hdb, когда он подключен всего один, в грабе нумеруется как hd0, а не hdb1? Дело в том, что винт hda я часто отключаю. Не факт, конечно, но возможно, это может вызвать некоторые проблемы с загрузкой.
Собственно, мой файл /boot/grub/menu.lst (на hdb14), если он имеет значение:
# Modified by YaST2. Last modification on Птн Июн 1 18:53:18 UTC 2007
color white/blue black/light-gray
default 0
timeout 8
gfxmenu (hd0,13)/boot/message
###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE LINUX 9.3
kernel (hd0,13)/boot/vmlinuz root=/dev/hdb14 vga=0x317 selinux=0 splash=silent resume=/dev/hdb13 showopts
initrd (hd0,13)/boot/initrd
###Don't change this comment - YaST2 identifier: Original name: xen###
title XEN
kernel (hd0,13)/boot/xen.gz dom0_mem=458752
module (hd0,13)/boot/vmlinuz2-xen root=/dev/hdb14 vga=0x317 selinux=0 splash=silent resume=/dev/hdb13 showopts
module (hd0,13)/boot/initrd-xen
###Don't change this comment - YaST2 identifier: Original name: windows###
title Windows
root (hd0,0)
chainloader +1
###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe
kernel (hd0,13)/boot/vmlinuz root=/dev/hdb14 showopts ide=nodma apm=off acpi=off vga=normal noresume selinux=0 barrier=off nosmp noapic maxcpus=0 3
initrd (hd0,13)/boot/initrd
###Don't change this comment - YaST2 identifier: Original name: memtest86###
title Memory Test
kernel (hd0,13)/boot/memtest.bin
### Mandriva on hdb11 = hd0,10
title Mandriva-2
kernel (hd0,10)/mnt/hdb11/boot/vmlinuz root=/dev/hdb11
initrd (hd0,10)/mnt/hdb11/boot/initrd
Grub для новичка (принцип работы)
Модератор: Bizdelnick
-
zl3p
- Сообщения: 206
- Статус: с диагнозом
- ОС: операционная клинической
-
math
- Сообщения: 298
- Статус: Ъ участник
- ОС: Artix (= Arch without systemd)
Re: Grub для новичка
Да, в отличие от Лило, Груб после изменения меню перезаписывать не надо
Что касается нумерации, то Груб нумерует жесткие диски от нуля и только жесткие диски (даже CD/DVD не считаются)
Восстановить меню, как японимаю, можно так:
# grub
> root (hd0, 13)
> install (hd0)
>exit
Кстати в разделе загрузки Винды лучше вместо root написать rootnoverify
Что касается нумерации, то Груб нумерует жесткие диски от нуля и только жесткие диски (даже CD/DVD не считаются)
Восстановить меню, как японимаю, можно так:
# grub
> root (hd0, 13)
> install (hd0)
>exit
Кстати в разделе загрузки Винды лучше вместо root написать rootnoverify
-
zl3p
- Сообщения: 206
- Статус: с диагнозом
- ОС: операционная клинической
Re: Grub для новичка
Какая-то ошибка...
> root (hd0, 13)
Filesystem type is ext2fs,partition type 0x83
> install (hd0)
Error 1: Filename must be either an absolute pathname or blocklist
> root (hd0, 13)
Filesystem type is ext2fs,partition type 0x83
> install (hd0)
Error 1: Filename must be either an absolute pathname or blocklist
-
alv
- Бывший модератор
- Сообщения: 7275
- Статус: Пенсионер в законе
- ОС: Cintu
Re: Grub для новичка
Раз уж речь зашла о принципах работы, то они таковы:
1) изагружаете через GRUB то, что надо в интерактивном режиме - у него есть нечто вроде собственного шелла, в котором работает автодополнение, так что рано или поздно перебором вариантов Вы этого добъетесь;
2) записываете или запоминаете, как именно Вы это загрузили;
3) в соответствие с этим редактируете конфиг GRUB'а;
PS переустанавливать GRUB после изменения конфига не нужно (и может быть даже вредно
)
1) изагружаете через GRUB то, что надо в интерактивном режиме - у него есть нечто вроде собственного шелла, в котором работает автодополнение, так что рано или поздно перебором вариантов Вы этого добъетесь;
2) записываете или запоминаете, как именно Вы это загрузили;
3) в соответствие с этим редактируете конфиг GRUB'а;
PS переустанавливать GRUB после изменения конфига не нужно (и может быть даже вредно
-
zl3p
- Сообщения: 206
- Статус: с диагнозом
- ОС: операционная клинической
Re: Grub для новичка
проблема лишь в том, что у меня не отображается меню выбора ОС, а каждый раз вводить параметры ядра...
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Grub для новичка
zl3p,
вот это
правильность указания дисков/путей/файлов можно проверить командой find ( http://www.gnu.org/software/grub/manual/ht.../find.html#find ).
согласно http://www.gnu.org/software/grub/manual/ht...ll.html#install этого явно недостаточно.
вот это
ближе к телу.
правильность указания дисков/путей/файлов можно проверить командой find ( http://www.gnu.org/software/grub/manual/ht.../find.html#find ).
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
sergio
- Сообщения: 436
- Статус: Интересующийся новичок
- ОС: Debian GNU/Linux 4 & 5
Re: Grub для новичка
вместо красивого меню с выбором ОС, при загрузке у меня появилась лишь надпись: "grub>"
Надо догадываться, Груб не подобрал свое меню. В силу чего-то.
Но начнем вот откуда:
3. Почему винчестер hdb, когда он подключен всего один, в грабе нумеруется как hd0, а не hdb1? Дело в том, что винт hda я часто отключаю. Не факт, конечно, но возможно, это может вызвать некоторые проблемы с загрузкой.
Это может вызвать проблемы не только с загрузкой, но и с остальным.
Груб использует порядок дисков от биоса - если "первого" нет, то естественно первым останется тот, который остался.
Соответственно, аналогично изменятся и все /dev/hdXX в линуксах. Наверное это можно объехать через управление devfs с новой нотацией /interface_type/bus/device/чего-то-еще, но тут я пас. Но это только линукс, к Грубу это не относится.
-->> вывод: переставить диски так, чтобы тот, что снимается, был последним по порядку в биос.
> root (hd0, 13)
Filesystem type is ext2fs,partition type 0x83
> install (hd0)
Error 1: Filename must be either an absolute pathname or blocklist
setup (hd0), если не ошибаюсь (?)
Но как уже сказали, это здесь не было нужно делать, только править меню. И поставить диски в биос в нормальном порядке, чтобы они не прыгали...
[UPD]
Мда, если поставите диски в нормальном порядке в биос, то ессесно придется править меню груба под новый порядок, и грузиться Single-ом во все линуксы править fstab...
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
-
zl3p
- Сообщения: 206
- Статус: с диагнозом
- ОС: операционная клинической
Re: Grub для новичка
Ура, свою проблему с МЕНЮ я решил! Причина была в том, что в пути к файлу меню я умудрился каким-то образом вставить лишний пробел.
Grub - штука действительно мощная. Хотя, скорое всего, я буду продолжать пользоваться Lilo, т.к. сегодня же научился с её помощью загружать и suse. До сих пор я просто-напросто не обращал внимания на пункт initrd в конфигах лило(!), и, как следствие, не мог загрузить другие ОС.
Grub - штука действительно мощная. Хотя, скорое всего, я буду продолжать пользоваться Lilo, т.к. сегодня же научился с её помощью загружать и suse. До сих пор я просто-напросто не обращал внимания на пункт initrd в конфигах лило(!), и, как следствие, не мог загрузить другие ОС.