LinuxForum.Fans
Тема

терминал не видит GRUB

Автор: Endym 19 сообщений 6785 просмотров
#170460

Тут http://doca.plesser.ru/translate/linux_xp/ на каком-то шаге нужно написать в терминале под LiveCD 'sudo grub', чтобы получить доступ к нему, но терминал говорит 'sudo: grub: command not found'. Почему? GRUB на LiveCD установлен, проверял в центре приложений Ubuntu.
...Переустановил grub, теперь при этой команде появляется то, что должно ( [ Minimal BASH-like line ... ] ), но при команде find /boot/grub/stage1 или root (sd0,0) (у меня не hd а sd) он говорит 'Error 15 : File not found'. В чем же дело?

#170467
Endym написал:
(у меня не hd а sd) он говорит 'Error 15 : File not found'. В чем же дело?

Для Grub'а это как раз hd0.

#170468

У Вас /boot смонтирован? покажите cat /etc/fstab и mount -l. И, скорее всего, у Вас все таки hd, а не sd smile

#170470

Некоторые пояснения к нумерации дисков в Grub

Нюанс с нумерацией дисков и разделов

В grub2 имеется еще одно важное отличие от старого grub. Связано оно с нумерацией жестких дисков и их разделов. В grub нумерация физических дисков и нумерация разделов начинались одинаково - с нуля. Первый физический диск (sda в системе) обозначался "hd0", второй (sdb) - "hd1", и так далее. Это же осталось и в grub2. нумерация же разделов диска изменилась. Если в grub первый раздел первого диска (sda1) именовался "hd0,0", четвертый (sda4) - "hd0,3", то теперь, в grub2, цифра раздела соответствует цифре раздела в системе. То есть, sda1 теперь будет "hd0,1" (а не "hd0,0"), sdb4 - "hd1,4". Проще говоря, нумерация дисков идет с нуля, а нумерация разделов - с единицы!
#170471

дополню:

Endym написал:
Тут http://doca.plesser.ru/translate/linux_xp/ на каком-то шаге нужно написать в терминале под LiveCD 'sudo grub', чтобы получить доступ к нему, но терминал говорит 'sudo: grub: command not found'. Почему? GRUB на LiveCD установлен, проверял в центре приложений Ubuntu.

если бубунта относительно новая, то там grub2 - это уже абсолютно другой загрузчик... поэтому так и не получалось

#170477

Но почему он не может выполнить команду 'find /boot/grub/stage1' ? boot не смонтирован.

text
grub> find /boot/grub/stage1

Error 15: File not found

grub> root (hd0,0)

grub> setup (hd0) Checking if "/boot/grub/stage1" exists... no Checking if "/grub/stage1" exists... no

Error 15: File not found

Я так понял, что у меня другая версия GRUB'a. Какой процесс будет аналогичен тому, что описан на сайте?
PS И еще. Я порылся в директории Linux'a, зашел в /boot/grub, но там нет файла menu.lst. A терминал при попытке использовать текстовый редактор (gedit) пишет 'error segmenting, core dumped'. Одни проблемы вокруг. ))

#170479

Endym, http://ru.wikibooks.org/wiki/Grub_2
Собственно изложи что надо? Восстановить grub?
ы. Сразу выложи вывод fdisk -l

#170481

У меня 2 логических раздела на жестком диске, на одном Linux, на другой установил Win XP. Мне нужно, чтобы при включении был выбор ОС, поэтому пытаюсь поставить GRUB. На том сайте доступно все описано, но там, видимо, другая версия.

#170482
Endym написал:
У меня 2 логических раздела на жестком диске, на одном Linux, на другой установил Win XP. Мне нужно, чтобы при включении был выбор ОС, поэтому пытаюсь поставить GRUB. На том сайте доступно все описано, но там, видимо, другая версия.

Linux сейчас загружается?

#170483

Сейчас я зашел с Linux LiveCD (Ubuntu), чтобы была возможность редактировать Boot menu, но пока не получается.
ps 'fdisk -l /dev/' сказал 'last_lba(): I don't know how to handle files with mode 40755'. Я не уверен, что я правильно написал эту команду )

#170484

Endym, не надо никакое меню редактировать, в grub2 давно уже этого нет, есть команда update-grub, после выполнения оной найдутся все операционные системы в т.ч. ядра и пропишутся меню (должен стоять пакет os-prober).
Для установки grub вам нужно пользоваться grub-install и chroot, либо grub-install --root-directory
Дальше я попросил сделать fdisk -l, естественно от суперпользователя вы что сделали я не знаю, ещё раз:
В терминале вот это:

text
sudo fdisk -l

если с live доступа к сети нет, скопируйте полностью вывод команды в файл и выложите, а то околесица.

#170485
text
ubuntu@ubuntu:~$ sudo fdisk -l

Диск /dev/sda: 320.1 ГБ, 320072933376 байт 255 heads, 63 sectors/track, 38913 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00044002

Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 1 14427 115881984 83 Linux /dev/sda2 14427 37767 187473920 7 HPFS/NTFS /dev/sda3 37767 38914 9212929 5 Расширенный /dev/sda5 37767 38914 9212928 82 Linux своп / Solaris

Диск /dev/sdb: 4063 МБ, 4063232000 байт 255 heads, 63 sectors/track, 493 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xcad4ebea

Устр-во Загр Начало Конец Блоки Id Система /dev/sdb4 * 1 494 3967968+ 7 HPFS/NTFS Раздел 4 имеет различные физические/логические окончания: физ=(492, 254, 63) логич=(493, 253, 16)

Диск /dev/sdc: 1967 МБ, 1967128576 байт 57 heads, 56 sectors/track, 1203 cylinders Units = цилиндры of 3192 * 512 = 1634304 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000

Устр-во Загр Начало Конец Блоки Id Система /dev/sdc1 1 1204 1920955+ 6 FAT16 ubuntu@ubuntu:~$

На этот раз сработало. Попробовал команду update-grub, отказал в доступе, затем предложил сгенерировать файл menu.lst и снова отказал в доступе, причем пароль не спрашивал. Попробую загрузиться с установленного и ввести эту команду...

#170486

После загрузки с диска необходимо получить доступ к командной строке, в любом терминале.
Дальше подключаем раздел в котором находится корневая файловая система. Предположим, что она находится в разделе /dev/sda1.

text
$ sudo mount /dev/sda1 /mnt

Chroot подменяет корневую директорию у запускаемой программы.
Устанавливаем grub в mbr первого диска (/dev/sda):

text
$ sudo chroot /mnt grub-install /dev/sda

На всякий случай:

text
$ sudo chroot /mnt update-grub

Либо просто чрутимся в свой примонтированный корень

text
$ sudo chroot /mnt

и делаем всё что надо.

#170506
Endym написал:
пытаюсь поставить GRUB

По инструкции этой найдёшь просветление! И главное не ленитесь читать, тут действительно всё есть!
пиуууу!

#170523

Я посмотрел, у меня таки стоит GRand Unified Bootloader, version 2 (PC/BIOS version). Но при вводе команды

text
$ sudo chroot /mnt grub-install /dev/sda

он говорит

text
ubuntu@ubuntu:~$ sudo mount /dev/sda1 /mnt
ubuntu@ubuntu:~$ sudo chroot /mnt grub-install /dev/sda
/usr/sbin/grub-probe: ошибка: cannot find a device for /boot/grub (is /dev mounted?).

Хотя там видно, что я ввел команду смонтировать.

Короче, покопался в Викиучебнике, нашел там место "Восстановление GRUB2 c LiveCD", кажется, это то, что мне нужно. Тем не менее, опять столкнулся с проблемой:

text
ubuntu@ubuntu:~$ sudo mount --bind /dev /mnt/dev
ubuntu@ubuntu:~$ sudo mount --bind /proc /mnt/proc
ubuntu@ubuntu:~$ sudo chroot /mnt
root@ubuntu:/# sudo fdisk -l
sudo: unable to resolve host ubuntu

Диск /dev/sda: 320.1 ГБ, 320072933376 байт 255 heads, 63 sectors/track, 38913 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00044002

Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 1 14427 115881984 83 Linux /dev/sda2 14427 37767 187473920 7 HPFS/NTFS /dev/sda3 37767 38914 9212929 5 Расширенный /dev/sda5 37767 38914 9212928 82 Linux своп / Solaris root@ubuntu:/# grub-install /dev/sda1 /usr/sbin/grub-setup: предупреждение: Попытка установить GRUB на неразмеченный диск или на раздел. Это плохая идея.. /usr/sbin/grub-setup: предупреждение: Встраивание невозможно. GRUB в данном случае только может быть установленным с помощью блокировок. Тем не менее, блокировки НЕНАДЁЖНЫ и их использование не рекоммендуется.. /usr/sbin/grub-setup: ошибка: will not proceed with blocklists. root@ubuntu:/#

Ну вот какого черта ему не нравится?)) Что еще за blocklists. Почему он говорит "Попытка установки на неразмеченный диск или раздел", хотя там ясно написано, что стоит Линукс? А /dev/sda2 вообще определился просто как NTFS, хотя там стоит WinXP (или так и должно быть?).
В GParted с обоих разделов снял флажки Boot, все равно не хочет выполняться.

#170524

Так, понял ошибку, я пытался установить на раздел, а не в корень sda.

text
root@ubuntu:/# grub-install /dev/sda
/usr/sbin/grub-setup: предупреждение: Sector 32 is already in use by FlexNet; avoiding it.  This software may cause boot or other problems in future.  Please ask its authors not to store data in the boot track.
Installation finished. No error reported.

Дальше просто по-написанному:

text
root@ubuntu:/# exit
exit
ubuntu@ubuntu:~$ sudo umount /mnt/dev
ubuntu@ubuntu:~$ sudo umount /mnt/proc
ubuntu@ubuntu:~$ sudo umount /mnt
ubuntu@ubuntu:~$ exit

Сейчас сделаю перезагрузку с жд на 1 месте и посмотрю, что будет.

#170528

durc:
Да, именно тем первым способом "легче не бывает" я все и сделал. После перезагрузки обновил grub -

text
endymion@endymion-CQ61:~$ sudo update-grub
[sudo] password for endymion: 
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.38-8-generic
Found initrd image: /boot/initrd.img-2.6.38-8-generic
Found linux image: /boot/vmlinuz-2.6.35-22-generic
Found initrd image: /boot/initrd.img-2.6.35-22-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Microsoft Windows XP Professional on /dev/sda2
done
endymion@endymion-CQ61:~$

Еще вопрос, при включении компьютера он будет логинить меня прямо в Линукс или даст время выбрать ос? В /etc/default/grub параметр timeout установлен, конечно, на 10 секунд, но я не уверен, сделал ли я все правильно :D

#170560
Endym написал:
В /etc/default/grub параметр timeout установлен, конечно, на 10 секунд, но я не уверен, сделал ли я все правильно :D

Если есть сомнения смотрите файл /boot/grub/grub.cfg строку
set timeout=

Войдите или зарегистрируйтесь, чтобы ответить.