[Bug 1767527] Re: [18.04] Installation boot failure. WARNING: invalid line in /etc/crypttab

TJ ubuntu at iam.tj
Sat Apr 28 09:20:31 UTC 2018


Dylan: I've updated the bug description to describe the situation as we
left it.

There is a test I'd like you to do which involves forcing a break in
initrd processing and dropping to the shell before the cryptsetup
prompt.

Once there I'd like you to verify the NVME device is visible along with
the UUIDs. I'm wondering if the scripts are so dumb that they don't
check for the presence of the underlying block device (with UUID
98c2ce02-6cb1-4a2d-a086-1e8cf78a3c58 a.k.a. partition #3) before
prompting you for the passphrase.

At boot-time interrupt GRUB by tapping the Esc key to get the GRUB boot
menu. There, highlight the default (top) entry and press 'e' to edit it.
Navigate down to the line beginning "linux ..." (the kernel command-
line) and add to it "break=premount" then press Ctrl+X (or F10) to boot
with that change.

That should lead to an initramfs busybox shell command-line.

Note: other possible break=XXX values are:

$ grep maybe_break /usr/share/initramfs-tools/init 
maybe_break top
maybe_break modules
maybe_break premount
maybe_break mount
maybe_break mountroot
maybe_break bottom
maybe_break init

Once in the shell check the device is known with some or all of these
commands and any others you can think of (busybox is limited and
additional tools you'd expect in the full install won't be available):

blkid
ls -l /dev/disk/by-*/
ls -l /dev/mapper/

You can also attempt to manually unlock using:

cryptsetup open --type=luks /dev/nvme0n1p3 luks-
98c2ce02-6cb1-4a2d-a086-1e8cf78a3c58

(set the /dev/nvme0n1p3 underlying device path to whatever your
exploration has found, including possibly "/dev/disk/by-
uuid/98c2ce02-6cb1-4a2d-a086-1e8cf78a3c58" )

If that works (or fails) the resulting messages might be important so be
prepared to photograph them.

If it works, then you will see the new node ("luks-
98c2ce02-6cb1-4a2d-a086-1e8cf78a3c58") with

ls -l /dev/mapper/

And now, if this hasn't already happened automatically via udev, you
should be able to force LVM discovery of ubuntu-vg with

vgchange -ay

At this point if "ls -l /dev/mapper/" now does show a luks-
98c2ce02-6cb1-4a2d-a086-1e8cf78a3c58 node you can try to continue the
boot by pressing Ctrl+D or typing "exit". If those don't help then re-
running the entire script might be possible instead using

exec /init

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to cryptsetup in Ubuntu.
https://bugs.launchpad.net/bugs/1767527

Title:
  [18.04] Installation boot failure. WARNING: invalid line in
  /etc/crypttab

Status in cryptsetup:
  In Progress
Status in cryptsetup package in Ubuntu:
  In Progress

Bug description:
  I worked with "TJ-" on Ubuntu IRC (#ubuntu) on April 27th in order to
  debug this. On a new Ubuntu 18.04 installation, it is not possible to
  decrypt the volume when it's installed on an NVMe device with the
  encryption selected. Changing the device-mapper name to the luks-$UUID
  format apparently did something to correct it, but there's still
  something else going on.

  --- update from Tj ---

  Dylan repeatedly installed 18.04 Desktop setting up F.D.E. with
  (originally) a complex passphrase but later also a simple (all ASCII)
  phrase.

  At boot-time the installed system fails to unlock the device during
  initial ramdisk processing, getting stuck in a loop and seemingly
  never dropping to the shell for user diagnosis and correction.

  Original messages (copied from the attached photo):

  Please unlock disk nvme0n1p3_crypt: <--- types passphrase
    Volume group "ubuntu-vg" not found
    Cannot process volume group ubuntu-vg
  device-mapper: reload ioctl on      failed: invalid argument  <--- note multiple space gap
  Failed to setup dm-crypt key mapping for device /dev/disk/by-uuid/4bdade98-fdbe-4a9e-b287-283b4c52c1a0.
  Check that kernel supports aes-xts-plain64 cipher (check syslog for more info).

  The volume is accessible from the Try Ubuntu session (unlocks
  correctly).

  My [Tj] suspicion was a keyboard mapping issue or initrd.img missing
  required kernel modules for cryptographic functions.

  We used a chroot environment to investigate and added "set -x" to the
  start of /usr/share/initamfs-tools/hooks/cryptroot to capture the
  initrd.img build using

  update-initramfs -uv |& tee /tmp/uir.log

  The resulting log (see attached 'broken' log) shows the warning in the
  title of this bug twice and the root device ignored as far as
  configuring the initrd.img goes:

  WARNING: invalid line in /etc/crypttab

  Analysing the log of the shell commands shows an awk command failing
  to recognise the sole crypttab entry because it is expecting the
  device-mapper name format to be "luks-${UUID}" not "nvme0n1p3_crypt".

  Dylan made a back-up then changed the entry to use the seemingly
  correct name format and rebuilt the initrfd.img (see attached
  'working' log). There is no warning now and the cryptroot hook goes
  ahead and adds kernel modules and tooling to the initrd.img.

  The system still fails to boot but with different messages:

  Please unlock device luks-98c2ce02-6cb1-4a2d-a086-1e8cf78a3c58 <--- types passphrase
  [ timestamp ] device-mapper: table: 253:0: crypt: unknown target type
  device-mapper: reload ioctol on   failed: Invalid argument
  Failed to setup dm-crypt key mapping for device /dev/disk/by-uuid/98c2ce02-6cb1-4a2d-a086-1e8cf78a3c58.
  Check that kernel supports aes-xts-plain64 cipher (check syslog for more info).
  cryptsetup (luks-98c2ce02-6cb1-4a2d-a086-1e8cf78a3c58): cryptsetup failed, bad password or options?

To manage notifications about this bug go to:
https://bugs.launchpad.net/cryptsetup/+bug/1767527/+subscriptions



More information about the foundations-bugs mailing list