LINUX.ORG.RU

Как установить grub рядом с загрузчиком виндовс?

 , , ,


0

1

Всегда когда я устанавливал линукс grub что-то делал с загрузчиком винды и приходилось его восстанавливать . Можно ли как-то сделать чтобы в бут меню был загрузчик виндовс и grub ?

Перемещено hobbit из general

Можно. Но конкретная реализация зависит от режима загрузки BIOS / UEFI. И обе системы (загрузчика) должны быть установлены в одном режиме, чтобы из одного можно было вызывать другой.

Почитай вот это:

Ну и по ссылкам там походи.

Здесь все ответы, что тебе нужны, если что-то не понятно - изучай хотя бы wikipedia.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)

Если у тебя UEFI, то ничего делать не надо, загрузчик встанет рядом, можно будет в биосе выбрать приоритет - грузить виндовый или линуксовый

masa ★★★
()

В Legacy на разных физических дисках можно, выбирая диск, но так себе, на любителя извращений. На одном физическом диске можно в PBR, который потом сохранить в файл и в загрузчике Windows добавить загрузку этого файла как mbr, потом нянчится с ним, так как каждое обновление grub2 переписывает PBR и нужно обновлять файл. В какой-то момент после очередного обновления grub2 он не грузится, понимаешь что обновился grub2, запускаешь LiveCD (хотя можно и в Windows), выполняешь команду sudo dd if=/dev/sda3 of=/media/windows/boot.pbr bs=512 count=1. Но пару тройку таких извращений и выбор падёт на grub2 как основной загрузчик, а загрузчик винды лесом.

Можно ещё через Grub4Dos, указав загрузку grldr.mbr, который грузит grldr и в menu.lst прописать загрузку линуксов. Но Windows при выборе пункта перезагружается, увеличивая время загрузки. Прописка в BCD батником:

@echo off
color 3b

:: Для изменения BCD в загруженной системе /store и путь не указываются
REM set bcd=/store "C:\Boot\BCD"
set bcd=
echo  -set-bcd
pause
for /f "tokens=2" %%a in ('Bcdedit %bcd% -create /d "Grub4dos" -application bootsector') do set guid=%%a
echo  guid %guid%
pause

BCDEDIT.EXE %bcd% /set %guid% device boot
echo  device
pause
BCDEDIT.EXE %bcd% /set %guid% path \grldr.mbr
echo  path
pause
BCDEDIT.EXE %bcd% /displayorder %guid% /addlast
echo  addlast
pause
bcdedit %bcd% -set {bootmgr} timeout 3
echo  timeout
pause

REM tokens=2 или 3... на семёрке - 2

Всегда когда я устанавливал линукс grub что-то делал с загрузчиком винды и приходилось его восстанавливать

Переписывал MBR прописывая себя взамен Windows. Можешь сохранить MBR в файл и посмотреть разницу между до и после.

AZJIO
()
Последнее исправление: AZJIO (всего исправлений: 3)
Ответ на: комментарий от AZJIO

пару тройку таких извращений и выбор падёт на grub2 как основной загрузчик, а загрузчик винды лесом.

Винда всегда загружается только своим загрузчиком. Пока есть винда, без виндовс-загрузчика не обойдёшься. Будь то ‘chainloader +1’, ‘ntldr…’, ‘grldr…’ или ещё как, все они запускают ‘bootmgr…’

andytux ★★★★★
()
Ответ на: комментарий от andytux

Пока есть винда, без виндовс-загрузчика не обойдёшься.

В принципе так можно сказать и про линукс, пока есть линукс без его загрузчика не обойдёшься, виндовый не загрузит ядро линукс напрямую, только через прокладку Grub2/Grub4Dos. У нас же цепочки bootmgr(BCD)->Grub2/Grub4Dos, либо Grub2/Grub4Dos->bootmgr(BCD) в Legacy.

AZJIO
()
Ответ на: комментарий от AZJIO

В какой-то степени, да.

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

Линукс, впринципе, может быть без загрузчика. Может быть совершенно другой загрузчик (systemd-boot, rEFInd). Загрузчик может быть абсолютно посторонним, о котором система даже не знает. ЕФИ может запустить ядро линукс без промежуточных загрузчиков.

andytux ★★★★★
()
>>  /dev/sda1 EFI                                        
    /dev/sda2 Зарезервированный раздел Microsoft
    /dev/sda3 Microsoft basic data
    /dev/sda4 Среда для восстановления Microsoft
    /dev/sda5 EFI
    /dev/sda6 Файловая система Linux

sda1 для Windows, sda5 для Linux. На 100M диск не обедняет. sda5 смонтировать в /boot/efi Далее grub-install –target=x86_64-efi –efi-directory=/boot/efi –bootloader-id=«Ljaliks»

anonymous
()
Ответ на: комментарий от AZJIO

У меня нет загрузчика. Совсем. Гружу initrd напрямую. Записи загрузочные создаю efibootmgr-ом.

Всегда когда я устанавливал линукс grub что-то делал с загрузчиком винды и приходилось его восстанавливать.

Автор просто прозевал и установщик отформатировал раздел. При установке нужно просто указать его точку монтрования и не форматировать.

Jeronimo ★★★
()

не очень понятно, что имеется в виду под boot menu, но можно такое иметь, вопрос как - зависит от ответа «какое именно boot menu»?

если EFI - то его средствами, там настраиваешь что у тебя с разных разделов разное грузится и выбираешь по кнопке UEFI/BIOS загрузчика Boot Device/Menu Option при старте (обычно F8).

если имеется в виду GRUB с его рамкой и меню выбора, то я советую вот такое добавить в его конфиг /boot/grub/grub.cfg (CC66-4B02 заменить на свой id):

menuentry ‘Windows 10’ { search –fs-uuid –no-floppy –set=root CC66-4B02 chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi }

перед этим проверить /boot и /boot/EFI на предмет наличия

в /etc/default/grub GRUB_DEFAULT= меняешь на нужный номер в меню загрузки (обычно там 0) или на saved, тогда ещё GRUB_SAVEDEFAULT=true ставишь
ещё можно время ожидания подкрутить, по умолчанию там 5 сек (GRUB_TIMEOUT=5)

mumpster ★★★★★
()
Ответ на: комментарий от AZJIO

Это было очень давно, хотя, у меня всë ещë есть работающее с BIOS/MBR разметкой железо, вот там да, линуксовые загрузчики, как и виндовые, затирают загрузочный сектор, с той разницей, что для восстановления оригинального загрузчика из Linux достаточно одной команды, а из винды – нет, потому что винда не делает резервных копий, их приходилось делать самому.

yars068 ★★★★★
()