Da meine altersschwache Hardware so nach und den Geist aufgibt, habe ich (schon vor zwei, drei Monaten) ein neues Notebook gekauft - ohne BS, war ursprünglich nur FreeDos drauf. Aber egal, soll ja ehe unter Arch laufen. Und da ich wie viele andere gerade gaaanz viel Zeit habe, habe ich mich heute endlich mal die Installation gesetzt. Hab mich für eine etwas komplexere Variante entschieden und bin strikt dieser Anleitung gefolgt - dachte ich zumindest. Nach Abschluß der Installation bekomme nun leider diese Ausgabe:
:: running early hook [udev]
Starting version 245.2-2-arch
:: running hook [udev]
:: Triggering uevents ...
:: running hook [keymap]
:: Loading keymap...done.
:: running hook [encrypt]

A password is required to access the main volume:
Enter passphrase for /dev/sda2:
Waiting 10 seconds for device /dev/mapper/main-root ...
ERROR: device ' /dev/mapper/main-root' not found. Skipping fsck.
:: mounting '/dev/mapper/main-root' on real root
mount: /new_root: special device /dev/mapper/main-root does not exist.
You are now being dropped into an emergency shell.
sh: can't access tty: job control turned off 
Weitere Info: Meine ursprünglichen Eingaben sind nach dem Reboot natürlich futsch, aber ich kann mich erinnern, das mkinitcpio meckerte: "lvm2 does not exist" (oder so). Ich bin daher zurückgegangen und habe vergewissert, dass lvm2 vollkommen korrekt im hooks-array von mkinitcpio.conf eingetragen ist. Und da mkinitcpio nicht abbrach, sondern weiter lief, habe ich dann auch einfach weiter gemacht. Im Nachhinein zeigt mir ein einfaches "mkinitcpio -H lvm2" auf dem älteren System natürlich, dass dieser Hook sehr wohl existiert. Jedenfalls ist wenigstens die Fehlermeldung korrekt:
[rootfs ]# cd /dev/mapper
[rootfs mapper]# ls -a
.   ..    control   main
[rootfs mapper] cd main
sh: cd: can't cd to main: Not a directory
Tja, das ist der Stand der Dinge. Leider kenne ich mit LVM und dm-crypt gar nicht aus - genau deshalb habe ich ja diese Installations-Variante gewählt. Frage: Was ist da schiefgelaufen? Kann jemand den Fehler näher eingrenzen, und wenn ja, wie kann man ihn beheben?

Ich vermute ja, dass ich irgendwo einen entscheidenen Teilschritt übersprungen habe. Wahrscheinlich beim mappen nach "/dev/mapper/lvm", denn dieses Verzeichnis existiert ja offenkundig auch nicht. Noch sind keinerlei Daten auf dem System, ich kann auch problemlos alles überbügeln und ganz von vorn anfangen. Aber einfacher - und v.a. lehrreicher - wäre es natürlich, die so halb bestehende Installation zu reparieren.
matthias schrieb...Ich vermute ja, dass ich irgendwo einen entscheidenen Teilschritt übersprungen habe....
Hallo Matthias,
Hier habe ich eine Anleitung wie man crypt und LVM installiert.
arch uefi lvm crypt installation:
Diese Anleitung ist mit qemu getestet worden. Das fertig installierte Arch-Linux läßt sich starten per systemd-boot oder auch grub.
Beide Bootmanager sind installiert und in UEFI eingetragen.

Abkürzungen:
p_arch Rootpartition für Arch-Linux
p_home für Partition home
p_swap für Swappartition
vg1 bei LVM, Volume Group1
lv_arch bei LVM, Logical Volume Arch-Linux Root
lv_home bei LVM, Logical Volume Arch-Linux home
lv_swap bei LVM, Logical Volume Arch-Linux swap
Die Passworteingabe für die verschlüsselte Partition wird beim Booten aufgefordert.

Los gehts...
booten mit dem Isoimage
loadkezs de
loadkezs de-latin1

gdisk /dev/sda
Neue Partitionstabelle erzeugen mit
o
neue Partition für efi und boot (EFIBOOT) 200M
n
Anfang, +200M
Typ ef00

Neue Partition für LVM (vg1 mit Root, home, swap)
n
Typ 8e00
Anfang, Ende
w

Verschlüsselte Partition anlegen:
modprobe dm-crypt
cryptsetup -c aes-xts-plain64 -y -s 512 luksFormat /dev/sda2 ACHTUNG Passwortvergabe Tastaturbelegung de beachten!!
###cryptsetup luksFormat /dev/sda2  ACHTUNG Passwortvergabe Tastaturbelegung de beachten!!
cryptsetup luksOpen /dev/sda2 p_arch_crypt

Lvm einrichten:
modprobe dm_mod
pvcreate /dev/mapper/p_arch_crypt
vgcreate vg1 /dev/mapper/p_arch_crypt
pvdisplay
lvcreate -L 20G -n lv_arch vg1
lvcreate -L 1G -n lv_swap vg1
lvcreate -l 100%FREE -n lv_home vg1  (Rest vom Platz benutzen!)

Formatieren:
mkfs.fat -F 32 -n EFIBOOT /dev/sda1
mkfs.ext4 -L p_arch /dev/vg1/lv_arch
mkfs.ext4 -L p_home /dev/vg1/lv_home
mkswap -L p_swap /dev/vg1/lv_swap

Mounten:
mount -L p_arch /mnt
mkdir -p /mnt/boot
mount -L EFIBOOT /mnt/boot
mkdir -p /mnt/home
mount -L p_home /mnt/home
swapon -L p_swap

Grundinstallation:
nano /etc/pacman.d/mirrorlist
pacstrap /mnt base lshw mc gptfdisk efibootmgr dmidecode
genfstab -pL /mnt >> /mnt/etc/fstab

arch-chroot /mnt
echo rechnername > /etc/hostname
nano /etc/hosts
#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain localhost rechnername
::1   localhost.localdomain localhost rechnername

echo LANG=de_DE.UTF-8 > /etc/locale.conf
echo KEYMAP=de-latin1 > /etc/vconsole.conf
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime

nano /etc/locale.gen
locale-gen
passwd

nano /etc/mkinitcpio.conf Hooks einfügen:
HOOKS="base udev autodetect modconf keyboard keymap block encrypt lvm2 filesystems fsck"
mkinitcpio -p linux

systemd Loader installieren (auch bei lvm oder crypt):
bootctl install

Datei anlegen:
nano /boot/loader/loader.conf Hinweis: diese Datei wird nur benutzt zum Laden des default Linux.

timeout3
default uefi_arch


Achtung bei default uefi_arch muss eine dazugehörige Datei angelegt werden mit uefi_arch.conf

Datei anlegen:
nano /boot/loader/entries/uefi_arch.conf

title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options cryptdevice=/dev/sda2:p_arch_crypt root=LABEL=p_arch

Für fallback anlegen:
/boot/loader/entries/uefi_arch_fallback.conf

title Arch Linux fallback
linux /vmlinuz-linux
initrd /initramfs-linux-fallback.img
options cryptdevice=/dev/sda2:p_arch_crypt root=LABEL=p_arch

grub installieren pacman -S grub mtools dosfstools
nano /etc/default/grub Zeile GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda2:p_arch_crypt root=LABEL=p_arch"
mkdir /boot/grub
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg

exit
umount -a
poweroff
usb stick bzw CD entfernen.
Neu starten
login: root
Passwort: Geheim

useradd -m -g users -s /bin/bash duda
passwd duda
...
...
Tip: Statt /dev/sda2 oder UUID für sda2 kann man der Partition ein Label vergeben. Nicht zu verwechseln das Label vom Dateisystem sondern das Label das per Partitionstool vergeben wird.
Bei gdisk geht das mit dem Kommando c.


Gruß aus DK, ähh DN
Greg
Du hast kein /dev/mapper/lvm. Also hast du vermutlich die Befehle ab
cryptsetup luksOpen /dev/nvme0n1p2 lvm 
aus der verlinkten Anleitung nicht abgesetzt (oder es ist dabei irgendetwas schief gegangen).
Wie sieht denn deine Kernelzeile in Grub aus? Vielleicht hast du einfach das falsche Rootdevice erwischt? Was sagen pvs, lvs, lsblk und ein 'cat /proc/cmdline'?
Mmmh, scheint so. Ist ergänzt. Verrückt, war lvm2 mal irgendwann automatisch mit dabei?
Erstmal vielen Dank für eure prompten (und wie immer kompetenten) Antworten.

@Greg: Deine Anleitung wäre hilfreich für eine komplette Neu-Installation, hilft aber nicht bei der aktuellen Fehlersuche. Und wenn niemand mit der Vermutung Recht hat, dass da etwas im Wiki fehlt, dann wäre das alles nicht mehr einfach nur mein Problem. Dann bräuchten wir nicht niemand, sondern jemand - jemand sollte dieser Frage nachspüren und ggf. auch für alle im Wiki lösen.

@chepaz: Gibt kein Grub. sda1 ist eine Uefi-Partition, die gleichzeitig als /boot dient. sda2 ist ein verschlüsselter Container, der dann gleichzeitig / und /home enthält.

@Stefan: Jöh, das Verzeichnis fehlt halt - die Frage ist halt: Warum? Ich habe auf jeden Fall die Zeile "cryptsetup luksOpen ..." brav abgetippt. Ich kann aber nicht mehr garantieren, dass ich dabei den Zusatz "lvm" am Ende vergessen habe - was fatal wäre und das Fehlerbild erklären würde. Andere Möglichkeit: niemand hat Recht, und der Fehler liegt an einem späteren Zeitpunkt bei "pacstrap ...".

@alle: So langsam nähern wir uns der Lösung. Ich werde dann den Ratschlag von niemand aus #3 befolgen. Aber erst morgen - für heute abend habe ich nämlich noch ein Rendezvous mit einer Rotweinflasche und Fräulein Smilla. Falls ihr euch auch wg. Ausgangssperre langweilt: "Fräulein Smillas Gespür für den Schnee" ist ein Hammer-Film mit Starbesetzung, von dem ich leider bisher nur das erste Drittel gesehen habe. Derzeit frei in arte-Mediathek - nicht verpassen!
@matthias
Wie @chepaz bereits anfragte, die CMDLINE und /etc/mkinitcpio.conf wären zur Eingrenzung sehr hilfreich!