You are not logged in.

#1 2018-02-18 12:57:59

mhi
Member
Registered: 2018-02-18
Posts: 6

[SOLVED] Win10 + Arch Dualboot with GRUB. UEFI, separate disks.

My setup is following:

Machine is Lenovo Thinkpad T420

Disks:

mhi@mhi $ lsblk                                                                                                                                                    
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk
├─sda1   8:1    0    16M  0 part
└─sda2   8:2    0 465.8G  0 part
sdb      8:16   0 111.8G  0 disk
├─sdb1   8:17   0   550M  0 part /boot/efi
├─sdb2   8:18   0    40G  0 part /
└─sdb3   8:19   0  71.3G  0 part /home

/dev/sda - 500Gb HDD in the main disk tray with 64bit Win10 installed
/dev/sdb - 120Gb SSD installed instead of CD drive, with fresh-y 64 bit Arch install.

Both drives are gpt partitioned:

mhi@mhi $ sudo parted -l                                                                                                                           
Model: ATA ST9500325AS (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name                          Flags
1      1049kB  17.8MB  16.8MB               Microsoft reserved partition  msftres
2      17.8MB  500GB   500GB   ntfs         Basic data partition          msftdata


Model: ATA KINGSTON SV300S3 (scsi)
Disk /dev/sdb: 120GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
1      1049kB  578MB   577MB   fat32              boot, esp
2      578MB   43.5GB  42.9GB  ext4
3      43.5GB  120GB   76.5GB  ext4

So what I want to achieve is a GRUB boot menu entry allowing me to boot into windows without changing bootloader order in BIOS setup.

Two ways of doing so that I'm aware of:

1) Using ntldr and pointing it to bootmgr at the root of Windows partition: bootmgr executable is there, but this approach does not work with x86_64 GRUB as far as I know. I could not insmod ntldr when I tried this way.
2) Chainloading Windows EFI bootloader, as described in GRUB article from archwiki: https://wiki.archlinux.org/index.php/GR … menu_entry

But here I start encountering weird stuff:

1) There is not esp partition of /dev/sda, there's only windows recovery of 16M and main Windows partition
2) no /efi/... structure at the root of Windows partition:

mhi@mhi $ ll /mnt/win
total 5537933
drwxrwxrwx 1 root root       4096 Feb 18 12:24  ./
drwxr-xr-x 5 root root       4096 Feb 17 01:23  ../
-rwxrwxrwx 1 root root     400228 Oct 30  2015  bootmgr*
-rwxrwxrwx 1 root root          1 Oct 30  2015  BOOTNXT*
lrwxrwxrwx 2 root root         14 Feb 18  2018 'Documents and Settings' -> /mnt/win/Users/
-rwxrwxrwx 1 root root 3388678144 Feb 18 14:12  hiberfil.sys*
drwxrwxrwx 1 root root          0 Feb 18 12:08  Intel/
drwxrwxrwx 1 root root          0 Feb 18 12:16  NVIDIA/
-rwxrwxrwx 1 root root 2013265920 Feb 18 13:53  pagefile.sys*
drwxrwxrwx 1 root root          0 Oct 30  2015  PerfLogs/
drwxrwxrwx 1 root root       4096 Feb 18 12:21  ProgramData/
drwxrwxrwx 1 root root       8192 Feb 18 12:13 'Program Files'/
drwxrwxrwx 1 root root       4096 Feb 18 12:23 'Program Files (x86)'/
drwxrwxrwx 1 root root          0 Feb 18  2018  Recovery/
drwxrwxrwx 1 root root          0 Feb 18 12:06 '$Recycle.Bin'/
-rwxrwxrwx 1 root root  268435456 Feb 18 13:53  swapfile.sys*
drwxrwxrwx 1 root root       4096 Feb 18 13:40 'System Volume Information'/
drwxrwxrwx 1 root root       4096 Feb 18 12:22  Users/
drwxrwxrwx 1 root root      28672 Feb 18 13:33  Windows/

At this point I start to doubt that Windows indeed boots as UEFI.
But I have UEFI only set in BIOS, Windows boots perfectly by itself, and there's this log file:

mhi@mhi $ cat /mnt/win/Windows/Panther/setupact.log | grep Callback_BootEnvironmentDetect                                                             
2018-02-18 08:20:25, Info                  IBS    Callback_BootEnvironmentDetect:FirmwareType 2.
2018-02-18 08:20:25, Info                  IBS    Callback_BootEnvironmentDetect: Detected boot environment: EFI

What's even more convincing is the fact that if I delete/move the bootmgr executable from root of Windows partition, Windows still boots perfectly.

So, I'm a bit at a loss.

Last edited by mhi (2018-02-18 14:33:26)

Offline

#2 2018-02-18 14:32:56

mhi
Member
Registered: 2018-02-18
Posts: 6

Re: [SOLVED] Win10 + Arch Dualboot with GRUB. UEFI, separate disks.

Ok, a bit of extensive googling on windows side of things and re-reading the GRUB wiki page gave me this:

EFI partition is present, and somehow is hidden within windows partition. The menu entry I needed was automatically generated after I installed os-prober package and re-generated GRUB config.

Offline

Board footer

Powered by FluxBB