Page 1 of 2 12 LastLast
Results 1 to 10 of 13

Thread: Installing on separate drive from Windows in UEFI

  1. #1

    Question Installing on separate drive from Windows in UEFI

    I've just built a new desktop with two SSDs, one for Windows 8 and the other for OpenSUSE 13.1 (for dual-boot). Unfortunately, GRUB2 refused to install because the drive containing the /boot/efi partition didn't have a GUID Partition Table. Finding no option to create one, I booted back into Windows, shrank its partition, then went back into OpenSUSE install to put my /boot/efi on the newly freed space (after partitioning it to FAT). But the installer still complained of not having a GPT. How can Windows boot from the drive if there's no GPT?

    Is there any way to get this dual-boot to work? And without touching the existing Windows installation if at all possible.

    P.S. I can't set by BIOS to any sort of legacy mode. It's UEFI-only.

  2. #2
    Join Date
    Aug 2010
    Location
    Chicago suburbs
    Posts
    15,064
    Blog Entries
    3

    Default Re: Installing on separate drive from Windows in UEFI

    Something seems amiss here.

    If your system only supports UEFI, and if you have Windows 8 installed, then Windows 8 should be running as a UEFI system. And, in that case, Windows 8 should already be using an EFI partition. You should be able to mount that as "/boot/efi". Opensuse uses very little space on that partition, so there should be enough space there. On my system, it is using around 4M.
    openSUSE Leap 15.2; KDE Plasma 5.18.5;

  3. #3

    Default Re: Installing on separate drive from Windows in UEFI

    You mean the Windows "System Reserved" partition? Or the actual Windows install partition? Mount one of those as /boot/efi?

  4. #4
    Join Date
    Aug 2010
    Location
    Chicago suburbs
    Posts
    15,064
    Blog Entries
    3

    Default Re: Installing on separate drive from Windows in UEFI

    Quote Originally Posted by 3rperson View Post
    You mean the Windows "System Reserved" partition? Or the actual Windows install partition? Mount one of those as /boot/efi?
    Here's the output of "gdisk -l /dev/sda" on my system. "/dev/sda" is the Disk where Windows is installed.

    Code:
    # gdisk -l /dev/sda
    GPT fdisk (gdisk) version 0.8.10
    
    The protective MBR's 0xEE partition is oversized! Auto-repairing.
    
    Partition table scan:
      MBR: protective
      BSD: not present
      APM: not present
      GPT: present
    
    Found valid GPT with protective MBR; using GPT.
    Disk /dev/sda: 1953525168 sectors, 931.5 GiB
    Logical sector size: 512 bytes
    Disk identifier (GUID): 0110ECE8-B04B-4D35-9B90-EE6575DACEFD
    Partition table holds up to 128 entries
    First usable sector is 34, last usable sector is 1953525134
    Partitions will be aligned on 2048-sector boundaries
    Total free space is 953212861 sectors (454.5 GiB)
    
    Number  Start (sector)    End (sector)  Size       Code  Name
       1            2048         1026047   500.0 MiB   EF00  EFI system partition
       2         1026048         1107967   40.0 MiB    FFFF  Basic data partition
       3         1107968         1370111   128.0 MiB   0C01  Microsoft reserved ...
       4         1370112         2394111   500.0 MiB   2700  Basic data partition
       5         2394112       972857343   462.8 GiB   0700  Basic data partition
       6       972857344       973574143   350.0 MiB   2700  
       7      1926782976      1953523119   12.8 GiB    2700  Microsoft recovery ...
    The EFI partition is labelled "EFI system partition" (but I think that's just a label), and has partition code listed as EF00.

    I tried "parted -l /dev/sda" but it seems to ignore the "/dev/sda" and give info for all disks. Here's the section of "parted -l" output that is relevant to "/dev/sda"

    Code:
    Model: ATA WDC WD10EZEX-75Z (scsi)
    Disk /dev/sda: 1000GB
    Sector size (logical/physical): 512B/4096B
    Partition Table: gpt
    Disk Flags: 
    
    Number  Start   End     Size    File system  Name                          Flags
     1      1049kB  525MB   524MB   fat32        EFI system partition          boot
     2      525MB   567MB   41.9MB  fat32        Basic data partition          hidden
     3      567MB   701MB   134MB                Microsoft reserved partition  msftres
     4      701MB   1226MB  524MB   ntfs         Basic data partition          hidden, diag
     5      1226MB  498GB   497GB   ntfs         Basic data partition
     6      498GB   498GB   367MB   ntfs                                       hidden, diag
     7      987GB   1000GB  13.7GB  ntfs         Microsoft recovery partition  hidden, diag
    One difference is that the "parted" output shows the file system type, and it should be "fat" (either "fat32" or "fat16") for the EFI partition.

    I hope that helps you recognize which partition to use.

    In my case, that would be "/dev/sda1" as the EFI partition that should be mounted as "/boot/efi".

    In my case, I actually created an addition EFI partition on the linux disk ("/dev/sdb") and am using that. Different UEFI implementations vary on how they deal with multiple EFI partitions. I used 500M size for "/dev/sdb1" (my additional EFI partition).
    openSUSE Leap 15.2; KDE Plasma 5.18.5;

  5. #5
    Join Date
    Sep 2012
    Posts
    6,367

    Default Re: Installing on separate drive from Windows in UEFI

    Quote Originally Posted by nrickert View Post
    The EFI partition is labelled "EFI system partition" (but I think that's just a label)
    Yes, this is just an (arbitrary) partition name.

    and has partition code listed as EF00
    These codes are meaningless outside of gdisk, so probably just add to confusion for beginners.

    On Windows EFI System Partition is not normally visible, unless explicitly mounted using "mountvol x: /s" where 'x' is arbitrary drive letter. This mount is temporary IIRC (until reboot).

    I tried "parted -l /dev/sda" but it seems to ignore the "/dev/sda" and give info for all disks..
    "parted /dev/sda print"

  6. #6
    Join Date
    Aug 2010
    Location
    Chicago suburbs
    Posts
    15,064
    Blog Entries
    3

    Default Re: Installing on separate drive from Windows in UEFI

    Quote Originally Posted by arvidjaar View Post
    These codes are meaningless outside of gdisk, so probably just add to confusion for beginners.
    I'm pretty sure that "gdisk" translates that to a specific GUID, so it should reflect that the partition has the appropriate GUID for an EFI partition.

    "parted /dev/sda print"
    Thanks.
    openSUSE Leap 15.2; KDE Plasma 5.18.5;

  7. #7

    Default Re: Installing on separate drive from Windows in UEFI

    OK, I've got OpenSUSE installed and booting on my other hard drive. Rather than using custom partitioning from the beginning, I told it to use /dev/sda and then edited the partition setup for /home mounted on my third drive (large mechanical). This created a GPT label on sda and a vfat-formatted /boot/efi partition on it as well. However GRUB2 doesn't have an entry for booting Windows. And even stranger, fdisk reports that /dev/sdb has no GPT and is only old-fashioned MBR, with no MS EFI partition. There were no options for EFI/GPT or MBR in the Windows installation, and I'm using an EFI-only motherboard, so I assumed it was EFI.

    os-prober didn't see Windows, and manually creating a Windows entry for grub with a script in /etc/grub.d with "set root=(hd1,2)" (in the menuentry block, etc) didn't work. Neither did (hd1,1). That's both of the only partitions on sdb. Can GRUB2-EFI even work with a non-GPT Windows install?

    I can still get to both OSes with my BIOS' boot selection, so I suppose it's not critical, but it is inconvenient (and tricky with the short time to hit the F key on BIOS).

  8. #8
    Join Date
    Aug 2010
    Location
    Chicago suburbs
    Posts
    15,064
    Blog Entries
    3

    Default Re: Installing on separate drive from Windows in UEFI

    Quote Originally Posted by 3rperson View Post
    Can GRUB2-EFI even work with a non-GPT Windows install?
    Probably not.

    One option is to switch opensuse to using traditional BIOS booting.

    Yast --> System --> Bootloader

    and then switch to using "grub2" for booting.

    That would probably leave your system able to boot opensuse either in UEFI mode or in traditional BIOS mode (or CSM mode). But you could make BIOS/CSM booting the default, and that should give you a Windows 8 menu entry.
    openSUSE Leap 15.2; KDE Plasma 5.18.5;

  9. #9
    Join Date
    Sep 2012
    Posts
    6,367

    Default Re: Installing on separate drive from Windows in UEFI

    Quote Originally Posted by nrickert View Post
    switch to using "grub2" for booting.
    It may require manually removing EFI boot menu entry for openSUSE with efibootmgr before reboting, otherwise firmware will likely continue to use it. Or setting legacy BIOS as first in boot order.

  10. #10

    Default Re: Installing on separate drive from Windows in UEFI

    Well switching to grub2 (non-efi) didn't break anything with regards to booting OpenSUSE. That still works fine. However os-prober still does not see my Windows install. And my attempt to create my own Windows entry still doesn't work (volume not found error; (hd1,2) is the second partition of the second disk, right?). Perhaps I can do a disk-by-id like the OpenSUSE boot has? I know how to find the Windows drive's ID.

    I also have the output of fdisk for you to consider, since I've got the linux side up to a working state:
    Code:
    >fdisk -l
    WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
    
    
    Disk /dev/sda: 120.0 GB, 120034123776 bytes, 234441648 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: gpt
    
    
    
    
    #         Start          End    Size  Type            Name
     1         2048       321535    156M  EFI System      primary
     2       321536      4530175      2G  Microsoft basic primary
     3      4530176    234440703  109.6G  Microsoft basic primary
    
    
    Disk /dev/sdc: 500.1 GB, 500107862016 bytes, 976773168 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disk label type: dos
    Disk identifier: 0xcf5cf38f
                                                                                                                                                                 
       Device Boot      Start         End      Blocks   Id  System                                                                                               
    /dev/sdc1            2048   734005247   367001600    7  HPFS/NTFS/exFAT                                                                                      
    /dev/sdc2       734005248   976773119   121383936   83  Linux                                                                                                
                                                                                                                                                                 
    Disk /dev/sdb: 120.0 GB, 120034123776 bytes, 234441648 sectors                                                                                               
    Units = sectors of 1 * 512 = 512 bytes                                                                                                                       
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x550169a3
    
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1   *        2048      718847      358400    7  HPFS/NTFS/exFAT
    /dev/sdb2          718848   234029055   116655104    7  HPFS/NTFS/exFAT
    And specifically for /dev/sdb (Windows drive):
    Code:
    >gdisk -l /dev/sdb
    GPT fdisk (gdisk) version 0.8.7
    
    
    Partition table scan:
      MBR: MBR only
      BSD: not present
      APM: not present
      GPT: not present
    
    
    
    
    ***************************************************************
    Found invalid GPT and valid MBR; converting MBR to GPT format
    in memory. 
    ***************************************************************
    
    
    Disk /dev/sdb: 234441648 sectors, 111.8 GiB
    Logical sector size: 512 bytes
    Disk identifier (GUID): 2D3AE360-0DFF-426F-AF36-245425F4E608
    Partition table holds up to 128 entries
    First usable sector is 34, last usable sector is 234441614
    Partitions will be aligned on 2048-sector boundaries
    Total free space is 414573 sectors (202.4 MiB)
    
    
    Number  Start (sector)    End (sector)  Size       Code  Name
       1            2048          718847   350.0 MiB   0700  Microsoft basic data
       2          718848       234029055   111.3 GiB   0700  Microsoft basic data
    Any new ideas for Grub?

Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •