Opened 6 years ago

Last modified 5 years ago

#15020 new bug

did not find any boot partition with 2 disks attached

Reported by: diver Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: System Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

hrev53081 x86_64 in VMware 15.0.4.

Haiku books ok with one nvme disk attached, however once I add my 20GB data disk haiku panics with "did not find any boot partition".

Attaching it as ide (instead of nvme) allows Haiku to boot and see both disks.

Attachments (2)

syslog (132.5 KB ) - added by diver 5 years ago.
vmware.log (232.1 KB ) - added by diver 5 years ago.

Download all attachments as: .zip

Change History (17)

comment:1 by waddlesplash, 6 years ago

Almost certainly a dupe of #14475 -- also occurs under SATA when there is a BFS partition on said disk, it seems.

comment:2 by waddlesplash, 6 years ago

Please retest after hrev53082.

comment:3 by CodeforEvolution, 6 years ago

I found this same sort of behavior too under Virtualbox with a version beyond hrev53082, except I was mounting two nvme devices for data storage, and only one would show up as mountable when booting Haiku from its own device under SATA. Looking at the driver, does this have to do with the lack of multiple nvme namespaces support?

comment:4 by waddlesplash, 6 years ago

Possibly, but that would be strange, as my understanding is that NVMe namespaces are supposed to be modifiable by the operating system. So if VirtualBox exposed each disk as its own namespace, this would kind of defeat the entire purpose of namespaces in NVMe.

comment:5 by waddlesplash, 6 years ago

I also note that VirtualBox's NVMe support is unacceptably broken: https://twitter.com/waddlesplash/status/1118710794831781888

So it may be that the drive is really there, in /dev/disk/nvme, and we simply are not exposing it.

comment:6 by diver, 6 years ago

Just tried again with hrev53092 and got the same "did not find any boot partition" error.

comment:7 by waddlesplash, 6 years ago

Component: Drivers/Disk/NVMeSystem
Owner: changed from waddlesplash to nobody
Summary: [nvme] did not find any boot partition with 2 disks attacheddid not find any boot partition with 2 disks attached

According to diver on IRC, occurs with other disk types too. So this is probably not an NVMe bug.

comment:8 by tqh, 6 years ago

Is this UEFI booting?

comment:9 by diver, 6 years ago

Nope.

comment:10 by diver, 6 years ago

Judging from syslog, only one disk is found which happen to be my data disk.

comment:11 by waddlesplash, 6 years ago

You still have not attached the syslog. I keep saying I can't debug this without it.

by diver, 5 years ago

Attachment: syslog added

comment:12 by diver, 5 years ago

Tried again with hrev53313+1. This time around Haiku booted but didn't detect my data virtual disk.

comment:13 by diver, 5 years ago

grep -i nvme Virtual\ Machines.localized/Haiku64.vmwarevm/Haiku64.vmx

bios.hddOrder = "nvme0:0"
nvme0.present = "TRUE"
nvme0:0.fileName = "Virtual Disk.vmdk"
nvme0:0.present = "TRUE"
nvme0:0.redo = ""
nvme0.pciSlotNumber = "160"
nvme0:1.fileName = "Virtual Disk 2.vmdk"
nvme0:1.present = "TRUE"
nvme0:1.redo = ""

comment:14 by diver, 5 years ago

grep -i nvme Virtual\ Machines.localized/Haiku64.vmwarevm/vmware.log

2019-07-31T19:23:27.662+03:00| vmx| I125: DICT             bios.hddOrder = "nvme0:0"
2019-07-31T19:23:27.662+03:00| vmx| I125: DICT             nvme0.present = "TRUE"
2019-07-31T19:23:27.662+03:00| vmx| I125: DICT          nvme0:0.fileName = "Virtual Disk.vmdk"
2019-07-31T19:23:27.662+03:00| vmx| I125: DICT           nvme0:0.present = "TRUE"
2019-07-31T19:23:27.662+03:00| vmx| I125: DICT              nvme0:0.redo = ""
2019-07-31T19:23:27.662+03:00| vmx| I125: DICT       nvme0.pciSlotNumber = "160"
2019-07-31T19:23:27.662+03:00| vmx| I125: DICT          nvme0:1.fileName = "Virtual Disk 2.vmdk"
2019-07-31T19:23:27.662+03:00| vmx| I125: DICT           nvme0:1.present = "TRUE"
2019-07-31T19:23:27.673+03:00| vmx| I125: nvmeShared size: 2896, numAdapters: 1
2019-07-31T19:23:27.698+03:00| vmx| I125: vmm64-modules: [vmm.vmm64, vprobe-none.vmm64, hv-vt.vmm64, gphys-ept.vmm64, callstack-none.vmm64, vmce-vmce.vmm64, viommu-none.vmm64, gi-none.vmm64, nvme-nvme.vmm64, !nvmeShared=0x0, !e1000Shared=0xb80, !theIOSpace=0x1a40, !ttGPPerVcpu=0x6dc0, {UseUnwind}=0x0, numVCPUsAsAddr=0x2, {SharedAreaReservations}=0x6e00, {rodataSize}=0x1e75f, {textAddr}=0xfffffffffc000000, {textSize}=0x7f10e, <MonSrcFile>]
2019-07-31T19:23:27.761+03:00| vmx| A100: ConfigDB: Setting nvme0:0.redo = ""
2019-07-31T19:23:27.761+03:00| worker-20818161| A100: ConfigDB: Setting nvme0:1.redo = ""
2019-07-31T19:23:27.761+03:00| worker-20818161| I125: DISK: OPEN nvme0:1 '/Users/diver/Virtual Machines.localized/Haiku64.vmwarevm/Virtual Disk 2.vmdk' persistent R[]
2019-07-31T19:23:27.761+03:00| vmx| I125: DISK: OPEN nvme0:0 '/Users/diver/Virtual Machines.localized/Haiku64.vmwarevm/Virtual Disk.vmdk' persistent R[]
2019-07-31T19:23:27.764+03:00| worker-20818161| I125: DISK: DiskConfigureVirtualSSD:  Disk 'nvme0:1' identified as Virtual SSD device.
2019-07-31T19:23:27.764+03:00| vmx| I125: DISK: DiskConfigureVirtualSSD:  Disk 'nvme0:0' identified as Virtual SSD device.
2019-07-31T19:23:27.765+03:00| vmx| I125: DISK: AdapterType mismatch for 'nvme0:1': disk was created for ide
2019-07-31T19:23:28.246+03:00| vmx| I125: NVME-CORE: Doing a full reset of controller regs and queues.
2019-07-31T19:23:28.246+03:00| vmx| I125: NVME-CORE:Successfully created adapter 'nvme0' as num 0
2019-07-31T19:23:28.246+03:00| vmx| I125: NVME-CORE:Creating Hard Disk (devIdx:0) on NVME adapter.
2019-07-31T19:23:28.246+03:00| vmx| I125: SCSI DEVICE (nvme0:0): Computed value of nvme0:0.useBounceBuffers: default
2019-07-31T19:23:28.246+03:00| vmx| I125: DISKUTIL: nvme0:0 : capacity=20971520 logical sector size=512
2019-07-31T19:23:28.246+03:00| vmx| I125: DISKUTIL: nvme0:0 : geometry=1305/255/63
2019-07-31T19:23:28.246+03:00| vmx| I125: NVME-CORE:Successfully created device: nvme0:0
2019-07-31T19:23:28.246+03:00| vmx| I125: NVME-CORE:Creating Hard Disk (devIdx:1) on NVME adapter.
2019-07-31T19:23:28.246+03:00| vmx| I125: SCSI DEVICE (nvme0:1): Computed value of nvme0:1.useBounceBuffers: default
2019-07-31T19:23:28.246+03:00| vmx| I125: DISKUTIL: nvme0:1 : capacity=41943040 logical sector size=512
2019-07-31T19:23:28.246+03:00| vmx| I125: DISKUTIL: nvme0:1 : geometry=41610/16/63
2019-07-31T19:23:28.246+03:00| vmx| I125: NVME-CORE:Successfully created device: nvme0:1
2019-07-31T19:23:28.294+03:00| vmx| I125: OvhdMem OvhdUser_NVMEBIOS                   :       2      2      - |      0      0      -
2019-07-31T19:23:28.295+03:00| vmx| I125: OvhdMem OvhdMon_Nvme                        :       0      0      - |      0      0      -
2019-07-31T19:23:28.295+03:00| vmx| I125: OvhdMem OvhdMon_NVMERings                   :       0      0      - |      0      0      -
2019-07-31T19:23:28.310+03:00| vcpu-0| I125: DISKUTIL: nvme0:0 : capacity=20971520 logical sector size=512
2019-07-31T19:23:28.310+03:00| vcpu-0| I125: DISKUTIL: nvme0:1 : capacity=41943040 logical sector size=512
2019-07-31T19:23:28.581+03:00| vcpu-0| I125: NVME-PCI: PCI reset on controller nvme0.
2019-07-31T19:23:28.581+03:00| vcpu-0| I125: NVME-CORE: Doing a full reset of controller regs and queues.
2019-07-31T19:23:34.971+03:00| vcpu-0| I125: NVME-VMM: Controller level reset via CC.EN bit transition on nvme0
2019-07-31T19:23:34.971+03:00| vcpu-0| I125: NVME-CORE: Doing a partial reset of controller regs and queues.
2019-07-31T19:33:11.409+03:00| vmx| I125: Cfg2HP: Unknown class nvmeCtlr
2019-07-31T19:33:11.409+03:00| vmx| I125: Cfg2HP: Unknown class nvmeDev
2019-07-31T19:33:11.409+03:00| vmx| I125: Cfg2HP: Unknown class nvmeDev
2019-07-31T19:33:11.410+03:00| vmx| I125: Cfg2HP: Unknown class nvmeCtlr
2019-07-31T19:33:11.410+03:00| vmx| I125: Cfg2HP: Unknown class nvmeDev
2019-07-31T19:33:11.410+03:00| vmx| I125: Cfg2HP: Unknown class nvmeDev

by diver, 5 years ago

Attachment: vmware.log added

in reply to:  3 comment:15 by diver, 5 years ago

Replying to CodeforEvolution:

I found this same sort of behavior too under Virtualbox with a version beyond hrev53082, except I was mounting two nvme devices for data storage, and only one would show up as mountable when booting Haiku from its own device under SATA. Looking at the driver, does this have to do with the lack of multiple nvme namespaces support?

There were some changes in VirtualBox 6.1 (c.f. https://www.virtualbox.org/wiki/Changelog-6.1)

ACPI: Report NVMe controller
EFI: Added support for non-standard SATA and NVMe boot device paths created by OS X
Note: See TracTickets for help on using tickets.