fail uefi install to nvme (NVM Express) device

Bug #1471928 reported by Scott Moser
22
This bug affects 4 people
Affects Status Importance Assigned to Milestone
curtin
Fix Released
Medium
Scott Moser
curtin (Ubuntu)
Fix Released
Medium
Unassigned
Trusty
Fix Released
Medium
Unassigned
Vivid
Fix Released
Medium
Unassigned

Bug Description

Attempting install to a system (horsea) that has a NVME device with maas. That failed. Further investigation on the system shows:

# cat /sys/firmware/efi/systab
ACPI20=0x7b7fe014
ACPI=0x7b7fe000
SMBIOS=0x788fb000

# cat /proc/partitions
major minor #blocks name

 259 0 390711384 nvme0n1
 259 3 390185048 nvme0n1p1
 259 4 524288 nvme0n1p15
   8 0 1433600 sda

# /var/lib/cloud/instance/scripts/part-001 info
LABEL='curtin'
PREFIX='curtin'
COMMAND=( 'curtin' 'install' '--config=configs/config-000.cfg' '--config=configs/config-001.cfg' '--config=configs/config-002.cfg' '--config=configs/config-003.cfg' 'http://10.245.168.2:5248/images/ubuntu/amd64/generic/trusty/daily/root-tgz' )
CREATE_TIME='Mon, 06 Jul 2015 18:04:06 +0000'
MD5SUM='2719d56e4392216e995d450f2e800516'

# cd /curtin
# './bin/curtin' --showtrace -vvv 'install' '--config=configs/config-000.cfg' '--config=configs/config-001.cfg' '--config=configs/config-002.cfg' '--config=configs/config-003.cfg' 'http://10.245.168.2:5248/images/ubuntu/amd64/generic/trusty/daily/root-tgz'
Creating new GPT entries.
The operation has completed successfully.
using sys/class/block/nvme0n1
using sys/class/block/nvme0n1
using sys/class/block/nvme0n1
wiping start of '/dev/nvme0n1p1' with size=399549489664 count=1 bs=1048576.
using sys/class/block/nvme0n1
wiping start of '/dev/nvme0n1p15' with size=536870912 count=1 bs=1048576.
mkfs.fat: warning - lowercase labels might not work properly with DOS or Windows
/dev/nvme0n115: No such file or directory
mkfs.fat 3.0.26 (2014-03-07)
failed to partition :' for UEFI vfat
creating partition with: partition --format=uefi /dev/nvme0n1 took 1.139 seconds
Traceback (most recent call last):
  File "/curtin/curtin/commands/main.py", line 96, in main
    sys.exit(args.func(args))
  File "curtin/commands/block_meta.py", line 53, in block_meta
    meta_simple(args)
  File "curtin/commands/block_meta.py", line 211, in meta_simple
    util.subp, ptcmd)
  File "curtin/commands/block_meta.py", line 60, in logtime
    return func(*args, **kwargs)
  File "curtin/util.py", line 96, in subp
    return _subp(*args, **kwargs)
  File "curtin/util.py", line 67, in _subp
    cmd=args)
ProcessExecutionError: Unexpected error while running command.
Command: ['partition', '--format=uefi', '/dev/nvme0n1']
Exit code: 1
Reason: -
Stdout: ''
Stderr: ''
Unexpected error while running command.
Command: ['partition', '--format=uefi', '/dev/nvme0n1']
Exit code: 1
Reason: -
Stdout: ''
Stderr: ''
builtin command failed
builtin took 1.379 seconds
stage_partitioning took 1.379 seconds
Installation failed with exception: Unexpected error while running command.
Command: ['curtin', 'block-meta', 'simple']
Exit code: 3
Reason: -
Stdout: 'Running command [\'lsblk\', \'--noheadings\', \'--bytes\', \'--pairs\', \'--output=ALIGNMENT,DISC-ALN,DISC-GRAN,DISC-MAX,DISC-ZERO,FSTYPE,GROUP,KNAME,LABEL,LOG-SEC,MAJ:MIN,MIN-IO,MODE,MODEL,MOUNTPOINT,NAME,OPT-IO,OWNER,PHY-SEC,RM,RO,ROTA,RQ-SIZE,SIZE,STATE,TYPE,UUID\', \'--nodeps\'] with allowed return codes [0] (shell=False, capture=True)\nRunning command [\'lsblk\', \'--noheadings\', \'--bytes\', \'--pairs\', \'--output=ALIGNMENT,DISC-ALN,DISC-GRAN,DISC-MAX,DISC-ZERO,FSTYPE,GROUP,KNAME,LABEL,LOG-SEC,MAJ:MIN,MIN-IO,MODE,MODEL,MOUNTPOINT,NAME,OPT-IO,OWNER,PHY-SEC,RM,RO,ROTA,RQ-SIZE,SIZE,STATE,TYPE,UUID\', \'/dev/sda\'] with allowed return codes [0] (shell=False, capture=True)\nRunning command [\'lsblk\', \'--noheadings\', \'--bytes\', \'--pairs\', \'--output=ALIGNMENT,DISC-ALN,DISC-GRAN,DISC-MAX,DISC-ZERO,FSTYPE,GROUP,KNAME,LABEL,LOG-SEC,MAJ:MIN,MIN-IO,MODE,MODEL,MOUNTPOINT,NAME,OPT-IO,OWNER,PHY-SEC,RM,RO,ROTA,RQ-SIZE,SIZE,STATE,TYPE,UUID\', \'/dev/nvme0n1\'] with allowed return codes [0] (shell=False, capture=True)\n\'simple\' mode, no devices given. unused list: [\'nvme0n1\']\ninstalling in \'simple\' mode to \'nvme0n1\'\nRunning command [\'partition\', \'--format=uefi\', \'/dev/nvme0n1\'] with allowed return codes [0] (shell=False, capture=False)\nwiping start of \'/dev/nvme0n1\' with size=400088457216 count=1 bs=1048576.\nwiping end of \'/dev/nvme0n1\' with size=400088457216 count=256 bs=4096 seek=97677590.\nmaxend=781420720 end=781420720 size=400088457216\nCreating new GPT entries.\nThe operation has completed successfully.\nusing sys/class/block/nvme0n1\nusing sys/class/block/nvme0n1\nusing sys/class/block/nvme0n1\nwiping start of \'/dev/nvme0n1p1\' with size=399549489664 count=1 bs=1048576.\nusing sys/class/block/nvme0n1\nwiping start of \'/dev/nvme0n1p15\' with size=536870912 count=1 bs=1048576.\nmkfs.fat: warning - lowercase labels might not work properly with DOS or Windows\n/dev/nvme0n115: No such file or directory\nmkfs.fat 3.0.26 (2014-03-07)\nfailed to partition :\' for UEFI vfat\ncreating partition with: partition --format=uefi /dev/nvme0n1 took 1.139 seconds\nTraceback (most recent call last):\n File "/curtin/curtin/commands/main.py", line 96, in main\n sys.exit(args.func(args))\n File "curtin/commands/block_meta.py", line 53, in block_meta\n meta_simple(args)\n File "curtin/commands/block_meta.py", line 211, in meta_simple\n util.subp, ptcmd)\n File "curtin/commands/block_meta.py", line 60, in logtime\n return func(*args, **kwargs)\n File "curtin/util.py", line 96, in subp\n return _subp(*args, **kwargs)\n File "curtin/util.py", line 67, in _subp\n cmd=args)\nProcessExecutionError: Unexpected error while running command.\nCommand: [\'partition\', \'--format=uefi\', \'/dev/nvme0n1\']\nExit code: 1\nReason: -\nStdout: \'\'\nStderr: \'\'\nUnexpected error while running command.\nCommand: [\'partition\', \'--format=uefi\', \'/dev/nvme0n1\']\nExit code: 1\nReason: -\nStdout: \'\'\nStderr: \'\'\n'
Stderr: ''
Success
powering off with ['sh', '-c', 'sleep "$1" && shift; [ -f /run/block-curtin-poweroff ] && exit 0; exec "$@"', 'curtin-poweroff', '5', 'shutdown', '-r', 'now']
Running command ['sh', '-c', 'sleep "$1" && shift; [ -f /run/block-curtin-poweroff ] && exit 0; exec "$@"', 'curtin-poweroff', '5', 'shutdown', '-r', 'now'] with allowed return codes [0] (shell=False, capture=False)

Simplified, that looks like:
# ./helpers/partition --format=uefi /dev/nvme0n1
Creating new GPT entries.
The operation has completed successfully.
mkfs.fat 3.0.26 (2014-03-07)
mkfs.fat: warning - lowercase labels might not work properly with DOS or Windows
/dev/nvme0n115: No such file or directory
failed to partition :' for UEFI vfat

This is related to bug 1401190, but that bug did fix it for many/most paths.
This bug is specific to uefi remaining case.

Related Bugs:
 * bug 1401190: curtin makes assumptions about partition names on all devices

Scott Moser (smoser)
Changed in curtin:
status: New → Confirmed
importance: Undecided → Medium
Revision history for this message
Scott Moser (smoser) wrote :

fix committed in revno 222

Changed in curtin:
assignee: nobody → Scott Moser (smoser)
status: Confirmed → Fix Committed
Revision history for this message
Matt Dirba (5qxm) wrote :

Is there a workaround I can do for maas 1.8 and curtain-common 0.1.0? Something like a preseed command that hides the name device from the installer.

Scott Moser (smoser)
Changed in curtin (Ubuntu):
status: New → Fix Released
importance: Undecided → Medium
Changed in curtin (Ubuntu Trusty):
status: New → Confirmed
importance: Undecided → Medium
Changed in curtin (Ubuntu Vivid):
status: New → Confirmed
importance: Undecided → Medium
Revision history for this message
Chris J Arges (arges) wrote : Please test proposed package

Hello Scott, or anyone else affected,

Accepted curtin into trusty-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/curtin/0.1.0~bzr227-0ubuntu1~14.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in curtin (Ubuntu Trusty):
status: Confirmed → Fix Committed
tags: added: verification-needed
Changed in curtin (Ubuntu Vivid):
status: Confirmed → Fix Committed
Revision history for this message
Chris J Arges (arges) wrote :

Hello Scott, or anyone else affected,

Accepted curtin into vivid-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/curtin/0.1.0~bzr227-0ubuntu1~14.10.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Revision history for this message
Jorge Niedbalski (niedbalski) wrote :

Verified that 0.1.0~bzr227-0ubuntu1~14.10.1 works correctly on Trusty

tags: added: verification-done
removed: verification-needed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package curtin - 0.1.0~bzr227-0ubuntu1~14.04.1

---------------
curtin (0.1.0~bzr227-0ubuntu1~14.04.1) trusty-proposed; urgency=medium

  * New upstream snapshot.
    - fix uefi install path on nvme devices (LP: #1471928)
    - tools/maas2roottar: (development only tool) exit failure when missing
      dependency (LP: #1466099).
    - partition: leave space for secondary gpt header when creating mbr disks.
    - partition: when a second partition is created, assert its existance.
    - partition: when second partition is created, wipe fs info.
    - kernel command line: prefer the --- over -- to indicate that subsequent
      arguments should be copied to installed system. (LP: #1402042)

 -- Scott Moser <email address hidden> Tue, 22 Sep 2015 12:02:08 -0400

Changed in curtin (Ubuntu Trusty):
status: Fix Committed → Fix Released
Revision history for this message
Chris J Arges (arges) wrote : Update Released

The verification of the Stable Release Update for curtin has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package curtin - 0.1.0~bzr227-0ubuntu1~14.10.1

---------------
curtin (0.1.0~bzr227-0ubuntu1~14.10.1) vivid-proposed; urgency=medium

  * New upstream snapshot.
    - fix uefi install path on nvme devices (LP: #1471928)
    - tools/maas2roottar: (development only tool) exit failure when missing
      dependency (LP: #1466099).
    - partition: leave space for secondary gpt header when creating mbr disks.
    - partition: when a second partition is created, assert its existance.
    - partition: when second partition is created, wipe fs info.
    - kernel command line: prefer the --- over -- to indicate that subsequent
      arguments should be copied to installed system. (LP: #1402042)

 -- Scott Moser <email address hidden> Tue, 22 Sep 2015 12:21:28 -0400

Changed in curtin (Ubuntu Vivid):
status: Fix Committed → Fix Released
Revision history for this message
Scott Moser (smoser) wrote : Fixed in Curtin 17.1

This bug is believed to be fixed in curtin in 17.1. If this is still a problem for you, please make a comment and set the state back to New

Thank you.

Changed in curtin:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.