Загрузчик GRUB и Windows
У каждой из операционной систем есть свой загрузчик, а у каждого жёсткого диска (область называется MBR) и раздела на диске область, в которую можно этот загрузчик установить.
При загрузке компьютера после завершения работы программы BIOS, происходит (по сути при завершении свой работы, BIOS сам запускает загрузчик) запуск загрузчика с диска (того который указан в BIOS как загружаемый или идущий первый в списке) установленный в загрузочной записи, т.е. в MBR (не с раздела, т.к. BIOS не может видеть таблицу разделов на дисках. Однако в будущих версиях такая возможность будет присутствовать, как например в EFI).
Дальше, в зависимости от того какой загрузчик был загружен (от Windows или Linux) и его настроек (времени ожидания выбора пунктов и т.д.) загружается соответствующая операционная система.
Различия загрузчиков
Понятно и очевидно, загрузчик от Windows больше приспособлен и ориентирован на загрузку самой ОС Windows, чем других операционных систем, поэтому он простой, функций у него мало и они спрятаны от пользователя.
Загрузчик от Linux, имеется ввиду GRUB, более функционален и позиционируется как универсальное средство загрузки различных операционных систем (а их десятки), учитывая их особенности.
Считается проще и логичнее использовать как основной загрузчик GRUB, так как он успешно загружает как Linux так и Windows различных версий.
Обычно, сначала устанавливается на компьютер Windows, при установке система помещает свой загрузчик в область MBR. Во время установки Linux, если вы выберите так же установить загрузчик на диск, загрузчик GRUB перезапишет предыдущий, а в свой файл настроек допишет запись о возможности загрузки Windows, и можно будет потом выбирать при загрузки компьютера, в меню загрузчика какую систему загружать.
Иногда случаются ситуации, когда линуксовый загрузчик вроде бы прописал возможность загрузить windows, но система не загружается, для этого необходимо в консоли от пользователя root выполнить команду:
grub-mkconfig -o /boot/grub/grub.cfg
утилита сканирует разделы на диске и добавит обнаруженные операционные системы в меню загрузки.
Восстановление Grub после установки Windows 10
Это загрузчик операционной системы, который используется во многих дистрибутивах Linux. Он является одним из наиболее популярных загрузчиков для Linux и обеспечивает поддержку множества операционных систем.
Когда нужно восстановление?
Восстановление grub требуется в следующих случаях:
- Установка новой операционной системы: при установке новой ОС (например, Windows) она может затереть или изменить загрузчик grub, что может привести к тому, что вы не сможете загрузиться в другие ОС на вашем компьютере. Восстановление grub поможет восстановить возможность выбора и загрузки других операционных систем.
- Обновление или удаление grub: в некоторых случаях, при обновлении или удалении grub могут возникнуть проблемы, из-за которых ваш компьютер может не загружаться. Восстановление grub поможет исправить эти проблемы и вернуть нормальную загрузку системы.
- Изменение разделов жесткого диска: если вы изменяли разделы на жестком диске (например, создали новый раздел или изменяли размер существующего раздела) без использования соответствующих инструментов, это также может привести к потере загрузчика grub. Восстановление grub позволит восстановить возможность загрузки операционных систем на вашем компьютере.
Восстановление grub позволяет вернуть нормальную функциональность загрузчика и восстановить выбор и загрузку операционных систем на вашем компьютере. Необходимо отметить, что инструкции по восстановлению grub могут различаться в зависимости от используемой операционной системы и конфигурации вашего компьютера.
Как восстановить grub?
Инструкция по восстановлению grub:
- Загрузитесь с помощью LiveCD или Live USB-накопителя. Должна быть установлена та же версия Linux, что и на вашем компьютере.
- Откройте терминал и выполните следующую команду, чтобы найти раздел, содержащий вашу Linux-установку: sudo fdisk -l
- Обратите внимание на раздел, помеченный как «Linux» или «Linux LVM».
- Смонтируйте раздел Linux на вашей системе. Предположим, что он находится в разделе /dev/sda1. Выполните следующую команду для монтирования раздела: sudo mount /dev/sda1 /mnt
- Установите несколько необходимых пакетов. Выполните следующую команду: sudo apt-get install grub2-common grub-pc
- Восстановите grub. Выполните следующую команду: sudo grub-install —root-directory=/mnt /dev/sda
- Запустите обновление grub. Выполните следующую команду: sudo update-grub
- Смонтируйте раздел Linux. Выполните следующую команду: sudo umount /mnt
- Перезагрузитесь и проверьте, восстановлен ли grub.
Это базовая инструкция. В зависимости от вашей конкретной ситуации, вам могут потребоваться дополнительные шаги или команды. Если у вас возникли какие-либо проблемы или ошибки, рекомендуется обратиться к официальной документации вашего дистрибутива Linux или поискать дополнительную информацию в Интернете.
Восстановление после Windows 10
Если вы используете UEFI и хотите восстановить grub после установки Windows 10, есть более простое решение.
Вот пошаговая инструкция:
Запустите Windows 10 и откройте командную строку с правами администратора. Для этого нажмите Win + X и выберите «Командная строка (администратор)».
В командной строке выполните следующую команду, чтобы отключить Fast Startup (Быструю загрузку) в Windows 10:
Теперь выполните следующую команду, чтобы увидеть список разделов на вашем компьютере:
В командной строке Diskpart выполните следующую команду, чтобы узнать номер раздела, в котором установлена ваша Linux-система. Обратите внимание на размер раздела (в GB) и метку файловой системы, чтобы найти правильный раздел. Запишите номер раздела, он понадобится на следующем шаге.
Теперь в командной строке выполните следующую команду, чтобы восстановить загрузчик GRUB на выбранный раздел (номер_раздела):
bcdedit /set path \EFI\ubuntu\grubx64.efi«` или «`bcdedit /set path \EFI\pop_os\GRUB.ext
(зависит от вашего дистрибутива).
Перезагрузите компьютер. Теперь должен быть восстановлен grub и вы сможете выбрать вашу Linux-систему в меню загрузки.
Это более простое решение, которое позволяет восстановить grub с использованием Windows 10 и без необходимости использовать LiveCD или другие инструменты. Обратите внимание, что в некоторых случаях может потребоваться дополнительная настройка или более сложные действия.
Как восстановить Grub после установки Windows
Если вы пользуетесь на компьютере двумя операционными системами, Windows и Linux, и обновили свою Windows из 7, 8 или 8.1 до самой новой Windows 10, могут возникнуть проблемы с загрузчиком Grub при использовании защищенной загрузки UEFI. В ходе обновления системы Windows 10 просто затрет загрузчик Grub и запишет туда свой.
Дальше после перезагрузки системы пользователь ожидает увидеть меню выбора операционной системы Grub, но вместо этого загружается новая Windows 10. Может показаться, что нет никакого способа получить доступ к Ubuntu или что не может работать Ubuntu рядом с Windows 10. Но это не так.
Восстанавливаем Grub
Часто специалисты советуют установить Ubuntu на другой диск, но есть простое решение. Всегда можно воспользоваться стандартным способом, например, с помощью LiveCD диска. Но если вы используете UEFI, есть решение с помощью Windows 10.
ЗАПУСК CMD
Для начала кликните по иконке поиск в Windows, наберите там cmd и найдите Командную строку Windows. Кликните по ней правой кнопкой и выберите Запустить от имени администратора:

ПОДКЛЮЧЕНИЕ РАЗДЕЛА EFI
Далее вы можете попытаться угадать как называется файл загрузчика Grub на разделе EFI, но можно поступить по другому и просто посмотреть. Чтобы подключить раздел EFI запустите diskpart. Для этого выполните:
Затем выведите список доступных дисков:
Выберите в качестве активного диск, на который установлена Windows 10 и на котором сейчас находится раздел EFI:

Выведите список разделов на диске:
Найдите раздел EFI, он обычно отформатирован в файловую систему FAT и занимает около 100 мегабайт места. В данном случае это том 2:

Этому разделу надо присвоить букву. Для этого выполните:

ПОИСК ЗАГРУЗЧИКА
Теперь необходимо найти файл загрузчика на разделе EFI. Но открыть этот раздел в проводникель нельзя, надо использовать только командную строку. Закройте DiskPart и выполните:
Затем с помощью команды dir найдите загрузчик Grub. Например:

Здесь есть файл grubx64.efi. Это он. Загрузчик может называться по другому в других дистрибутивах, именно поэтому я рассказал как всё посмотреть.
ВОССТАНОВЛЕНИЕ GRUB
Теперь скопируйте и выполните эту команду:
Не придется вводить пароль, если есть права администратора и программа должна отработать нормально. Эта команда обратно запишет вместо загрузчика Windows 10 загрузчик Grub.
Если команда вернула ошибку, вы можете откатить изменения такой командой:
$ bcdedit /deletevalue path EFIubuntugrubx64.efi
Затем можно включить загрузчку загузчика Windows 10:
$ bcdedit /set path EFIMicrosoftBootootmgfw.efi
Перезапустите компьютер и вы увидите на экране знакомый Grub. На этом процесс восстановиления Grub завершен.
Настройка запуска меню загрузчика GRUB при установке Linux с Windows на один компьютер с таблицей разделов GPT
Привет, Хабр! Сегодня мы рассмотрим ситуацию, когда при двойной установке Linux & Windows загрузчик GRUB не стартует, давая возможность выбрать ОС, а автоматически загружается Windows. Немного теории:
GRUB (GRand Unified Bootloader) — программа-загрузчик операционных систем.
GRUB может загрузить любую совместимую с ней операционную систему. Среди них: Linux, FreeBSD, Solaris и многие другие. Кроме того, GRUB умеет по цепочке передавать управление другому загрузчику, что позволяет ему загружать Windows (через загрузчик NTLDR), MS-DOS, OS/2 и другие системы.
Значит с теорией мы немного разобрались (думаю этого будет достаточно), теперь же рассмотрим, какие бывают подводные камни, при установке Dual Boot Windows и Linux на одном компьютере.

Эксперимент производился на рабочей станции со следующими характеристиками:
Base Board Information
- Manufacturer: Acer
- Product Name: Aspire XC600
- Size: 4096 MB
- Type: DDR3
- Speed: 1333 MHz
- Manufacturer: Kingston
- Rank: 2
- product: ST500DM002-1BD14
- vendor: Seagate
- physical id: 0.0.0
- bus info: scsi@0:0.0.0
- logical name: /dev/sda
- size: 465GiB (500GB)
- capabilities: gpt-1.00 partitioned partitioned:gpt
Но, как показала практика, не со всеми дистрибутивами такое происходит. При установке Ubuntu 16.04.1 вместо Debian на ту же рабочую станцию вылез первый подводный камень — GRUB не стартовал, и Windows 10 автоматом шла на загрузку.
Решение проблемы было найдено спустя недели три-четыре (тогда уже надоело считать, сколько времени убито на решение проблемы). Оно оказалось неожиданным, но в тоже время вся система заработала. Значит, если вы столкнулись с такой же проблемой, приведенная ниже инструкция может вам пригодится и сэкономить кучу времени.
Важно! До начала выполнения инструкции нужно подготовить LiveCD с дистрибутивом Linux Mint — все операции мы будем выполнять на нем (я выбрал этот дистрибутив из-за того, что на него спокойно можно установить Midnight Commander, что сложно сделать на LiveCD с Ubuntu, так мы получаем больше пространства для маневров). Также стоит заметить, что команда из под консоли update-grub вам не поможет, так как она рассчитана на случай, когда GRUB запускается, но не видит другие ОС кроме Линукса. Также рекомендую создавать резервные копии файлов/каталогов, над которыми вы осуществляете хоть малейшие изменения.
-
Через терминал, с правами root смонтировать раздел с EFI в папку /mnt. В моем случае, это была команда mount /dev/sda2 /mnt.
menuentry 'openSUSE Leap 42.2 27.01' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-996b3ed5-150f-4de3-a40c-6d385e27d6de' < load_video set gfxpayload=keep insmod gzio insmod part_gpt insmod ext2 set root='hd0,gpt6' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6 996b3ed5-150f-4de3-a40c-6d385e27d6de else search --no-floppy --fs-uuid --set=root 996b3ed5-150f-4de3-a40c-6d385e27d6de fi echo 'Загружается Linux 4.4.36-8-default …' linuxefi /boot/vmlinuz-4.4.36-8-default root=UUID=996b3ed5-150f-4de3-a40c-6d385e27d6de ro resume=/dev/sda7 splash=silent quiet showopts echo 'Загружается начальный виртуальный диск …' initrdefi /boot/initrd-4.4.36-8-default >
Написать openSUSE The best choice!:):
menuentry 'openSUSE The best choice!:)' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-996b3ed5-150f-4de3-a40c-6d385e27d6de' < load_video set gfxpayload=keep insmod gzio insmod part_gpt insmod ext2 set root='hd0,gpt6' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6 996b3ed5-150f-4de3-a40c-6d385e27d6de else search --no-floppy --fs-uuid --set=root 996b3ed5-150f-4de3-a40c-6d385e27d6de fi echo 'Загружается Linux 4.4.36-8-default …' linuxefi /boot/vmlinuz-4.4.36-8-default root=UUID=996b3ed5-150f-4de3-a40c-6d385e27d6de ro resume=/dev/sda7 splash=silent quiet showopts echo 'Загружается начальный виртуальный диск …' initrdefi /boot/initrd-4.4.36-8-default >
Хоть мелочь, а приятно! Остальное в коде советую не трогать.
Если трудно разобраться с управлением Midnight Commander (в этом нет ничего страшного, у меня тоже в первый раз были проблемы с этой программой), все операции можно выполнить в файловом менеджере Nautilus (или в другом, не суть важно), но изначально запустив его под правами пользователя root.
После этого идем на перезагрузку и радуемся результату. Но, как оказывается, такая проблема есть и у дистрибутива OpenSUSE Leap 42.2. Как показала практика, если на компьютере установлен дистрибутив OpenSUSE с Windows 10, то приведенная выше инструкция не поможет. Точнее, она поможет, но только ее нужно дополнить. После выполнения основной части выполняем следующие шаги:
- После выполнения всех операций заходим в папку /EFI/opensuse/x86_64-efi/ (название итоговой папки x86_64-efi может быть другим в зависимости от архитектуры ПК)
- Копируем файл grub.efi (если у вас включена опция Secure Boot, там будет еще файл shim.efi, тогда советую скопировать их вместе)
- Заходим в папку /EFI/Boot и удаляем все файлы, которые там есть (при обновлении загрузчика они снова появятся, но в этом нет ничего страшного)
- Вставляем файл (или файлы), которые мы скопировали и спокойно идем на перезагрузку.
Вот и вся инструкция. Думаю, кому-то пригодится…
Для тех же, кого заинтересовала данная тема, рекомендую прочитать статью: «Начальный загрузчик GRUB 2 — полное руководство».
- Настройка Linux
- Системное администрирование
- IT-инфраструктура