Bug 1110986 - Installer Error on MacBook Pro 2016 - YaST2/clients/inst_disk_proposal.rb failed with 'Storage::Exception'
Installer Error on MacBook Pro 2016 - YaST2/clients/inst_disk_proposal.rb fai...
Status: RESOLVED FIXED
Classification: openSUSE
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: YaST2
Current
Macintosh Other
: P2 - High : Critical (vote)
: ---
Assigned To: YaST Team
Jiri Srain
https://trello.com/c/6m8qFLMj
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2018-10-07 21:36 UTC by Ethan Sherriff
Modified: 2018-11-07 14:52 UTC (History)
4 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
YaST2 Logs (101.35 KB, application/octet-stream)
2018-10-07 21:36 UTC, Ethan Sherriff
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ethan Sherriff 2018-10-07 21:36:06 UTC
Created attachment 785281 [details]
YaST2 Logs

Today I tried to install openSUSE Tumbleweed on my 2016 15" MacBook Pro (MacBookPro13,3) - the installer boots however I cannot get to the screen where I can partition my disk due to an exception.

YaST logs are attached - any help with this would be appreciated as I'm fairly new to linux :)
Comment 1 Stefan Hundhammer 2018-10-10 09:34:52 UTC
The exact error was:

2018-10-07 12:54:41 <1> install(6529) [libstorage] SystemCmd.cc:188 
  SystemCmd Executing:

/bin/mount --read-only '/dev/nvme0n1p3' '/tmp/libstorage-VTguGJ/tmp-mount-l1RUHC'

mount: /tmp/libstorage-VTguGJ/tmp-mount-l1RUHC: unknown filesystem type 'exfat'.


Probed devices (from storage-inst/01-probed.yml):

# 2018-10-07 12:54:33 +0100
---
- disk:
    name: "/dev/nvme0n1"
    size: 488552528 KiB (465.92 GiB)
    block_size: 4 KiB
    io_size: 0 B
    min_grain: 1 MiB
    align_ofs: 0 B
    partition_table: gpt
    partitions:
    - free:
        size: 24 KiB
        start: 0 B
    - partition:
        size: 300 MiB
        start: 24 KiB
        name: "/dev/nvme0n1p1"
        type: primary
        id: esp
        file_system: vfat
        label: EFI
    - partition:
        size: 345703380 KiB (329.69 GiB)
        start: 307224 KiB (300.02 MiB)
        name: "/dev/nvme0n1p2"
        type: primary
        id: linux
    - free:
        size: 20 KiB
        start: 346010604 KiB (329.98 GiB)
    - partition:
        size: 43741 MiB (42.72 GiB)
        start: 337901 MiB (329.98 GiB)
        name: "/dev/nvme0n1p3"
        type: primary
        id: windows_basic_data
        file_system: exfat
        label: OPENSUSE
    - partition:
        size: 128 MiB
        start: 381642 MiB (372.70 GiB)
        name: "/dev/nvme0n1p4"
        type: primary
        id: linux
    - partition:
        size: 94858 MiB (92.63 GiB)
        start: 381770 MiB (372.82 GiB)
        name: "/dev/nvme0n1p5"
        type: primary
        id: windows_basic_data
        file_system: ntfs
        label: Windows 10
    - free:
        size: 1 MiB
        start: 476628 MiB (465.46 GiB)
    - partition:
        size: 472 MiB
        start: 476629 MiB (465.46 GiB)
        name: "/dev/nvme0n1p6"
        type: primary
        id: diag
        file_system: ntfs
    - free:
        size: 1104 KiB (1.08 MiB)
        start: 477101 MiB (465.92 GiB)
- disk:
    name: "/dev/sda"
    size: 0 B
    block_size: 0.5 KiB
    io_size: 0 B
    min_grain: 1 MiB
    align_ofs: 0 B
- disk:
    name: "/dev/sdb"
    size: 0 B
    block_size: 0.5 KiB
    io_size: 0 B
    min_grain: 1 MiB
    align_ofs: 0 B
- disk:
    name: "/dev/sdc"
    size: 7558368 KiB (7.21 GiB)
    block_size: 0.5 KiB
    io_size: 0 B
    min_grain: 1 MiB
    align_ofs: 0 B
    partition_table: gpt
    partitions:
    - free:
        size: 20 KiB
        start: 0 B
    - partition:
        size: 200 MiB
        start: 20 KiB
        name: "/dev/sdc1"
        type: primary
        id: esp
        file_system: vfat
        label: EFI
    - free:
        size: 1004 KiB (0.98 MiB)
        start: 204820 KiB (200.02 MiB)
    - partition:
        size: 7180 MiB (7.01 GiB)
        start: 201 MiB
        name: "/dev/sdc2"
        type: primary
        id: windows_basic_data
        file_system: vfat
        label: OPENSUSE
    - free:
        size: 224 KiB
        start: 7381 MiB (7.21 GiB)
Comment 2 Stefan Hundhammer 2018-10-10 09:44:12 UTC
This happens when the storage proposal checks if any of those partitions is a Windows partition that could be resized:


2018-10-07 12:54:41 <1> install(6529) [Ruby] proposal/space_maker.rb:251 Step 1 - resize_windows!
2018-10-07 12:54:41 <1> install(6529) [Ruby] y2storage/disk_analyzer.rb:207 Checking if /dev/nvme0n1p3 is a windows partition

...trying to mount...

-> Exception / crash


Part of the problem is that we don't have the support packages for ExFAT filesystems in the inst-sys. But even if we did, we don't support resizing FAT / VFAT / ExFAT.
Comment 3 Stefan Hundhammer 2018-10-10 09:51:46 UTC
This should be partially fixed with this pull request:

  https://github.com/yast/yast-storage-ng/pull/741

The full fix will come with fixing bug #1101979 which is scheduled for one of the next sprints.
Comment 4 Stefan Hundhammer 2018-10-10 09:57:44 UTC
We were discussing if there is a pragmatic workaround for your situation right now; in some cases, using the "guided setup" for storage helps because you can disable trying to resize Windows partitions. But in this specific case, it happens already at the first storage proposal before you even have a chance to make that choice.

What you can try to get your installation going is to use another tool for making enough space on your partitions for the Linux installation outside of the Linux installation from the Windows that you have on that machine.

Since we don't have support for resizing ExFAT in our installer, this is what you will have to do anyway: Boot Windows, resize one of the partitions so there is free disk space for installing Linux, then boot from the Linux installation media and install Linux.

Sorry for that, but right now we don't see a better solution.
Comment 5 Josef Reidinger 2018-10-23 13:39:15 UTC
I worry that correct fix is to add support for mounting ExFAT to insts-sys, as we need to know if partition is windows also for its removal.

Ancor: what do you think? That resize can be workarounded but we still need to know if partition is windows to be able to decide if we should kill it.
Comment 6 Ancor Gonzalez Sosa 2018-10-25 08:18:15 UTC
(In reply to Josef Reidinger from comment #5)
> I worry that correct fix is to add support for mounting ExFAT to insts-sys,
> as we need to know if partition is windows also for its removal.
> 
> Ancor: what do you think? That resize can be workarounded but we still need
> to know if partition is windows to be able to decide if we should kill it.

I agree. We must add support for ExFAT to the inst-sys to fix this bug 100%. Of course, it will not improve the situation for already released products like Leap 15.0 or SLE15, but it will improve the support of MacBooks for future versions of (open)SUSE (including future TW snapshots).
Comment 8 Josef Reidinger 2018-10-25 09:09:25 UTC
OK, So lets ask first Ciaran before we start implementing changes.

Ciaran: How do you see inclusion of ExFAT to insts-sys? It should need packages fuse-exfat and exfat-utils - https://build.suse.de/package/view_file/SUSE:Factory:Head/fuse-exfat/fuse-exfat.spec?expand=1 and https://build.suse.de/package/view_file/SUSE:Factory:Head/exfat-utils/exfat-utils.spec?expand=1

Both is in opensuse and not in SLE yet.
Comment 9 Lukas Ocilka 2018-10-30 10:03:12 UTC
We have a fix that allows user to continue (as said in comment #3), but we 
believe the proper fix would be to make sure we can actually mount the extfat
filesystem.

Anyway, not a P1 anymore, just P2 for now.
Comment 10 Josef Reidinger 2018-11-06 13:13:50 UTC
OK, answer is that during next 6 months there will be no decision regarding exfat, so lets just keep it as it is now with error message that allows to continue.
Comment 11 Josef Reidinger 2018-11-07 14:52:40 UTC
after discussion we think that current approach to report that we cannot detect windows there and allow to continue the best we can do now. So lets close it as fixed ( due to other fixes done in area which allows to continue )