Как добавить в grub загрузку windows 10 с другого диска

Все способы:

  • Способ 1: Установка Windows на диск с Linux
  • Способ 2: Обнаружение раздела Windows
  • Способ 3: Ручное добавление загрузчика
  • Вопросы и ответы: 0

Способ 1: Установка Windows на диск с Linux

Одной из наиболее распространенных причин отсутствия Windows 10 в загрузочном меню «Grub» является установка Windows не на тот же физический диск, на который устанавливается Linux. Если нужно установить на один компьютер Windows и Linux, устанавливайте их по возможности на один физический жесткий диск, причем первой необходимо установить Windows. Если сперва будет установлена Linux, а затем Windows, то есть большая вероятность, что загрузчик Windows затрет «Grub».

Способ 2: Обнаружение раздела Windows

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

  1. Определите в Linux название раздела, на который установлена Windows. Получить сведения о дисках и разделах в Linux можно как из «Терминала», так и с помощью штатного приложения «Дисковая утилита». Скопируйте или запомните название устройства. Например, это будет «/dev/sda1».
  2. grub не видит Windows 10.1

  3. Откройте «Терминал» и примонтируйте раздел с Windows 10, для чего выполните команду sudo mount -t ntfs-3g -o ro /dev/sda1, где /dev/sda1 — полученный на предыдущем этапе путь к тому с Windows.
  4. Чтобы обнаружить Windows 10, выполните тут же в «Терминале» команду sudo os-prober.
  5. grub не видит Windows 10.2

  6. В случае успешного обнаружения Windows обновите конфигурацию «Grub» командой sudo update-grub либо же sudo grub2-mkconfig -o /boot/grub/grub.cfg.
  7. grub не видит Windows 10.3

Способ 3: Ручное добавление загрузчика

При использовании первого способа вероятность сходу обнаружить и прописать Windows 10 в линуксовый загрузчик довольно невелика. Более сложным, но и более эффективным способом восстановления записи Windows 10 в загрузочном меню Grub является ручное добавление. Способ универсальный, использовать его можно не только при потере Windows 10, но и других операционных систем Windows.

  1. Узнайте название раздела с Windows как было показано в первом пункте предыдущего способа.
  2. Определите UUID раздела, на котором установлена Windows 10, для чего выполните в «Терминале» команду blkid /dev/sda1, где /dev/sda1 — название раздела с Windows.
  3. grub не видит Windows 10.4

  4. Откройте любым текстовым редактором файл /etc/grub.d/40_custom и вставьте в него следующий код, где XXXXXXXXXXXXXXXX — полученный на предыдущем шаге UUID:

    menuentry "Windows 10" {
    insmod ntfs
    set root='(hd0,1)'
    search --no-floppy --fs-uuid --set XXXXXXXXXXXXXXXX
    chainloader +1
    }
    .
    Сохраните файл.

  5. grub не видит Windows 10.5

  6. Обновите конфигурацию Grub командой sudo update-grub, перезагрузите компьютер и посмотрите, появилась ли Windows в загрузочном меню Grub.

Если восстановить/добавить запись Windows 10 в загрузочное меню «Grub» не удалось, проверьте, не удален ли на диске служебный 100 МБ NTFS-раздел с загрузочными файлами. Если удален, можно будет попробовать его восстановить, но будет гораздо проще переустановить Windows и Linux. В том случае, когда используется «Grub 2» на UEFI, попробуйте включить в BIOS режим «Legacy».

Наша группа в TelegramПолезные советы и помощь

На ssd стояла windows 10.
Разбил hdd под установку linux mint, но после его установки загружалась только windows 10. Решил это чистой установкой Linux, установщик разбил диск как ему надо. Как итог linux грузится, windows 10 — нет, и кроме того не могу войти в настройки bios: меню загрузки там пустое, bios setup не открывается.
В меню загрузки grub есть только linux.
Есть ли способ добавить windows в меню загрузчика grub, как убедиться, что она сможет запуститься, и это не убьет работающий Linux?

Grub выглядит так:

5d113880dae20436574156.jpeg

По команде lsblk результат такой:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465,8G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
└─sda2   8:2    0 465,3G  0 part /
sdb      8:16   0   118G  0 disk 
├─sdb1   8:17   0 117,2G  0 part 
└─sdb2   8:18   0   790M  0 part

Для диска, на котором лежит windows: blkid /dev/sdb1

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sdb1  *         2048 245839254 245837207 117,2G  7 HPFS/NTFS/exFAT
/dev/sdb2       245839872 247457791   1617920   790M 27 Hidden NTFS WinRE

blkid /dev/sdb1. Странный лейбл раздела с windows 10. Критично ли это?

/dev/sdb1: LABEL="M-PM-^TM-PM-8M-QM-^AM-PM-:" UUID="2EE6EE17E6EDDF59" TYPE="ntfs" PARTUUID="d7209484-01"

upd
Добавил руками пункт загрузки в grub как написано в статье.

menuentry "Windows 10" {
insmod ntfs
set root='(hd1,1)'
search --no-floppy --fs-uuid --set 2EE6EE17E6EDDF59
chainloader +1
}

При выборе — error: invalid EFI file path.

ps. Если бы была возможность зайти в bios, с удовольствием бы снес все и накатил заново винду (или восстановил с загрузочной флешки). С проблемой столкнулся не впервые, но в прошлый раз пришлось прибегнуть к прошивке bios на программаторе. Хотелось бы обойтись без такой хирургии, тк не желательно отдавать ноут на несколько дней.

— Вопрос возникал 1001 раз, если вдруг не найдёте ответа расскажите тогда как искали. В противном случае у желающих помочь может не оказаться мотивации это делать 😈…

Я уже многое посмотрел, обходя варианты после которых можно лишиться данных. Просто у меня не простой случай, я перед установкой возможно нахимичил что-то со структурой диска или с разметкой, если я правильно понимаю. Мне кажется у меня должен быть не простой случай


Пользователь добавил сообщение 11 Апреля 2018, 20:23:27:


Вместо скриншотов, которые не открываются, кинь лучше выхлоп команд:

Ооого! А есть варианты по проще.. Во всяком случае вот, результат по команде

cat /boot/grub/grub.cfg

#
# 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
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

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_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  1afa1241-c56b-4b62-a4df-38df059b1ea0
else
  search --no-floppy --fs-uuid --set=root 1afa1241-c56b-4b62-a4df-38df059b1ea0
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=10
else
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=menu
    set timeout=10
  # Fallback normal timeout code in case the timeout_style feature is
  # unavailable.
  else
    set timeout=10
  fi
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
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/06_mint_theme ###
set menu_color_normal=white/black
set menu_color_highlight=white/light-gray
### END /etc/grub.d/06_mint_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 'Linux Mint 18.3 Cinnamon 64-bit' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-1afa1241-c56b-4b62-a4df-38df059b1ea0' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  1afa1241-c56b-4b62-a4df-38df059b1ea0
else
  search --no-floppy --fs-uuid --set=root 1afa1241-c56b-4b62-a4df-38df059b1ea0
fi
        linux /boot/vmlinuz-4.13.0-38-generic root=UUID=1afa1241-c56b-4b62-a4df-38df059b1ea0 ro  quiet splash $vt_handoff
initrd /boot/initrd.img-4.13.0-38-generic
}
submenu 'Advanced options for Linux Mint 18.3 Cinnamon 64-bit' $menuentry_id_option 'gnulinux-advanced-1afa1241-c56b-4b62-a4df-38df059b1ea0' {
menuentry 'Linux Mint 18.3 Cinnamon 64-bit, with Linux 4.13.0-38-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.13.0-38-generic-advanced-1afa1241-c56b-4b62-a4df-38df059b1ea0' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  1afa1241-c56b-4b62-a4df-38df059b1ea0
else
  search --no-floppy --fs-uuid --set=root 1afa1241-c56b-4b62-a4df-38df059b1ea0
fi
echo 'Loading Linux 4.13.0-38-generic ...'
        linux /boot/vmlinuz-4.13.0-38-generic root=UUID=1afa1241-c56b-4b62-a4df-38df059b1ea0 ro  quiet splash $vt_handoff
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.13.0-38-generic
}
menuentry 'Linux Mint 18.3 Cinnamon 64-bit, with Linux 4.13.0-38-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.13.0-38-generic-init-upstart-1afa1241-c56b-4b62-a4df-38df059b1ea0' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  1afa1241-c56b-4b62-a4df-38df059b1ea0
else
  search --no-floppy --fs-uuid --set=root 1afa1241-c56b-4b62-a4df-38df059b1ea0
fi
echo 'Loading Linux 4.13.0-38-generic ...'
        linux /boot/vmlinuz-4.13.0-38-generic root=UUID=1afa1241-c56b-4b62-a4df-38df059b1ea0 ro  quiet splash $vt_handoff init=/sbin/upstart
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.13.0-38-generic
}
menuentry 'Linux Mint 18.3 Cinnamon 64-bit, with Linux 4.13.0-38-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.13.0-38-generic-recovery-1afa1241-c56b-4b62-a4df-38df059b1ea0' {
recordfail
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  1afa1241-c56b-4b62-a4df-38df059b1ea0
else
  search --no-floppy --fs-uuid --set=root 1afa1241-c56b-4b62-a4df-38df059b1ea0
fi
echo 'Loading Linux 4.13.0-38-generic ...'
        linux /boot/vmlinuz-4.13.0-38-generic root=UUID=1afa1241-c56b-4b62-a4df-38df059b1ea0 ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.13.0-38-generic
}
menuentry 'Linux Mint 18.3 Cinnamon 64-bit, with Linux 4.10.0-38-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.10.0-38-generic-advanced-1afa1241-c56b-4b62-a4df-38df059b1ea0' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  1afa1241-c56b-4b62-a4df-38df059b1ea0
else
  search --no-floppy --fs-uuid --set=root 1afa1241-c56b-4b62-a4df-38df059b1ea0
fi
echo 'Loading Linux 4.10.0-38-generic ...'
        linux /boot/vmlinuz-4.10.0-38-generic root=UUID=1afa1241-c56b-4b62-a4df-38df059b1ea0 ro  quiet splash $vt_handoff
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.10.0-38-generic
}
menuentry 'Linux Mint 18.3 Cinnamon 64-bit, with Linux 4.10.0-38-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.10.0-38-generic-init-upstart-1afa1241-c56b-4b62-a4df-38df059b1ea0' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  1afa1241-c56b-4b62-a4df-38df059b1ea0
else
  search --no-floppy --fs-uuid --set=root 1afa1241-c56b-4b62-a4df-38df059b1ea0
fi
echo 'Loading Linux 4.10.0-38-generic ...'
        linux /boot/vmlinuz-4.10.0-38-generic root=UUID=1afa1241-c56b-4b62-a4df-38df059b1ea0 ro  quiet splash $vt_handoff init=/sbin/upstart
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.10.0-38-generic
}
menuentry 'Linux Mint 18.3 Cinnamon 64-bit, with Linux 4.10.0-38-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.10.0-38-generic-recovery-1afa1241-c56b-4b62-a4df-38df059b1ea0' {
recordfail
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  1afa1241-c56b-4b62-a4df-38df059b1ea0
else
  search --no-floppy --fs-uuid --set=root 1afa1241-c56b-4b62-a4df-38df059b1ea0
fi
echo 'Loading Linux 4.10.0-38-generic ...'
        linux /boot/vmlinuz-4.10.0-38-generic root=UUID=1afa1241-c56b-4b62-a4df-38df059b1ea0 ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.10.0-38-generic
}
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/10_lupin ###
### END /etc/grub.d/10_lupin ###

### 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_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  1afa1241-c56b-4b62-a4df-38df059b1ea0
else
  search --no-floppy --fs-uuid --set=root 1afa1241-c56b-4b62-a4df-38df059b1ea0
fi
knetbsd /boot/memtest86+.elf
}
menuentry 'Memory test (memtest86+, serial console 115200)' {
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  1afa1241-c56b-4b62-a4df-38df059b1ea0
else
  search --no-floppy --fs-uuid --set=root 1afa1241-c56b-4b62-a4df-38df059b1ea0
fi
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 10 (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-9040830C4082F86C' {
insmod part_msdos
insmod ntfs
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  9040830C4082F86C
else
  search --no-floppy --fs-uuid --set=root 9040830C4082F86C
fi
parttool ${root} hidden-
drivemap -s (hd0) ${root}
chainloader +1
}
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
  set timeout=10
fi
### 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 ###

antosha@antosha-Lenovo-B570e ~ $ lsblk -o NAME,SIZE,MOUNTPOINT,UUID
NAME      SIZE MOUNTPOINT                   UUID
sdb       1,9G                              2015-09-23-13-50-43-00
└─sdb1    338M                              F187-5709
sda     465,8G                             
├─sda2  348,6G /media/antosha/8CEE9481EE946 8CEE9481EE94656C
├─sda5   65,4G /                            1afa1241-c56b-4b62-a4df-38df059b1ea0
├─sda3   23,7G                              D640C28840C26EB5
├─sda1    500M                              9040830C4082F86C
└─sda6    7,9G [SWAP]                       c30b8a75-894c-44a8-8f5a-2eace8d889be
sr1       128M                              2012-05-22-06-00-00-00
mmcblk0   3,8G                             
└─mmcblk0p1
          3,8G /media/antosha/MYLINUXLIVE   24C7-3930
две карты памяти, одну SD вторую microSD. Хотя глупо наверно вам говорить, если только новичкам вдруг поможет..
Кстати, я же записал образ AcronisTrueImage на microSD в модеме, это лайв образ с программой для настройки жестких дисков, хотел восстановить структуру своего винчестера ну или что-нибудь что не так чтобы исправилось, так эта программа, кстати как и меню при загрузке с лайв линукса отображается будто у меня видеокарта или дисплей не работают. Хотя вообще ни разу такое не видел на своем ноутбуке. Так я решил написать вам, иначе у меня сейчас не Windows, могу почти на любом шаге сделать непоправимую ошибку. Фото дисплея прилагаю

У меня есть два жестких диска в ноутбуке. На одном установлена Windows 10, а на другом Ubuntu 16. Windows 10 устанавливалась как обновление с Windows 7. Windows 7 была предустановлена на заводе. Ubuntu 16 ставилась на чистый жесткий диск.

Для начала посмотрим, что у нас есть:

$ sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
NAME                    FSTYPE        SIZE MOUNTPOINT LABEL
sda                                 465,8G            
├─sda1                  vfat         19,5G            RECOVERY
├─sda2                  ntfs        445,8G            Windows 10
└─sda3                  ntfs          450M            
sdb                                 232,9G            
├─sdb1                  vfat          512M /boot/efi  
├─sdb2                  ext2          488M /boot      
└─sdb3                  crypto_LUKS 231,9G            
  └─sda3_crypt          LVM2_member 231,9G            
    ├─ubuntu--vg-root   ext4          224G /          
    └─ubuntu--vg-swap_1 swap            8G            
      └─cryptswap1      swap            8G [SWAP]     
sr0                                  1024M            

Тут мы видим два раздела: sdb2 (/boot) и sdb1 (/boot/efi):

$ sudo tree /boot/
/boot/
├── abi-4.4.0-21-generic
├── abi-4.4.0-34-generic
├── config-4.4.0-21-generic
├── config-4.4.0-34-generic
├── efi
│   └── EFI
│       └── ubuntu
│           ├── fw
│           ├── fwupx64.efi
│           ├── grub.cfg
│           ├── grubx64.efi
│           ├── MokManager.efi
│           └── shimx64.efi
├── grub
│   ├── fonts
│   │   └── unicode.pf2
│   ├── grub.cfg
│   ├── grubenv
│   ├── locale
│   │   ├── en_AU.mo
│   │   ├── en_CA.mo
│   │   ├── en_GB.mo
│   │   └── ru.mo
│   ├── unicode.pf2
│   └── x86_64-efi
├── initrd.img-4.4.0-21-generic
├── initrd.img-4.4.0-34-generic
├── lost+found
├── memtest86+.bin
├── memtest86+.elf
├── memtest86+_multiboot.bin
├── System.map-4.4.0-21-generic
├── System.map-4.4.0-34-generic
├── vmlinuz-4.4.0-21-generic
├── vmlinuz-4.4.0-34-generic
└── vmlinuz-4.4.0-34-generic.efi.signed

EFI предназначен для замены BIOS. /boot/efi — это системный загрузочный раздел создаваемый, когда мат. плата ноутбука использует UEFI вместо BIOS (подробнее).

Также я воспользовался скриптом Boot Info Script. Вот его результаты:

                  Boot Info Script 0.61      [1 April 2012]


============================= Boot Info Summary: ===============================

 => Windows is installed in the MBR of /dev/sda.
 => No boot loader is installed in the MBR of /dev/sdb.

sda1: __________________________________________________________________________

    File system:       vfat
    Boot sector type:  Windows 7: FAT32
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        /bootmgr /boot/bcd

sda2: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows Vista/7: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        /bootmgr /Boot/BCD /Windows/System32/winload.exe

sda3: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows Vista/7: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        

sdb1: __________________________________________________________________________

    File system:       vfat
    Boot sector type:  FAT32
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        

sdb2: __________________________________________________________________________

    File system:       ext2
    Boot sector type:  -
    Boot sector info: 
    Operating System:  
    Boot files:        /grub/grub.cfg

sdb3: __________________________________________________________________________

    File system:       crypto_LUKS
    Boot sector type:  Unknown
    Boot sector info: 

ubuntu-vg-root': _______________________________________________________________

    File system:       
    Boot sector type:  Unknown
    Boot sector info: 
    Mounting failed:   mount: unknown filesystem type ''

ubuntu-vg-swap_1': _____________________________________________________________

    File system:       
    Boot sector type:  Unknown
    Boot sector info: 
    Mounting failed:   mount: unknown filesystem type ''
mount: unknown filesystem type ''

Из этого становится ясно, что Windows установлена в MBR на /dev/sda. А /grub/grub.cfg расположен на sdb2.

Узнаем UUID от раздела с меткой «Windows 10»:

$ sudo blkid /dev/sda2
/dev/sda2: LABEL=»Windows 10″ UUID=»8684C04C84C04103″ TYPE=»ntfs» PARTUUID=»76692ca8-02″

Путем экспериментов я выяснил, что в скрипте

/etc/grub.d/40_custom

срабатывает следующее условие:

if [ «${grub_platform}» == «efi» ]; then
fi

И не срабатывает следующее условие:

if [ «${grub_platform}» == «pc» ]; then
fi

Также в ходе одного из экспериментов я получил ошибку:
«/boot/grub/x86_64-efi/ntldr.mod not found»

Следующая команда это подтверждает (подробнее):

$ [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
UEFI

Я не уверен, что Windows 10 у меня установлена в UEFI режиме. Возможно GRUB может загружать только системы установленные в том же режиме, в котором он сам запущен.

Да, действительно Windows работает в устаревшем режиме.

UEFI — это интерфейс между операционной системой и микропрограммами, управляющими низкоуровневыми функциями оборудования. Получается Ubuntu у меня работает с новым UEFI, а Windows с legacy BIOS.

Установим новую загрузочную конфигурацию на диск C: из под Windows:

C:\WINDOWS\system32>bcdboot C:\Windows /s C: /f uefi
Файлы загрузки успешно созданы.

Я пробовал добавить в файл

/etc/grub.d/40_custom

следующую настройку (подробнее), но дальше логотипа Windows 10 загрузка не идет:

menuentry "Windows 10 (BCD-UEFI configuration on system drive /dev/sda2)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod search_fs_uuid
    insmod chain

    set root='hd0,msdos2'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2  8684C04C84C04103
    else
      search --no-floppy --fs-uuid --set=root 8684C04C84C04103
    fi

    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

Вот здесь пишут, что нельзя мешать режимы Windows in BIOS/CSM/legacy mode и Ubuntu in EFI/UEFI mode. И нужно переустанавливать одну из ОС. Или как-то по другому переключаться.

  • EFI Partition vs /boot partition
  • ubuntu appears in BIOS menu (UEFI)
  • https://wiki.debian.org/GrubEFIReinstall 
  • Add Windows 10 to GRUB OS list
  • Trying to dual boot Ubuntu 14.10 with Windows 10, last one not detected
  • https://wiki.debian.org/DualBoot/Windows10
  • Windows installed in UEFI-GPT Mode menu entry
  • Ошибка при загрузки второй ОС через GRUB с Ubuntu 14.04.
  • Installing Ubuntu on a Pre-Installed Windows 10 with UEFI

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Программа драйверов для windows 10 amd
  • Утилита для скачивания оригинальных образов windows
  • Бесконечная перезагрузка windows 10 после обновления
  • Windows 10 ltsc 21р2
  • Как отключить всплывающее окно активации в windows 11