Как вернуть меню выбора ОС после установки Windows рядом с Linux? Рассказываем о двух способах восстановления загрузчика GRUB — для новичков (с утилитой boot-repair) и для продвинутых пользователей (с помощью chroot).
Поставили Windows рядом с Ubuntu, и теперь можете запустить только ОС от Майкрософт? Рассказываем, как восстановить загрузчик GRUB после установки Windows 10 или 11 — вам хватит 20 минут, даже если вы новичок в администрировании VPS.
Аренда VPS/VDS виртуального сервера от AdminVPS — это прозрачная и честная услуга с доступной ценой
Представьте: вы установили Ubuntu, настроили систему, а потом решили поставить Windows рядом. Но после перезагрузки вместо привычного меню GRUB (grand unified bootloader) вы увидите только загрузчик Windows. Это происходит потому, что Windows не дружит с альтернативными загрузчиками: при установке она перезаписывает главную загрузочную запись (MBR) или заменяет файлы в разделе EFI. И если GRUB, стандартный загрузчик для Linux, может работать с несколькими ОС, то загрузчики NTLDR (Windows 11) и Bootmgr (Windows 10) не умеют. Когда вы ставите Windows после Ubuntu, они просто «не видят» ОС, установленную первой.
Что нужно знать перед восстановлением GRUB
Прежде всего разберёмся с базовыми понятиями — это поможет избежать ошибок и сэкономит время.
UEFI или BIOS
Современные компьютеры используют два типа firmware (микропрограммы для управления железом):
- BIOS — это устаревший стандарт, загрузчик записывается в первый сектор диска (mbr);
- UEFI — современная замена BIOS, работает с разделом EFI (fat32), где хранятся файлы загрузчиков в формате .efi.
Чтобы проверить, какой режим на вашем компьютере, зайдите в bios/uefi (нажмите клавишу del, f2 или f12 при запуске). Если в настройках есть пункты Secure Boot, UEFI Mode — значит, у вас используется UEFI.
Или выполните в Linux:
ls /sys/firmware/efi
Если директория существует — система загрузилась через UEFI.
Live USB с Linux
Чтобы восстановить GRUB, понадобится загрузочная флешка с любым дистрибутивом (Ubuntu, Fedora, Mint).
Как создать Live USB:
- Скачайте iso-образ с официального сайта ОС.
- Создайте Live USB с помощью специальных программ:
- Rufus (на Windows) — выберите «GPT для UEFI» или «MBR для BIOS» в зависимости от прошивки вашего компьютера;
- BalenaEtcher (на Linux/Mac).
- Проверьте целостность образа после записи (в некоторых программах есть опция «verify»).
Как восстановить GRUB из-под Windows: два способа
Восстановление через boot-repair (для новичков)
Если вы не хотите работать в терминале, воспользуйтесь утилитой boot-repair. Она автоматизирует 90 % работы.
Шаг 1. Загрузка с Live USB
- Вставьте флешку, перезагрузите компьютер.
- Нажмите клавишу выбора загрузочного устройства (обычно f12, ESC или f8).
- Выберите флешку в меню.
Если у вас UEFI, загружайтесь в режиме UEFI, а не в Legacy! Иначе раздел EFI не будет обнаружен.
Шаг 2. Установка boot-repair
- Откройте терминал в Live-системе.
- Добавьте репозиторий и установите утилиту (далее все команды выполняются в режиме суперпользователя):
add-apt-repository universe # добавляйте репозиторий в Ubuntu до версии 22.04
apt update
apt install -y boot-repair
Шаг 3. Запуск и настройка
- Запустите boot-repair:
boot-repair
- Выберите «recommended repair».
- Следуйте инструкциям на экране: утилита сама определит установленные ОС, восстановит GRUB и обновит конфигурацию.
Если возникли ошибки:
- проверьте подключение к Интернету (boot-repair иногда скачивает дополнительные пакеты);
- убедитесь, что live-система загружена в правильном режиме (uefi/bios).
Ручное восстановление через chroot (для продвинутых пользователей)
Если первый метод не сработал или вы хотите понять процесс изнутри, восстановите GRUB вручную.
Шаг 1. Определение разделов
- Загрузитесь с Live USB.
- Откройте терминал и узнайте список дисков:
fdisk -l
или
lsblk -f
Команда lsblk -f показывает типы файловых систем и точки монтирования.
- Пример вывода lsblk:
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ntfs Windows ABCD-1234
├─sda2 ext4 Ubuntu 5678-90AB
└─ sda3 vfat ESP CDEF-1234
Обратите внимание на:
- корневой раздел Linux (ext4, btrfs и т. д.) — нам нужен именно он;
- раздел EFI (vfat) — если система на UEFI;
- раздел подкачки (swap) — не нужен для восстановления.
Шаг 2. Монтирование разделов
- Создайте точку монтирования:
mkdir /mnt/Linux
- Примонтируйте корневой каталог с Ubuntu:
mount /dev/sda2 /mnt/Linux
Для UEFI примонтируйте каталог EFI:
mount /dev/sda3 /mnt/Linux/boot/efi
Если у вас отдельный раздел /boot, монтируйте его:
mount /dev/sdaX /mnt/Linux/boot
Шаг 3. Вход в chroot
Chroot (change root) — это команда, которая изменит видимый корневой каталог, чтобы вы вошли в систему из live-окружения.
- Привяжите системные директории:
mount --bind /dev /mnt/Linux/dev
mount --bind /proc /mnt/Linux/proc
mount --bind /sys /mnt/Linux/sys
- Войдите в среду chroot:
chroot /mnt/Linux
Шаг 4. Установка GRUB
- Если прошивка BIOS (MBR):
grub-install /dev/sda # здесь sda — диск, а не раздел
update-grub
- Если прошивка UEFI (GPT), убедитесь, что пакет grub-efi установлен:
apt install grub-efi-amd64
Перед grub-install нужно обновить загрузочный список в efibootmgr, иначе в некоторых UEFI-системах GRUB не будет загружаться:
efibootmgr -c -d /dev/sda -p 1 -L "GRUB" -l "\EFI\GRUB\grubx64.efi"
Здесь -d /dev/sda — диск, -p 1 — номер EFI-раздела (уточните их с помощью lsblk).
Установите GRUB в раздел EFI:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
- Обновите конфигурацию:
update-grub
- После update-grub в выводе должны появиться строки «found Windows» или «found os probe entries».
Шаг 5. Выход и перезагрузка
- Выйдите из chroot:
sync # запись данных
exit
- Отмонтируйте разделы:
sudo umount -R /mnt/Linux
- Перезагрузите компьютер.
Возможные проблемы и их решение
Даже если вы всё сделали правильно, могут возникнуть проблемы.
GRUB не видит Windows
Причина: os-prober не активирован (утилита для автоматического обнаружения установленных ОС).
Решение. В /etc/default/grub раскомментируйте строку:
GRUB_DISABLE_OS_PROBER=false
Установите os-prober:
apt install os-prober
Обновите загрузчик (update-grub).
Ошибка «grub-install: error: cannot find efi directory»
Причина: неправильно указан путь к разделу EFI.
Решение. Проверьте, примонтирован ли раздел EFI в /boot/efi. Проверьте тип раздела: он должен быть vfat (FAT32).
Загрузчик установился, но система не загружается
Причина: неверный порядок загрузки в uefi/bios или повреждённые файлы GRUB. Также включённый Secure Boot может блокировать работу GRUB.
Решение. Зайдите в настройки UEFI/BIOS и выберите GRUB в качестве первого загрузочного устройства. Отключите Secure Boot в UEFI. Если это не помогло — переустановите GRUB через chroot.
Как избежать проблем в будущем
- Если планируете устанавливать две операционные системы, то сначала установите Windows, потом Linux.
- Создайте резервную копию EFI/MBR.
Для BIOS:
dd if=/dev/sda of=backup.mbr bs=512 count=1
Для UEFI — просто скопируйте содержимое раздела EFI в место для хранения.
- Создайте отдельный раздел EFI для Linux. Это минимизирует конфликты с Windows.
Заключение
Восстановить загрузчик GRUB после установки Windows — задача, которая кажется сложной только на первый взгляд. Даже если вы новичок, boot-repair справится за пару кликов. Для тех, кто хочет глубже разобраться в процессе, подойдёт ручной способ через chroot.
Наши технические специалисты помогут вам определиться с конфигурацией и настроят ваш VPN-сервер под ключ, если это будет необходимо.
Читайте в блоге:
- Как поменять TTL для раздачи Интернета: настройка Default TTL и изменение значения на 64 или 65
- Что такое директория в Linux
- Как сменить владельца папки и изменить права доступа в Linux
Всем привет!
Жесткий диск разбит на несколько частей, на одной из них Windows 7, еще несколько под данные, и одну часть выделил для LInux.
При установке Ubuntu похоже накосячил, потому что теперь при включении компьютера в Grub есть выбор между Ubuntu и Windows, но при выборе последней экран на секунду гаснет и опять появляется Grub.
Что делать?
Гугл навел на grub.cfg, а именно:
<code>### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'<source lang="cs">
search --no-floppy --fs-uuid --set=root D2041FD9041FBF81
drivemap -s (hd0) ${root}
chainloader +1
}
### END /etc/grub.d/30_os-prober ###</code>
Но что нужно поменять в этом конфиге?
Всем заранее благодарен!
UPD: Сделал загрузившись c Windows 7 usb и востановлением загрузчика. А именно — Repair System, далее Command Promt: Bootrec.exe /FixBoot.
Почему sda2? В 44_custom_proxy упоминается sda1. Так где-же твоя Windows?
Запусти линукс, выполни в терминале: sudo fdisk -l. Вывод скопируй на форум. Желательно, укажи назначение разделов.
max@maxnt:~$ sudo fdisk -l
[sudo] пароль для max:
Диск /dev/loop0: 4 KiB, 4096 байт, 8 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop1: 103,99 MiB, 109043712 байт, 212976 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop2: 104,19 MiB, 109252608 байт, 213384 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop3: 55,66 MiB, 58363904 байт, 113992 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop4: 55,66 MiB, 58363904 байт, 113992 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop5: 63,95 MiB, 67051520 байт, 130960 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop6: 63,95 MiB, 67051520 байт, 130960 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop7: 74,21 MiB, 77819904 байт, 151992 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/sda: 931,51 GiB, 1000204886016 байт, 1953525168 секторов
Disk model: Samsung SSD 870
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x083fc640
Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип
/dev/sda1 * 2048 104447 102400 50M 7 HPF
/dev/sda2 104448 208605565 208501118 99,4G 7 HPF
/dev/sda3 208607232 209715199 1107968 541M 27 Скр
/dev/sda4 209717246 1953523711 1743806466 831,5G f W95
/dev/sda5 209717248 926517247 716800000 341,8G 7 HPF
/dev/sda6 926519296 932376575 5857280 2,8G 83 Lin
/dev/sda7 932378624 948977663 16599040 7,9G 82 Lin
/dev/sda8 948979712 1451251711 502272000 239,5G 83 Lin
/dev/sda9 1451253760 1953523711 502269952 239,5G 83 Lin
Диск /dev/sdb: 29,82 GiB, 32017047552 байт, 62533296 секторов
Disk model: SanDisk SD5SF203
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x000920fa
Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип
/dev/sdb1 2048 62531583 62529536 29,8G 83 Linux
Диск /dev/loop8: 74,24 MiB, 77844480 байт, 152040 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop9: 349,69 MiB, 366678016 байт, 716168 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop10: 349,7 MiB, 366682112 байт, 716176 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop11: 505,09 MiB, 529625088 байт, 1034424 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop12: 20 KiB, 20480 байт, 40 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop13: 504,15 MiB, 528642048 байт, 1032504 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop14: 91,69 MiB, 96141312 байт, 187776 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop15: 670,11 MiB, 702664704 байт, 1372392 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop16: 673,63 MiB, 706355200 байт, 1379600 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop17: 12,32 MiB, 12922880 байт, 25240 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Диск /dev/loop18: 12,93 MiB, 13553664 байт, 26472 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
max@maxnt:~$
Назначение разделов
Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип
/dev/sda1 * 2048 104447 102400 50M 7 HPF -- создался автоматически при установки винды
/dev/sda2 104448 208605565 208501118 99,4G 7 HPF -- сама Windows
/dev/sda3 208607232 209715199 1107968 541M 27 Скр -- тоже от винды что-то, внутри папка Recovery и System Volume Information
/dev/sda4 209717246 1953523711 1743806466 831,5G f W95 -- Расширенный раздел
/dev/sda5 209717248 926517247 716800000 341,8G 7 HPF -- тут все файлы от винды, раздел NTFS
/dev/sda6 926519296 932376575 5857280 2,8G 83 Lin -- boot
/dev/sda7 932378624 948977663 16599040 7,9G 82 Lin -- swap
/dev/sda8 948979712 1451251711 502272000 239,5G 83 Lin -- root
/dev/sda9 1451253760 1953523711 502269952 239,5G 83 Lin -- home
Не понимаю как прикрепленное вложение (скриншот) поместить между тегом img. И вообще jpeg не принимает форум как оказалось. Только txt, pdf и тд
2. На форуме ЗАПРЕЩЕНО
2.17. Обсуждение вопросов, напрямую не связанных с использованием дистрибутивов, входящих в официальное семейство Ubuntu. Другие дистрибутивы GNU/Linux и прочие операционные системы следует обсуждать на иных, специализированных ресурсах. Исключением является раздел «Разговоры обо всем».
— Правила форума
— Руководство по добавлению изображений на форум
Закрыто! Тем более, что тема в архиве и последнее сообщение в теме было четыре года назад!
—ALiEN
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 |
# # DO NOT EDIT THIS FILE # # It is automatically generated by grub-mkconfig using templates # from /etc/grub.d and settings from /etc/default/grub # ### BEGIN /etc/grub.d/00_header ### if [ -s $prefix/grubenv ]; then set have_grubenv=true load_env fi set default="0" if [ x"${feature_menuentry_id}" = xy ]; then menuentry_id_option="--id" else menuentry_id_option="" fi export menuentry_id_option if [ "${prev_saved_entry}" ]; then set saved_entry="${prev_saved_entry}" save_env saved_entry set prev_saved_entry= save_env prev_saved_entry set boot_once=true fi function savedefault { if [ -z "${boot_once}" ]; then saved_entry="${chosen}" save_env saved_entry fi } function recordfail { set recordfail=1 if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi } function load_video { if [ x$feature_all_video_module = xy ]; then insmod all_video else insmod efi_gop insmod efi_uga insmod ieee1275_fb insmod vbe insmod vga insmod video_bochs insmod video_cirrus fi } if [ x$feature_default_font_path = xy ] ; then font=unicode else insmod part_gpt insmod ext2 set root='hd0,gpt11' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt11 --hint-efi=hd0,gpt11 --hint-baremetal=ahci0,gpt11 4c74771b-8828-423c-b6b9-5bd538dd235a else search --no-floppy --fs-uuid --set=root 4c74771b-8828-423c-b6b9-5bd538dd235a fi font="/usr/share/grub/unicode.pf2" fi if loadfont $font ; then set gfxmode=auto load_video insmod gfxterm set locale_dir=$prefix/locale set lang=ru_RU insmod gettext fi terminal_output gfxterm if [ "${recordfail}" = 1 ]; then set timeout=-1 else set timeout=10 fi ### END /etc/grub.d/00_header ### ### BEGIN /etc/grub.d/05_debian_theme ### set menu_color_normal=white/black set menu_color_highlight=black/light-gray if background_color 44,0,30; then clear fi ### END /etc/grub.d/05_debian_theme ### ### BEGIN /etc/grub.d/10_linux ### function gfxmode { set gfxpayload="${1}" if [ "${1}" = "keep" ]; then set vt_handoff=vt.handoff=7 else set vt_handoff= fi } if [ "${recordfail}" != 1 ]; then if [ -e ${prefix}/gfxblacklist.txt ]; then if hwmatch ${prefix}/gfxblacklist.txt 3; then if [ ${match} = 0 ]; then set linux_gfx_mode=keep else set linux_gfx_mode=text fi else set linux_gfx_mode=text fi else set linux_gfx_mode=keep fi else set linux_gfx_mode=text fi export linux_gfx_mode menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-4c74771b-8828-423c-b6b9-5bd538dd235a' { recordfail load_video gfxmode $linux_gfx_mode insmod gzio insmod part_gpt insmod ext2 set root='hd0,gpt11' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt11 --hint-efi=hd0,gpt11 --hint-baremetal=ahci0,gpt11 4c74771b-8828-423c-b6b9-5bd538dd235a else search --no-floppy --fs-uuid --set=root 4c74771b-8828-423c-b6b9-5bd538dd235a fi linux /boot/vmlinuz-3.11.0-12-generic root=UUID=4c74771b-8828-423c-b6b9-5bd538dd235a ro quiet splash $vt_handoff initrd /boot/initrd.img-3.11.0-12-generic } submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-4c74771b-8828-423c-b6b9-5bd538dd235a' { menuentry 'Ubuntu, with Linux 3.11.0-12-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.11.0-12-generic-advanced-4c74771b-8828-423c-b6b9-5bd538dd235a' { recordfail load_video gfxmode $linux_gfx_mode insmod gzio insmod part_gpt insmod ext2 set root='hd0,gpt11' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt11 --hint-efi=hd0,gpt11 --hint-baremetal=ahci0,gpt11 4c74771b-8828-423c-b6b9-5bd538dd235a else search --no-floppy --fs-uuid --set=root 4c74771b-8828-423c-b6b9-5bd538dd235a fi echo 'Loading Linux 3.11.0-12-generic ...' linux /boot/vmlinuz-3.11.0-12-generic root=UUID=4c74771b-8828-423c-b6b9-5bd538dd235a ro quiet splash $vt_handoff echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-3.11.0-12-generic } menuentry 'Ubuntu, with Linux 3.11.0-12-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.11.0-12-generic-recovery-4c74771b-8828-423c-b6b9-5bd538dd235a' { recordfail load_video insmod gzio insmod part_gpt insmod ext2 set root='hd0,gpt11' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt11 --hint-efi=hd0,gpt11 --hint-baremetal=ahci0,gpt11 4c74771b-8828-423c-b6b9-5bd538dd235a else search --no-floppy --fs-uuid --set=root 4c74771b-8828-423c-b6b9-5bd538dd235a fi echo 'Loading Linux 3.11.0-12-generic ...' linux /boot/vmlinuz-3.11.0-12-generic root=UUID=4c74771b-8828-423c-b6b9-5bd538dd235a ro recovery nomodeset echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-3.11.0-12-generic } } ### END /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/20_linux_xen ### ### END /etc/grub.d/20_linux_xen ### ### BEGIN /etc/grub.d/20_memtest86+ ### menuentry 'Memory test (memtest86+)' { insmod part_gpt insmod ext2 set root='hd0,gpt11' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt11 --hint-efi=hd0,gpt11 --hint-baremetal=ahci0,gpt11 4c74771b-8828-423c-b6b9-5bd538dd235a else search --no-floppy --fs-uuid --set=root 4c74771b-8828-423c-b6b9-5bd538dd235a fi linux16 /boot/memtest86+.bin } menuentry 'Memory test (memtest86+, serial console 115200)' { insmod part_gpt insmod ext2 set root='hd0,gpt11' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt11 --hint-efi=hd0,gpt11 --hint-baremetal=ahci0,gpt11 4c74771b-8828-423c-b6b9-5bd538dd235a else search --no-floppy --fs-uuid --set=root 4c74771b-8828-423c-b6b9-5bd538dd235a fi linux16 /boot/memtest86+.bin console=ttyS0,115200n8 } ### END /etc/grub.d/20_memtest86+ ### ### BEGIN /etc/grub.d/30_os-prober ### menuentry 'Windows Recovery Environment (loader) (on /dev/sda3)' --class windows --class os $menuentry_id_option 'osprober-chain-266B-BBDC' { insmod part_gpt insmod fat set root='hd0,gpt3' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 266B-BBDC else search --no-floppy --fs-uuid --set=root 266B-BBDC fi drivemap -s (hd0) ${root} chainloader +1 } menuentry 'Windows 8 (loader) (on /dev/sda5)' --class windows --class os $menuentry_id_option 'osprober-chain-3A826EF0826EAFD5' { insmod part_gpt insmod ntfs set root='hd0,gpt5' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 3A826EF0826EAFD5 else search --no-floppy --fs-uuid --set=root 3A826EF0826EAFD5 fi drivemap -s (hd0) ${root} chainloader +1 } ### END /etc/grub.d/30_os-prober ### ### BEGIN /etc/grub.d/30_uefi-firmware ### ### END /etc/grub.d/30_uefi-firmware ### ### BEGIN /etc/grub.d/40_custom ### # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. ### END /etc/grub.d/40_custom ### ### BEGIN /etc/grub.d/41_custom ### if [ -f ${config_directory}/custom.cfg ]; then source ${config_directory}/custom.cfg elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then source $prefix/custom.cfg; fi ### END /etc/grub.d/41_custom ### |
Grub (GNU GRand Unified Bootloader) — свободный загрузчик операционных систем, который используется во многих дистрибутивах Linux. Он позволяет выбирать операционную систему для загрузки при старте компьютера и управлять процессом загрузки системы, также поддерживает загрузку различных OS, включая различные версии Linux, Windows, macOS, позволяет настраивать параметры загрузки, создавать различные профили загрузки и выполнять другие задачи, связанные с загрузкой операционных систем.
Grub обычно устанавливается в начало жесткого диска компьютера и запускается при старте системы для предоставления пользователю возможности выбора операционной системы для загрузки. Grub является важной частью многих дистрибутивов Linux и играет ключевую роль в процессе загрузки операционной системы.
GRUB (GNU GRand Unified Bootloader) — мощный и гибкий загрузчик операционных систем, который используется во многих дистрибутивах Linux и других операционных систем, таких как FreeBSD. GRUB предоставляет пользователю возможность выбора операционной системы или ядра, которое нужно загрузить при старте компьютера.
Позволяет загружать различные операционные системы, а также варианты загрузки для конкретной операционной системы, например, в безопасном режиме или с другими параметрами загрузки. Он также поддерживает многоядерные системы и может автоматически обнаруживать установленные операционные системы на жестком диске. Имеет гибкую конфигурацию, которая позволяет пользователям настраивать параметры загрузки, добавлять новые ядра или операционные системы в меню загрузки, а также выполнять другие действия при загрузке системы.
GRUB является одним из наиболее распространенных загрузчиков для систем Linux и используется по умолчанию во многих дистрибутивах Linux, таких как Ubuntu, Fedora, Debian и многих других.
Если Grub не видит Windows 10 при загрузке, возможно, что загрузочная запись Windows была повреждена или удалена. Есть несколько причин, почему так происходит:
- Неправильная конфигурация: если Grub неправильно сконфигурирован или не обновлен после установки Windows 10, он может не видеть новую операционную систему.
- Изменения разделов диска: после установки Windows 10 могли произойти изменения в разделах диска, из-за чего Grub перестал её видеть..
- Проблемы с загрузочным сектором: некорректное обновление загрузочного сектора или MBR (Master Boot Record) могут привести к проблеме.
- Проблемы с UEFI/BIOS: некорректные настройки в UEFI или BIOS компьютера могут привести к тому, что Grub не сможет правильно обнаружить операционную систему.
- Поврежденные файлы загрузки: если файлы загрузки повреждены или отсутствуют, Grub не сможет их обнаружить.
Дальше расскажем, что же делать, если возникла такая проблема.
Сначала можно попытаться сделать наш с Windows раздел более видимым для программы. Для этого примонтируйте его в какую-либо папку. Например, в /mnt/
:
sudo mount -t ntfs-3g -o ro /dev/sda1
Система Windows установлена на разделе, который определяется в Linux, как /dev/sda1
. Дальше запустите утилиту os-prober:
sudo os-prober
Если программа обнаружит Windows, останется обновить конфигурацию загрузчика Grub:
sudo update-grub
Или:
sudo grub2-mkconfig -o /boot/grub/grub.cfg
Если же этот способ не сработает, останется только вручную добавить пункт меню для Windows. Это не самое простое, но зато эффективное решение. Сначала нам нужно узнать UUID раздела диска, на который установлена Windows, например, /dev/sda1
:
blkid /dev/sda1
Затем откройте файл /etc/grub.d/40_custom
и добавьте туда такой код:
menuentry "Windows 10" {
insmod ntfs
set root='(hd0,1)'
search --no-floppy --fs-uuid --set B4A6AEB7A6AE7A0E
chainloader +1
}
Так мы устанавливаем в качестве корня первый раздел первого диска, а затем указываем загрузчику, что нужно найти раздел с нужным нам UUID. Затем передаем управление загрузчику на этом разделе с помощью chainloader. Дальше осталось обновить конфигурацию Grub:
sudo update-grub
Мы использовали такой метод потому что теперь настройка не собьется после обновления ядра или другого процесса, инициализирующего обновление конфигурации. Потому что если бы мы добавили эти строки в /boot/grub/grub.cfg
, то они были бы перезаписаны если не при первом, то при одном из следующих обновлений системы.
Когда конфигурация обновлена вы можете перезагрузить компьютер и загружать Windows с помощью нового пункта. Таким образом, можно добавить несколько пунктов, только для разных разделов нужно указывать их UUID.