Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Восстановить загрузчик GRUB  (Прочитано 31818 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Kotiara
Постоялец

ua
Offline Offline

« : 20-11-2009 20:41 » 

Я переустановил Windows, и он, естественно, снёс загрузчик linux-а. Пытался восстановить, но то ли я что-то делаю неправильно, то ли это у меня в книге недостаточно полно описан процесс, но то, что ничего не вышло - это факт. Обьясните, пожалуйста, как это делается. Пытался восстановится с LiveCD Mandriva 2008.
« Последнее редактирование: 21-11-2009 06:38 от Sel » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 20-11-2009 20:50 » 

Команда grub-install. Это скрипт, штатно идущий в комплекте с grub и упрощающий процесс установки.

Цитата
NAME
       grub-install - install GRUB on your drive

SYNOPSIS
       grub-install [OPTION] install_device

DESCRIPTION
       Install GRUB on your drive.

       -h, --help
              print this message and exit

       -v, --version
              print the version information and exit

       --root-directory=DIR
              install GRUB images under the directory DIR instead of the root directory

       --grub-shell=FILE
              use FILE as the grub shell

       --no-floppy
              do not probe any floppy drive

       --force-lba
              force GRUB to use LBA mode even for a buggy BIOS

       --recheck
              probe a device map even if it already exists

              This option is unreliable and its use is strongly discouraged.

       INSTALL_DEVICE can be a GRUB device name or a system device filename.

       grub-install  copies  GRUB  images  into the DIR/boot directory specfied by --root-directory, and uses the grub
       shell to install grub into the boot sector.

Например: grub-install --root-directory=/boot/grub hd0

Мапирование hd на физическое устройство в трактовке Linux см. в файле /boot/grub/device.map
« Последнее редактирование: 20-11-2009 20:57 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Kotiara
Постоялец

ua
Offline Offline

« Ответ #2 : 20-11-2009 21:05 » 

Обязательно ли указывать --root-directory=/boot/grub? Насколько я понял из справки, grub будет установлен в dir/boot/,  если --root-directory=dir, но такая папка уже существует в корневой файловой системе? И ещё, как указать раздел? У меня Linux стоит на 6-м разделе диска и, насколько, я понимаю, grub устанавливается в корневую файловую систему линукса /boot/grub/ .  Кстати, загрузился сейчас с LiveCD, у меня нету файла /boot/grub/device.map.

И ещё, мне в книге саветуют предварительно помемять корневую файловую систему chroot на файловку уже установленного linux.
« Последнее редактирование: 21-11-2009 06:40 от Sel » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 20-11-2009 21:30 » 

Kotiara, да, в примере я ошибся.

Если после загрузки с LiveCD в корень монтируется твой корневой раздел на винте, то этот параметр не нужен.
Если грузиться в каком-нибудь rescue-подобном режиме, когда корнем монтируется рам-диск или образ на CD, а раздел винта монтируется в директорию, то нужно в этом параметре указать точку монтирования "спасаемого" раздела. Еще полезно перед этим проверить, что смонтирован он в RW-режиме и перемонтировать если нет: mount -w -o remount /dev/... /dir
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 20-11-2009 21:33 » 

И ещо мне в книге саветуют предварительно помемять корневую файловую систему chroot на файловку уже установленного linux

Или так. Тогда --root-directory указывать не надо.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Kotiara
Постоялец

ua
Offline Offline

« Ответ #5 : 20-11-2009 21:42 » 

получил такой ответ The file /media/hd5//boot/grub/stage1 not read correctly
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 20-11-2009 21:55 » 

Kotiara,

1. корневой раздел у тебя смонтировался в /media/hd5 ?

2. /boot у тебя часом не выделен в отдельный раздел?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Kotiara
Постоялец

ua
Offline Offline

« Ответ #7 : 20-11-2009 22:10 » 

да корневой раздел у меня смонтирован в /media/hd5 и нет /boot  не другой раздел а просто папка
и файл stage1 я там нашол какойто бинарник.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 20-11-2009 22:31 » 

1. Запускаешь так?

grub-install --root-directory=/media/hd5 hd5

2. Раздел смонтирован в /media/hd5 в режиме read-write или read only?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Kotiara
Постоялец

ua
Offline Offline

« Ответ #9 : 20-11-2009 22:39 » 

запускаю так grub-install --root-directory=/media/hd5 hd0
как проверить ружим доступа чез консоль не знаю но в графической оболочке read only не отмечен и ещо как можно через консоль узнать имена разделов?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 20-11-2009 22:48 » 

Проверить просто: создать файл.

touch /media/hd5/test-file


Покажи файлы:

1. /media/hd5/boot/grub/device.map
2. /media/hd5/boot/grub/grub.conf
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Kotiara
Постоялец

ua
Offline Offline

« Ответ #11 : 20-11-2009 22:56 » 

в контекстном меню нет опции создать так что наверное только чтение
файл  /media/hd5/boot/grub/device.map
(hd0) /dev/sdb
(hd1) /dev/sda
файла /media/hd5/boot/grub/grub.conf  нету
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 20-11-2009 23:14 » 

grub.conf может называться menu.lst
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Kotiara
Постоялец

ua
Offline Offline

« Ответ #13 : 20-11-2009 23:18 » 

есть такой
timeout 10
color black/cyan yellow/cyan
gfxmenu (hd0,8)/boot/gfxmenu
default 4

title linux-nonfb
kernel (hd0,8)/boot/vmlinuz-2.6.25.17-1mdvsmp BOOT_IMAGE=linux-nonfb root=UUID=a9260693-2179-4278-9d73-2ab492547d1d resume=/dev/sdb8
initrd (hd0,8)/boot/initrd.img

title failsafe
kernel (hd0,8)/boot/vmlinuz-2.6.25.17-1mdvsmp BOOT_IMAGE=failsafe root=UUID=a9260693-2179-4278-9d73-2ab492547d1d failsafe
initrd (hd0,8)/boot/initrd.img

title windows
root (hd1,0)
map (0x81) (0x80)
map (0x80) (0x81)
makeactive
chainloader +1

title windows1
root (hd0,0)
makeactive
chainloader +1

title smp 2.6.25.17-1
kernel (hd0,8)/boot/vmlinuz-2.6.25.17-1mdvsmp BOOT_IMAGE=smp_2.6.25.17-1 root=UUID=a9260693-2179-4278-9d73-2ab492547d1d resume=/dev/sdb8 splash=silent vga=788
initrd (hd0,8)/boot/initrd-2.6.25.17-1mdvsmp.img
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 20-11-2009 23:26 » 

Попробуй так:

mount -w -o remount /dev/sdb8 /media/hd5
chroot /media/hd5 /bin/bash
grub-install hd0
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Kotiara
Постоялец

ua
Offline Offline

« Ответ #15 : 20-11-2009 23:30 » 

Вообще-то, через графическую примочку раздел отображается как sda9, а не sdb8.
В связи с этим вопрос: нельзя ли через консоль получить список разделов?
« Последнее редактирование: 21-11-2009 06:43 от Sel » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #16 : 20-11-2009 23:35 » 

Если не уверен - проверяй.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Kotiara
Постоялец

ua
Offline Offline

« Ответ #17 : 20-11-2009 23:42 » 

если после выполения команды mount -o rw /dev/sda9 /media/hd5 небыло никакого вывода это значит что она полностью отработала?
на попытку grub-install попрежнему отвечает The file /media/hd5//boot/grub/stage1 not read correctly
« Последнее редактирование: 20-11-2009 23:44 от Kotiara » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #18 : 20-11-2009 23:45 » 

После mount проверь на возможность писать: touch /media/hd5/test-file

Еще проверь, можно ли писать в /tmp
« Последнее редактирование: 20-11-2009 23:49 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Kotiara
Постоялец

ua
Offline Offline

« Ответ #19 : 20-11-2009 23:47 » 

проверил корень моего линукса открыт и на чтение и на запись но только под рутом.
но консоль у меня точно под root правами открыта
в /tmp писать можно
« Последнее редактирование: 20-11-2009 23:52 от Kotiara » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #20 : 20-11-2009 23:50 » 

Под кем ты еще будешь восстанавливать то?!

В общем, сдается мне, что ты меня не читаешь...
Выполни chroot и grub-install
https://forum.shelek.ru/index.php/topic,22539.msg218997.html#msg218997
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Kotiara
Постоялец

ua
Offline Offline

« Ответ #21 : 20-11-2009 23:55 » 

не совсем понял а зачем так глубоко лезть chroot /media/hd5 /bin/bash
просто chroot /media/hd5 не достаточно?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #22 : 20-11-2009 23:59 » 

Kotiara, тебе нужен совет или поговорить?

Цитата
NAME
       chroot - run command or interactive shell with special root directory

SYNOPSIS
       chroot NEWROOT [COMMAND...]
       chroot OPTION

DESCRIPTION
       Run COMMAND with root directory set to NEWROOT.

       --help display this help and exit

       --version
              output version information and exit

       If no command is given, run ‘‘${SHELL} -i’’ (default: /bin/sh).
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Kotiara
Постоялец

ua
Offline Offline

« Ответ #23 : 21-11-2009 00:07 » 

нельза сменить корневой коталог на /bin/bash так как таковой каталогом не является (это не я сказал а система после выполнения соответствующей команды перед этим выполнил chroot /media/hd5)
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #24 : 21-11-2009 00:14 » 

Kotiara, еще раз для невнимательных: chroot /media/hd5 /bin/bash
Где тут "корневой каталог" /bin/bash? Т.ч. ты придумываешь себе сложности. Специально для тебя привел выше выдержку из мана.

Короче, если сделал chroot, выполни grub-install.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Kotiara
Постоялец

ua
Offline Offline

« Ответ #25 : 21-11-2009 00:23 » 

выполнил но ничего хорошего не получил по английски переписывать мне немного затруднительно а в приблизительном переводе говорит следующее: необходимо задать root каталог  комондой --root-directory так как /boot/grub несуществует в root устройстве, немогу
найти устройство для /boot
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #26 : 21-11-2009 00:29 » 

Логика говорит, сто chroot ты не сделал, либо он завершился с ошибкой.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Kotiara
Постоялец

ua
Offline Offline

« Ответ #27 : 21-11-2009 00:34 » 

Да нет, chroot я выполнил, и если отсутствие вывода означает успешность, то завершился он без ошибки.
Это обычный вывод, который я вижу при попытке восстановить grub с liveCD или из режима восстановления с установочного диска.

Кстати, не знаю, имеет ли значение, но после выполнения команды chroot у меня изменилось приглашение командной строки, теперь оно такое bash-3.2#

Ладно, в любом случае, спасибо за помощь, но меня это уже здорово утомило, я уже два дня этой фигнёй маюсь, проще, неверное, будет переустановить.
Курилка Linux
« Последнее редактирование: 21-11-2009 06:46 от Sel » Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #28 : 21-11-2009 05:44 » 

Я в свое время и в подобной ситуации применял намного проше метод.
Preserving Windows Bootloader

This method allows you to restore GRUB and keep the Windows bootloader as your primary bootloader. Thanks to Ubuntu's support for NTFS writing this method is now quite simple.

The previous method puts GRUB back on the MBR (Master Boot Record) of the hard drive instead of in the root partition. Should you not wish to do so, for instance if you use a third-party boot manager like Boot Magic or System Commander, this next suggestion will be helpful. Another reason to prefer this method is for when restoring the Grub menu after a re-ghosting. In either case, use this alternative.

If you have your Linux system in a second (or third...) hard disk this method will not work. Please check Super Grub Disk's method that address this problem.

Restoring GRUB

1. Boot from a Live CD, like Ubuntu Live, Knoppix, Mepis, or similar. Ideally use Ubuntu 8.04 or higher as this has NTFS write support and makes life a bit easier. Note that this isn't necessary, just more convenient.

2. Open a Terminal. Open a root terminal (For non-Ubuntu live CDs type "su" the terminal. For Ubuntu based distros run "sudo -i".) Enter root passwords as necessary.

3. Type "grub" which makes a GRUB prompt appear.

4. Type "find /boot/grub/stage1". You'll get a response like "(hd0)" or in my case "(hd0,3)". Use the output from this command for the following commands.

Note:

You should have mounted the partition which has your Linux system before typing this command. (e.g. In Knoppix Live CD partitions are shown on the desktop but they're not mounted until you double-click on them or mount them manually)

5. Type "root (hd0,3)" note the space between root and (hd0,3).

6. Type "setup (hd0,3)". This is key. Other instructions say to use "(hd0)", and that's fine if you want to write GRUB to the MBR. If you want to write it to your Linux root partition, then you want the number after the comma, such as "(hd0,3)".

7. Type "quit".
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Kotiara
Постоялец

ua
Offline Offline

« Ответ #29 : 29-11-2009 03:21 » new

Finch эксперементальным путём выяснил, что на моём дистрибутиве Mandriva2008.1 (на других не проверял) адекватно работает только приведённый тобой метод. Обкатывал на VMware, а на настольнике пришлось переустанавливать Жаль
RXL, похоже, что команда grub-install с моим дисрибутивом вообще никогда корректно не отработывает, так что зря я тебе голову морочил  Улыбаюсь
« Последнее редактирование: 29-11-2009 07:29 от Sel » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines