Как в grub добавить windows 10
У меня есть два жестких диска в ноутбуке. На одном установлена 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 срабатывает следующее условие:
И не срабатывает следующее условие:
Также в ходе одного из экспериментов я получил ошибку:
«/boot/grub/x86_64-efi/ntldr.mod not found»
How can I add a new Windows 10 into grub, and have grub act as my primary bootloader?
I currently have three different Storage Devices: 1 NVMe SSD that (by definition) is on my motherboard, and 2 SSDs connected by two different SATA cables to my motherboard. I would like to install Windows 10 on the NVMe, Ubuntu on one of the two SSDs, and another copy of Windows 10 on the other of the two SSDs. I would like to know if it is possible that, after installing everything, I can be greeted by a grub screen that asks which OS I want to load into, and it displays my three options, and I click on the operating system of my choosing to be instantly loaded into it. I ask because I have tried, and failed, to do this. I installed Windows 10 on the NVMe, then Windows 10 on one internal SSD, then Ubuntu on the other, but I keep being greeted by a Windows screen asking me to choose a SSD to load Windows from. — Personal Note I would appreciate an easy step-by-step if it exists. I am debugging-exhausted. Lost all of my data on my phone and computer, tried to recover them for a week straight and nothing. I would really, really love something that is clear and will carry me through without much difficulty, if it exists. Thanks for anything regardless
asked Jun 13, 2022 at 14:33
John Lexus John Lexus
353 1 1 gold badge 3 3 silver badges 15 15 bronze badges
Windows always combines boot into one ESP (or back with old BIOS one boot partition) and then BCD has the multiple boot choice. You need to partition in advance with gpt partitioning & ESP on every drive. Then either disconnect other drives or in UEFI settings disable drives. You may be able to temporarily remove ESP flags, so other drives not seen as bootable. Grub only boots working Windows and even Windows may have issues if one Windows sets hibernation & other is not. So make sure Windows fast start up is off.
Как добавить windows 10 в меню загрузки grub?
На ssd стояла windows 10.
Разбил hdd под установку linux mint, но после его установки загружалась только windows 10. Решил это чистой установкой Linux, установщик разбил диск как ему надо. Как итог linux грузится, windows 10 — нет, и кроме того не могу войти в настройки bios: меню загрузки там пустое, bios setup не открывается.
В меню загрузки grub есть только linux.
Есть ли способ добавить windows в меню загрузчика grub, как убедиться, что она сможет запуститься, и это не убьет работающий Linux?
Grub выглядит так:
По команде 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"
При выборе — error: invalid EFI file path.
ps. Если бы была возможность зайти в bios, с удовольствием бы снес все и накатил заново винду (или восстановил с загрузочной флешки). С проблемой столкнулся не впервые, но в прошлый раз пришлось прибегнуть к прошивке bios на программаторе. Хотелось бы обойтись без такой хирургии, тк не желательно отдавать ноут на несколько дней.
- Вопрос задан более трёх лет назад
- 24626 просмотров
2 комментария
Простой 2 комментария
How to add Windows 10 to grub boot loader?
Also, I have tried to change grub config with this answer https://askubuntu.com/questions/661947/add-windows-10-to-grub-os-list#answer-977251 — But in this case, There is Windows 10 — but when I chose — I will recursively going to grub
And with this answer https://askubuntu.com/questions/661947/add-windows-10-to-grub-os-list#answer-890562 I have an error message when chose Windows 10 — There is no bootmgr directory
Thanks @Kinnectus for help
Also, I have tried
sudo os-prober
/dev/sda1:FreeDOS:FreeDOS:chain /dev/sda2:FreeDOS:FreeDOS1:chain
And then I have tried
sudo update-grub
Generating grub configuration file . Found linux image: /boot/vmlinuz-4.10.0-38-generic Found initrd image: /boot/initrd.img-4.10.0-38-generic Found memtest86+ image: /boot/memtest86+.elf Found memtest86+ image: /boot/memtest86+.bin Found FreeDOS on /dev/sda1 Found FreeDOS on /dev/sda2 done
Unfortunately — there is not Windows 10 in grub menu
Also, I have fdisk output.
Device Boot Start End Sectors Size Id Type /dev/sda1 2048 16779263 16777216 8G c W95 FAT32 (LBA) /dev/sda2 * 16779264 33556479 16777216 8G c W95 FAT32 (LBA) /dev/sda3 33556480 770219115 736662636 351,3G 7 HPFS/NTFS/exFAT /dev/sda4 770220030 976771071 206551042 98,5G 5 Extended /dev/sda5 770220032 976771071 206551040 98,5G 83 Linux Partition 4 does not start on physical sector boundary.
There is an issue. Maybe the problem is with this issue?
Please, help me, I am stucking with this a whole day. I completely have no idea, what am I doing wrong.