Kotiara
Постоялец
Offline
|
|
« : 20-11-2009 20:41 » |
|
Я переустановил Windows, и он, естественно, снёс загрузчик linux-а. Пытался восстановить, но то ли я что-то делаю неправильно, то ли это у меня в книге недостаточно полно описан процесс, но то, что ничего не вышло - это факт. Обьясните, пожалуйста, как это делается. Пытался восстановится с LiveCD Mandriva 2008.
|
|
« Последнее редактирование: 21-11-2009 06:38 от Sel »
|
Записан
|
|
|
|
RXL
|
|
« Ответ #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
Постоялец
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
|
|
« Ответ #3 : 20-11-2009 21:30 » |
|
Kotiara, да, в примере я ошибся.
Если после загрузки с LiveCD в корень монтируется твой корневой раздел на винте, то этот параметр не нужен. Если грузиться в каком-нибудь rescue-подобном режиме, когда корнем монтируется рам-диск или образ на CD, а раздел винта монтируется в директорию, то нужно в этом параметре указать точку монтирования "спасаемого" раздела. Еще полезно перед этим проверить, что смонтирован он в RW-режиме и перемонтировать если нет: mount -w -o remount /dev/... /dir
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
RXL
|
|
« Ответ #4 : 20-11-2009 21:33 » |
|
И ещо мне в книге саветуют предварительно помемять корневую файловую систему chroot на файловку уже установленного linux
Или так. Тогда --root-directory указывать не надо.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Kotiara
Постоялец
Offline
|
|
« Ответ #5 : 20-11-2009 21:42 » |
|
получил такой ответ The file /media/hd5//boot/grub/stage1 not read correctly
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #6 : 20-11-2009 21:55 » |
|
Kotiara,
1. корневой раздел у тебя смонтировался в /media/hd5 ?
2. /boot у тебя часом не выделен в отдельный раздел?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Kotiara
Постоялец
Offline
|
|
« Ответ #7 : 20-11-2009 22:10 » |
|
да корневой раздел у меня смонтирован в /media/hd5 и нет /boot не другой раздел а просто папка и файл stage1 я там нашол какойто бинарник.
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #8 : 20-11-2009 22:31 » |
|
1. Запускаешь так?
grub-install --root-directory=/media/hd5 hd5
2. Раздел смонтирован в /media/hd5 в режиме read-write или read only?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Kotiara
Постоялец
Offline
|
|
« Ответ #9 : 20-11-2009 22:39 » |
|
запускаю так grub-install --root-directory=/media/hd5 hd0 как проверить ружим доступа чез консоль не знаю но в графической оболочке read only не отмечен и ещо как можно через консоль узнать имена разделов?
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #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
Постоялец
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
|
|
« Ответ #12 : 20-11-2009 23:14 » |
|
grub.conf может называться menu.lst
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Kotiara
Постоялец
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
|
|
« Ответ #14 : 20-11-2009 23:26 » |
|
Попробуй так:
mount -w -o remount /dev/sdb8 /media/hd5 chroot /media/hd5 /bin/bash grub-install hd0
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Kotiara
Постоялец
Offline
|
|
« Ответ #15 : 20-11-2009 23:30 » |
|
Вообще-то, через графическую примочку раздел отображается как sda9, а не sdb8. В связи с этим вопрос: нельзя ли через консоль получить список разделов?
|
|
« Последнее редактирование: 21-11-2009 06:43 от Sel »
|
Записан
|
|
|
|
RXL
|
|
« Ответ #16 : 20-11-2009 23:35 » |
|
Если не уверен - проверяй.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Kotiara
Постоялец
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
|
|
« Ответ #18 : 20-11-2009 23:45 » |
|
После mount проверь на возможность писать: touch /media/hd5/test-file
Еще проверь, можно ли писать в /tmp
|
|
« Последнее редактирование: 20-11-2009 23:49 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Kotiara
Постоялец
Offline
|
|
« Ответ #19 : 20-11-2009 23:47 » |
|
проверил корень моего линукса открыт и на чтение и на запись но только под рутом. но консоль у меня точно под root правами открыта в /tmp писать можно
|
|
« Последнее редактирование: 20-11-2009 23:52 от Kotiara »
|
Записан
|
|
|
|
|
Kotiara
Постоялец
Offline
|
|
« Ответ #21 : 20-11-2009 23:55 » |
|
не совсем понял а зачем так глубоко лезть chroot /media/hd5 /bin/bash просто chroot /media/hd5 не достаточно?
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #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
Постоялец
Offline
|
|
« Ответ #23 : 21-11-2009 00:07 » |
|
нельза сменить корневой коталог на /bin/bash так как таковой каталогом не является (это не я сказал а система после выполнения соответствующей команды перед этим выполнил chroot /media/hd5)
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #24 : 21-11-2009 00:14 » |
|
Kotiara, еще раз для невнимательных: chroot /media/hd5 /bin/bash Где тут "корневой каталог" /bin/bash? Т.ч. ты придумываешь себе сложности. Специально для тебя привел выше выдержку из мана.
Короче, если сделал chroot, выполни grub-install.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Kotiara
Постоялец
Offline
|
|
« Ответ #25 : 21-11-2009 00:23 » |
|
выполнил но ничего хорошего не получил по английски переписывать мне немного затруднительно а в приблизительном переводе говорит следующее: необходимо задать root каталог комондой --root-directory так как /boot/grub несуществует в root устройстве, немогу найти устройство для /boot
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #26 : 21-11-2009 00:29 » |
|
Логика говорит, сто chroot ты не сделал, либо он завершился с ошибкой.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Kotiara
Постоялец
Offline
|
|
« Ответ #27 : 21-11-2009 00:34 » |
|
Да нет , chroot я выполнил , и если отсутствие вывода означает успешность , то завершился он без ошибки. Это обычный вывод , который я в ижу при попытке во сстановить grub с liveCD или из режима во сстановления с установочного диска .Кстати , не знаю , имеет ли значение , но после выполнения команды chroot у меня изменилось приглашение командной строки , теперь оно такое bash-3.2# Ладно , в любом случае , спасибо за помощ ь, но меня это уже здорово утомило , я уже два дня этой фигнёй маюсь , проще , неверное , будет переустановить . Linux
|
|
« Последнее редактирование: 21-11-2009 06:46 от Sel »
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
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
Постоялец
Offline
|
|
« Ответ #29 : 29-11-2009 03:21 » |
|
Finch эксперементальным путём выяснил , что на моём д истриб утиве Mandriva2008.1 (на других не проверял) адекватно работает только приведённый тобой метод . Обкатывал на VMware , а на настольнике пришлось переустанавливать RXL, похоже , что команда grub-install с моим д исриб утивом вообще никогда кор ректно не отработывает, та к что зря я тебе голову морочил
|
|
« Последнее редактирование: 29-11-2009 07:29 от Sel »
|
Записан
|
|
|
|
|