FS#17392 - Unbootable system after fresh install w/encrypted root

Attached to Project: Release Engineering
Opened by Hendrik Krauß (Geheimdienst) - Saturday, 05 December 2009, 10:10 GMT
Last edited by Dieter Plaetinck (Dieter_be) - Saturday, 06 March 2010, 09:35 GMT
Task Type Bug Report
Category AIF
Status Closed
Assigned To Thomas Bächler (brain0)
Dieter Plaetinck (Dieter_be)
Architecture All
Severity High
Priority Normal
Reported Version 2009.08
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

Being fed up with Ubuntu, I wanted to try Arch. I told the Arch installer to set up dm_crypt with ext3 on top, mountpoint "/". When starting the newly installed OS, booting stopped with fsck reporting a bad superblock on the root file system. Then Arch dropped me into a maintenance shell with the root FS mounted read-only.

I found out that mkinitcpio has a hook "encrypt" which mounts the root partition into /dev/mapper/root. The name "root" is hardcoded in the encrypt hook, and that's the problem.

The installer asked me what I want to name the device and I said "/dev/mapper/arch-root". The installer then made an fstab to mount "/dev/mapper/arch-root" with the mountpoint "/" (correct). But the encrypt hook didn't get the memo about the name "arch-root", and made up the name "/dev/mapper/root". So fsck reads fstab, tries to check /dev/mapper/arch-root, sees it isn't there, and freaks out.

I read the encrypt hook script, but I don't understand enough of it to fix the problem. For instance I can't tell where the variable $cryptdevice is supposed to be coming from.

Might be related: when booting, the encrypt hook prints a message telling me that "deprecated syntax" is being used. However the installer set that all up for me. I didn't put no "deprecated syntax" anywhere. It's a little unfortunate that the installer creates conf files which just one reboot later cause major breakage.

Any workaround would be greatly appreciated. Where am I supposed to set the "$cryptdevice" variable?

Additional info:

Package cryptsetup-1.0.7-1 (this is what you get when you install Arch today)
Arch installer

Steps to reproduce:

Install Arch, telling the installer to encrypt the root partition. Name it "/dev/mapper/something". Reboot into newly installed system, which won't boot.
This task depends upon

Closed by  Dieter Plaetinck (Dieter_be)
Saturday, 06 March 2010, 09:35 GMT
Reason for closing:  Duplicate
Additional comments about closing:  dup of  FS#16759 
Comment by Thomas Bächler (brain0) - Saturday, 05 December 2009, 14:44 GMT
This is a bug in the installer. I sent a fix to Dieter some time ago, but he didn't apply it yet.

On the kernel commandline, change:
root=/dev/something
to
cryptsetup=/dev/something:arch-root root=/dev/mapper/arch-root

You can do that directly in grub. Then when it boots, apply the change to /boot/grub/menu.lst.
Comment by Hendrik Krauß (Geheimdienst) - Sunday, 06 December 2009, 06:20 GMT
I did the workaround and it helped. Thanks a million, Thomas!

But please, guys, try to get that patch applied. This bug is losing new users for Arch. It really took me days installing, installing again, not getting anywhere on IRC, not getting anywhere in the forum, finally reading shell scripts in an uncomfortable emergency shell. With just a little less patience, I wouldn't be an Arch user now.

So thanks again, and it would be awesome if that patch got in before the next release.
Comment by Thomas Bächler (brain0) - Sunday, 06 December 2009, 10:24 GMT
Good :)

The fix is there, and it will definitely be in the next installer release.

Loading...