You are not logged in.
I just recently completed an install of Arch with a dm-crypt luks container, following the beginners guide and some addition instructions from the dm-crypt encrypting root fs guide.
The issue arose when I went to boot. I am using rEFInd, so here is my `refind.conf`:
menuentry Arch {
loader /mvlinuz-linux
initrd /initramfs-linux.img
volume 7a5d13fb-044c-4853-a1e3-d69b68cdf8ea
options "cryptdevice=UUID=7a5d13fb-044c-4853-a1e3-d69b68cdf8ea:cryptroot root=/dev/mapper/cryptroot"
ostype Linux
}
Here is my boot output:
:: running early hook [udev]
starting version 230
:: running hook [udev]
:: Triggering uevents...
:: running hook [encrypt]
Waiting 10 seconds for device /dev/disk/by-uuid/7a5d13fb-044c-4853-a1e3-d69b68cdf8ea
Waiting 10 seconds for device /dev/mapper/cryptroot ...
ERROR: device '/dev/mapper/cryptroot' not found. Skipping fsck.
ERROR: Unable to find root device '/dev/mapper/cryptroot'.
You are being dropped to a recovery shell
Type 'exit' to try and continue booting
sh: can't access tty; job control turned off
[rootfs ]#
Here is my `mkinitcpio.conf`:
MODULES=""
BINARIES=""
FILES=""
HOOKS="base udev autodetect modconf block encrypt filesystem keyboard fsck"
Output of me verifying I have the correct PARTUUID:
root@archiso ~ # lsblk --output="NAME,PARTUUID"
NAME PARTUUID
sda
|-sda1 <Ommited b/c copying output from picture>
|-sda2 <Ommited b/c copying output from picture>
sdb
|-sdb1 <Ommited b/c copying output from picture>
|-sdb2 <Ommited b/c copying output from picture>
|-sdb3 <Ommited b/c copying output from picture>
|-sdb4 <Ommited b/c copying output from picture>
|-sdb5 <Ommited b/c copying output from picture>
|-sdb6 <Ommited b/c copying output from picture>
|-sdb7 7a5d13fb-044c-4853-a1e3-d69b68cdf8ea
root@archiso ~ # cryptsetup open /dev/sdb7 cryptroot
Enter passphrase for /dev/sdb7:
root@archiso ~ # mount /dev/mapper/cryptroot /mnt
root@archiso ~ # ls /mnt
bin boot dev etc home lib lib64 lost+found mnt opt proc root run sbin srv sys tmp usr var
What I have tried so far:
- Confirming that I typed the PART GUID correctly
- Adding the `ext4` extension to `mkinitcpio.conf` and rebuilding
- Removing `encrypt` hook from `mkinitcpio.conf` and rebuilding, then adding back and rebuilding
- Using rEFInd's auto generated entry for Arch (Didn't work, no surprise there)
- Changing the `volume` field in the Arch rEFInd menu entry to use a `PARTLABEL` (After adding a `PARTLABEL` of course)
- A fair ammount of internet searching, some other person had this issue but they solved it by switching to GRUB
- Confirming that the encrypt hook is in the correct place in the `mkcpioinit.conf` file.
- I think it is, I just put `encrypt` right before the `filesystem` hook in the default file
If you need any more information don't hesitate to ask.
Last edited by Noah-Huppert (2016-07-20 15:28:56)
[rootfs ]#
Try `ls -l /dev/disk/by-uuid/` here what is the output? If nothing then also `cat /proc/partitions` something missing there?
It looks like it does not even find your LUKS container UUID. Triple check for typos.
Is it a custom kernel?
Last edited by frostschutz (2016-07-20 14:51:47)
Offline
Try `ls -l /dev/disk/by-uuid/`
[rootfs ]# ls -l /dev/disk/by-uuid
lrwxrwxrwx 1 0 0 10 Jul 20 15:06 <Omitted b/c from picture> -> ../../sda5
lrwxrwxrwx 1 0 0 10 Jul 20 15:06 <Omitted b/c from picture> -> ../../sda1
lrwxrwxrwx 1 0 0 10 Jul 20 15:06 21816777-4e56-4f5f-bef7-956b6dbdba9c -> ../../sda7
lrwxrwxrwx 1 0 0 10 Jul 20 15:06 <Omitted b/c from picture> -> ../../sd6
lrwxrwxrwx 1 0 0 10 Jul 20 15:06 <Omitted b/c from picture> -> ../../sda3
lrwxrwxrwx 1 0 0 10 Jul 20 15:06 <Omitted b/c from picture> -> ../../sda4
also `cat /proc/partitions`
Output as expected, showed sda1-7
custom kernel?
no.
Upon viewing the output of `ls -l /dev/disk/by-uuid` I noted that the UUID I have been using in the `refind.conf` file was not present. Instead a new UUID(21816777-4e56-4f5f-bef7-956b6dbdba9c) was shown for the `sda7` partition. I booted up and switched around the refind file to use the new UUID. I have successfully logged in to my new arch install.
Just out of curiosity, why does the `lsblk --output="NAME,PARTUUID" not show the correct UUID? Do I need to look at the output of another command? Or am I looking at the wrong field?
Just out of curiosity, why does the `lsblk --output="NAME,PARTUUID" not show the correct UUID? Do I need to look at the output of another command? Or am I looking at the wrong field?
See
$ lsblk --help
Usage:
lsblk [options] [<device> ...]
List information about block devices.
Options:
-a, --all print all devices
-b, --bytes print SIZE in bytes rather than in human readable format
-d, --nodeps don't print slaves or holders
-D, --discard print discard capabilities
-e, --exclude <list> exclude devices by major number (default: RAM disks)
-f, --fs output info about filesystems
-i, --ascii use ascii characters only
-I, --include <list> show only devices with specified major numbers
-J, --json use JSON output format
-l, --list use list format output
-m, --perms output info about permissions
-n, --noheadings don't print headings
-o, --output <list> output columns
-O, --output-all output all columns
-p, --paths print complete device path
-P, --pairs use key="value" output format
-r, --raw use raw output format
-s, --inverse inverse dependencies
-S, --scsi output info about SCSI devices
-t, --topology output info about topology
-x, --sort <column> sort output by <column>
-h, --help display this help and exit
-V, --version output version information and exit
Available columns (for --output):
NAME device name
KNAME internal kernel device name
MAJ:MIN major:minor device number
FSTYPE filesystem type
MOUNTPOINT where the device is mounted
LABEL filesystem LABEL
UUID filesystem UUID
PARTTYPE partition type UUID
PARTLABEL partition LABEL
PARTUUID partition UUID
PARTFLAGS partition flags
RA read-ahead of the device
RO read-only device
RM removable device
HOTPLUG removable or hotplug device (usb, pcmcia, ...)
MODEL device identifier
SERIAL disk serial number
SIZE size of the device
STATE state of the device
OWNER user name
GROUP group name
MODE device node permissions
ALIGNMENT alignment offset
MIN-IO minimum I/O size
OPT-IO optimal I/O size
PHY-SEC physical sector size
LOG-SEC logical sector size
ROTA rotational device
SCHED I/O scheduler name
RQ-SIZE request queue size
TYPE device type
DISC-ALN discard alignment offset
DISC-GRAN discard granularity
DISC-MAX discard max bytes
DISC-ZERO discard zeroes data
WSAME write same max bytes
WWN unique storage identifier
RAND adds randomness
PKNAME internal parent kernel device name
HCTL Host:Channel:Target:Lun for SCSI
TRAN device transport type
SUBSYSTEMS de-duplicated chain of subsystems
REV device revision
VENDOR device vendor
For more details see lsblk(8).
From the above PARTUUID = partition UUID, UUID = filesystem UUID
Edit:
Added additional UUID to make last sentence more parseable.
Last edited by loqs (2016-07-20 16:06:48)
Offline
Noah-Huppert wrote:Just out of curiosity, why does the `lsblk --output="NAME,PARTUUID" not show the correct UUID? Do I need to look at the output of another command? Or am I looking at the wrong field?
See
$ lsblk --help Usage: lsblk [options] [<device> ...] List information about block devices. Options: -a, --all print all devices -b, --bytes print SIZE in bytes rather than in human readable format -d, --nodeps don't print slaves or holders -D, --discard print discard capabilities -e, --exclude <list> exclude devices by major number (default: RAM disks) -f, --fs output info about filesystems -i, --ascii use ascii characters only -I, --include <list> show only devices with specified major numbers -J, --json use JSON output format -l, --list use list format output -m, --perms output info about permissions -n, --noheadings don't print headings -o, --output <list> output columns -O, --output-all output all columns -p, --paths print complete device path -P, --pairs use key="value" output format -r, --raw use raw output format -s, --inverse inverse dependencies -S, --scsi output info about SCSI devices -t, --topology output info about topology -x, --sort <column> sort output by <column> -h, --help display this help and exit -V, --version output version information and exit Available columns (for --output): NAME device name KNAME internal kernel device name MAJ:MIN major:minor device number FSTYPE filesystem type MOUNTPOINT where the device is mounted LABEL filesystem LABEL UUID filesystem UUID PARTTYPE partition type UUID PARTLABEL partition LABEL PARTUUID partition UUID PARTFLAGS partition flags RA read-ahead of the device RO read-only device RM removable device HOTPLUG removable or hotplug device (usb, pcmcia, ...) MODEL device identifier SERIAL disk serial number SIZE size of the device STATE state of the device OWNER user name GROUP group name MODE device node permissions ALIGNMENT alignment offset MIN-IO minimum I/O size OPT-IO optimal I/O size PHY-SEC physical sector size LOG-SEC logical sector size ROTA rotational device SCHED I/O scheduler name RQ-SIZE request queue size TYPE device type DISC-ALN discard alignment offset DISC-GRAN discard granularity DISC-MAX discard max bytes DISC-ZERO discard zeroes data WSAME write same max bytes WWN unique storage identifier RAND adds randomness PKNAME internal parent kernel device name HCTL Host:Channel:Target:Lun for SCSI TRAN device transport type SUBSYSTEMS de-duplicated chain of subsystems REV device revision VENDOR device vendor For more details see lsblk(8).
From the above PARTUUID = partition UUID, UUID = filesystem UUID
Edit:
Added additional UUID to make last sentence more parseable.
Thank you very much. Guess I just jumped the gun and used the first parameter with `UUID` I saw.