- Howto Boot Grub from windows
- Contents
- Other titles for this same problem.
- Advice
- Neogrub lazy solution
- Classical solution
- Advanced solution
- Problematic solution
- GRUB solution (on its own)
- GRUB solution (Linux shell)
- GRUB2 solution (on its own)
- GRUB2 solution (Linux shell)
- Common Final Solution
- Windows Vista (with easybcd help)
- Classical Final Solution
- Windows XP/Windows 2000/NT/Windows
- Windows Vista (manually)
- Rescatux
- Tecnical explanation
- One thing you should know
- Не загружается Linux, чиним загрузчик GRUB
- Что такое Grub
- От чего могут возникнуть проблемы
- Восстановление Grub с помощью LiveCD/USB
- Как создать LiveCD/USB
- С помощью Rufus:
- С помощью Etcher:
- Восстановление с помощью chroot
- Восстановление Grub в rescue mode
Howto Boot Grub from windows
How do I chainload GRUB from Windows boot.ini
Contents
Other titles for this same problem.
- GRUB is a great but I prefer not to install it on my mbr.
- How do I chainload GRUB from Windows Vista
- I have Linux in my second hard disk and I follow other howto instructions but I cannot get it to be chainloaded from Windows.
- Is there a safe way to access Linux on the external drive and have xp on the internal drive while being able to disconnect the external drive from pc at any time? ([b]You should run Fix Boot of Windows[/b] for your internal hard disk before these steps.)
Advice
adrian15 advice for this kind of task is #Classical solution
Neogrub lazy solution
TODO: Talk about Neogrub that it is included with EasyBCD I think.
Classical solution
- Super Grub Disk (WITH HELP) :-)))
- English Super Grub Disk
- Windows
- Windows (Advanced)
- Windows chainloads Grub!
- Select the partition where GRUB it is found (i.e. stage1 is found).
Please continue reading at: Common Final Solution
Advanced solution
SITUATION WHEN GRUB FILES AND BOOT SECTOR ARE NOT THE SAME PARTITION
Problematic solution
GRUB solution (on its own)
This method is only valid when you want to boot a Linux partition that it is found in the same hard disk as the windows one (i.e. the first hard disk).
This installs Stage1 of Grub to the first sector of partition containing the Grub folder. To get started we need to identify the partition containing the Grub folder. (Usually the same as the Linux partition) Say it is (hd0,3) (Usually, but not always, identified in Linux as: /dev/sda4).
Boot with your grub disk or with your already installed grub.
At the grub> prompt type:
- root (hd0,3)
- setup (hd0,3)
- quit #(With Linux working)
- reboot #(From grub disk)
Please continue reading at: Common Final Solution
GRUB solution (Linux shell)
This installs Stage1 of Grub to the first sector of partition containing the Grub folder. We will use the «device» function of the grub-shell to ensure that Grub uses the correct map between the bios drives and linux devices, and also to ensure that Grub uses the hard drive numbers.
To get started we need to identify the partition containing the Grub folder. (Usually the same as the Linux partition) Say it is (hd2,3) and /dev/sdb4. (The (hd2,3) must be how grub sees the partition during boot-up)
Open a terminal in Linux and type
and at the «grub>»prompt
- device (hd2) /dev/sdb
- device (hd0) /dev/sdb
- root (hd2,3)
- setup (hd0,3)
- quit
Please continue reading at: Common Final Solution
GRUB2 solution (on its own)
As long as I know GRUB2 cannot install itself on its own.
GRUB2 solution (Linux shell)
This installs first part of Grub2 to the first sector of partition containing the Grub folder.
Let’s suppose that you know that your Linux partition is /dev/sda3
What you need to to is run:
Open a terminal in Linux and type
- su #(use sudo -i in Ubuntu)
- grub-install —force /dev/sda3
Please continue reading at: Common Final Solution
Common Final Solution
As a final solution we need somehow Windows to chainload our Linux partition. If we use easybcd we can avoid having to copy a file from a live cd to our Windows partition and setting up the boot. If we are geeks and classical we will have to edit boot.ini or the new Vista file manually in order to make things work.
Windows Vista (with easybcd help)
- Download and run EasyBCD 1.7.2(or any version i think)
- If program ask for boot drive just select your windows partion
- Choose Add/remove Entries
- At «Add an Entry» select «Linux»
- Change Type to «Linux»
- Enter Name box with any name u want
- At Drive Select Your Ubuntu Partion
- Click «Add Entry»
- Click «Save»
- Restart, you have done ^ ^
Classical Final Solution
Once grub has been installed to a partition we need to get its boot sector to a file in order to boot it from Windows.
Let’s boot with a live cd and open a terminal.
In this example the identified grub partition is sda3.
In this example: Pendrive mount point is: /media/disk
From a terminal (Aplications -> System -> Terminal) please run:
(When prompted enter your current user password or your root password in non-sudo systems such as Debian. If you do not know how to type | symbol please only type sudo -i)
- dd if=/dev/sda3 of=/media/disk/linux.bin count=1 bs=512
- sync
- Right Click on your pendrive icon in your desktop and click on umount or extract.
Now let’s boot into Windows.
Plug in your pendrive and copy the linux.bin file into c:\ folder.
Windows XP/Windows 2000/NT/Windows
Now let’s edit boot.ini and add this line at its bottom:
Windows Vista (manually)
Now when rebooting if you boot windows you will get a Windows menu with two options: Windows and the new Linux option which will chainload GRUB.
Finally there is an optional step that it is removing grub so that it chainloads Windows menu in the first place automatically at boot.
Rescatux
This feature is not yet available at the Rescapp program. It is available at the Super Grub Disk included with Rescatux. If you want to have this feature at the Rescapp program please complain at the super grub disk mailing list.
Tecnical explanation
One thing you should know
- These methods only restore GRUB successfully if a stage1,stage2 (and optionally a stage1_5 file) is found. If you have deleted these files the GRUB solution (Linux shell) might help although it might be better to reinstall GRUB from a chroot environment got from a live cd.
If your Linux filesystem has errors GRUB might not be able to find its files even if they are there. So sometimes is advised to try to run the:
command as root where DEV is your linux partition device.
will fix the third partition from an scsi or sata first disk (Although it might not actually be the first one).
- OpenSolaris GRUB cannot be restored to a partition which this method. You need to boot Linux and then use the install-grub command. See man install-grub for more info.
If you cannot get to restore grub this way you can always try to boot Linux and then use the Grub Solution (on its own) method or the Grub Solution (Linux shell) method.
Не загружается Linux, чиним загрузчик GRUB
Любите экспериментировать? Наверняка вы когда-либо пытались произвести какие-то действия со своей Linux-системой, причем не так важно какие были цели: изучение и познание новых возможностей или же какая-то более конкретная цель, в виде исправления той или иной ошибки. В любом случае, при работе с дистрибутивами Linux, для загрузки которых, в большинстве случаев, и используется Grub, с последним могут возникать неприятные проблемы, ввиду которых дальнейшая эксплуатация системы просто-напросто невозможна. В этой статье вы узнаете, что делать, если не загружается Linux. Как вести себя в подобной ситуации и какие действия производить, чтобы починить загрузчик Grub. Пожалуй, начнем.
Что такое Grub
Grub (или GRand Unified Bootloader) — загрузчик операционных систем с открытым исходным кодом. Распространяется он под лицензией GNU GPL, в полностью свободном виде. С помощью этого замечательного лоадера можно сделать много всего — основная же функция не ограничивается загрузкой лишь одной операционной системы. Вы можете иметь куда больше операционных систем на своем ПК, загружая любую из них с помощью Grub. На скриншоте выше вы можете видеть как примерно Grub выглядит. Кстати говоря, если вы захотите установить Ubuntu 18.04 рядом с Windows , вам определенно понадобится помощь Grub.
Grub используется в большинстве дистрибутивов Linux в качестве загрузчика по-умолчанию. Разумеется и с ним иногда возникают проблемы. Этим самые проблемы чреваты полным отказом операционной системы. Поэтому для починки Grub нам понадобятся дополнительные инструменты. Какие именно — узнаете далее.
От чего могут возникнуть проблемы
Одна из самых распространенных причин — это неправильный порядок установки двух операционных систем (Linux и Windows). Допустим, если вы захотите установить две этих операционных системы на свой ПК — вам непременно стоит знать правильную последовательность:
- Сначала устанавливаем Windows
- И только потом уже Linux
Если, например, сделать наоборот, то как раз-таки Grub будет поврежден; система будет грузиться напрямую в Windows, а дистрибутив Linux останется недоступным.
Grub может сломаться и по другим причинам. Например, из-за попыток ручного изменения параметров запуска (при недостатке опыта), в таком случае нужно будет либо вручную убирать лишнее, либо полностью переустанавливать Grub.
Восстановление Grub с помощью LiveCD/USB
Для этого способа нам понадобится флешка с дистрибутивом Linux на борту. Подойдет любой: от Ubuntu, Arch или даже Linux Mint. Здесь нужен только терминал, поэтому подойдет даже версия без графической оболочки.
Как создать LiveCD/USB
Само собой, нам понадобится носитель, на который мы временно (а может и нет) запишем систему. Сохраните все важные файлы, которые были на этом носителе, после чего (имеется ввиду на другом ПК, желательно под управлением Windows) запишите загруженный образ дистрибутива на носитель. В качестве примера мы будем использовать дистрибутив Ubuntu.
Идем на официальную страницу загрузки . Загружаем любую понравившуюся версию (лучше взять новейшую для десктопа), после чего записываем ее на USB/CD.
С помощью Rufus:
Последняя версия приложения доступна на официальном сайте . Сразу после загрузки и запуска/установки мы увидим такое окно:
Вставляем носитель, выбираем его в соответствующем меню. Далее выбираем нужную схему раздела и тип системного интерфейса, и после уже открываем файловый менеджер с помощью этой кнопки:
Находим загруженный образ через менеджер, после чего жмем «Старт».
С помощью Etcher:
Опять же, идем на официальный сайт , где скачиваем последнюю версию утилиты. Далее делаем все так, как показано на этой гифке:
Ну а теперь, собственно, можно переходить к восстановлению Grub. Вставляем флешку в наш ПК (где сломан загрузчик), после чего перезагружаем его с этой самой флешки. Как только мы войдем в лайв-систему, сразу открываем терминал, после чего проделываем следующие действия:
Открываем таблицу разделов с помощью команды:
Примерно такая таблица будет выведена на экран:
/dev/sda1 27 7683 66999082+ 83 Linux
/dev/sda2 * 8450 13995 45430855 7 HPFS/NTFS
/dev/sda3 11885 16574 6503497 5 Extended
По этой таблице мы видим, что Linux, в нашем случае, расположен на разделе /dev/sda1.
С помощью следующей команды мы смонтируем этот раздел в /mnt:
sudo mount /dev/sda1 /mnt
Теперь, для записи grub в MBR, нужно ввести следующую команду:
sudo grub-install —root-directory=/mnt /dev/sda
Если нужно только восстановить MBR диска (после переустановки Windows, к примеру), то этих действий будет вполне достаточно.
Если же необходимо обновить и меню grub (после установки Windows), то нужно выполнить еще и эту команду:
sudo update-grub —output=/mnt/boot/grub/grub.cfg
Вот и все, восстановление закончено!
Восстановление с помощью chroot
Помимо вышеописанного способа, при восстановлении Grub с помощью LiveCD можно использовать и этот. Тут мы будем использовать утилиту chroot.
Здесь нам, опять же, понадобится таблица разделов. Вводим уже известную команду:
В выводе снова будет эта таблица. Теперь нам надо присмотреться к ней еще внимательнее.
/dev/sda1 27 7683 66999082+ 83 Linux
/dev/sda2 * 8450 13995 45430855 7 HPFS/NTFS
/dev/sda3 11885 16574 6503497 5 Extended
В этом способе нам необходимо примонтировать системный, а также нескольких других важных разделов. Для этого вводим эти команды:
sudo mount /dev/sda1 /mnt
sudo mount —bind /dev /mnt/dev
sudo mount —bind /proc /mnt/proc
sudo mount —bind /sys /mnt/sys
Обратите внимание , что если если разделы /boot или /var находятся отдельно, то Вам нужно будет примонтировать их в /mnt/boot и /mnt/var.
Далее мы переходим в окружающую среду chroot с помощью команды:
sudo chroot /mnt
И теперь, наконец-таки переустанавливаем Grub с помощью следующей команды:
Если вы на этом этапе получаете какие-то сообщения об ошибках, то попробуйте использовать эти команды:
grub-install —recheck /dev/sda
grub-install —recheck —no-floppy /dev/sda
Если все прошло успешно, выходим из chroot, используя команду:
Далее нужно отмонтировать все разделы. Для этого вводим в терминал:
sudo umount /mnt/dev
sudo umount /mnt/proc
sudo umount /mnt/sys
sudo umount /mnt
В случае, если вы монтировали раздел /boot введите команду:
sudo umount /mnt/boot
Теперь перезагружаем систему с помощью:
Можно также обновить меню Grub, используя команду:
Восстановление Grub в rescue mode
Если по каким-то причинам у вас нет доступа к LiveCD/USB-носителю, а также к компьютеру, с помощью которого этот самый носитель можно было бы сделать, то этот способ для вас.
Само восстановление проходит таким образом: сначала мы подгружаем все модули, чтобы открыть доступ ко всей функциональной части Grub, после чего запуститься с нужного раздела. Надо понимать, что Grub состоит из двух частей:
Одна из этих частей (первая) записана в MBR диска. В ней присутствует базовый функционал и ничего больше (консоль в rescue mode).
Стало быть, нам нужно определить, в каком разделе находится вторая часть Grub (находится в каталоге /boot/grub), и после чего подгрузить все недостающие модули. А вот уже после этого мы сможем запустить загрузчик с нужного раздела. В rescue mode есть всего четыре команды:
Для начала вводим следующую команду:
В выводе будет что-то подобное:
(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1)
В некоторых случаях Grub неправильно опеределяет файловые системы находящиеся на разделах дисков. В данном примере загрузчик показывает их как msdos. Мы должны попытаться угадать диски, которые видим. В примере доступно два диска. Диск с индексом 0 содержащий три раздела, и диск с индексом 1 содержащий два раздела. Если вы знаете структуру своих дисков, определить нужный труда не составит.
В загрузчике Grub разделы нумеруются в обратном исчислении. Не очень ясно какой именно из разделов назван, к примеру (hd0,msdos3). Чтобы было более понятно, можно использовать вид (hd0,1). Если в грабе отсчет дисков идет с 0, а разделов с 1, то можно определить, что операционная система установлена в первый раздел первого раздела — (hd0,1). Используем следующую команду:
set prefix=(hd0,1)/boot/grub
set root=(hd0,1)
С помощью этих команд мы приказываем системе использовать какой-то конкретный диск, для выполнения всех остальных операций (в нашем случае, это диск (hd0,1)). Чтобы проверить есть ли на данном диске загрузчик, введем эту команду:
Если в выводе будет список файлов и папок, значит мы все сделали правильно. Теперь можно загрузить все необходимые модули. Для этого выполним команды:
insmod ext2
insmod normal
normal
После выполнения команд Grub загрузится в полнофункциональном режиме. Будут найдены все операционные системы, которые установлены на компьютере, после чего будет показано стандартное меню загрузки.
Чтобы закрепить результат (и не проделывать все то же самое после перезапуска ПК), нужно зайти в терминал своего дистрибутива Linux, где с root правами выполнить следующую команду:
sdX — диск, на который должен быть установлен Grub.
Если операционная система расположена на разделе с файловой системой btrfs , то нам необходимо выполнить следующие команды:
set prefix=(hd0,1)/@/boot/grub
set root=(hd0,1)