# lvm2 update - initramfs funktioniert nicht neue lvm [solved]

## ScytheMan

Edit: siehe letzter Post

Moin, 

ich hab ein kleines Problem:

Ich habe udev/hal/e2fsprogs/lvm2 geupdated, nachdem es in meiner Architektur (amd64) stabil gekennzeichnet wurde. Etc-config/revdep-rebuild zur Vorsicht durchgeführt. Device-mapper ist ja neuerdings in lvm2 enthalten.

Mein System wird von einem USB Stick gebootet auf dem der Kernel mit initramfs (busybox,cryptsetup,lvm) ist. Die Festplatte selbst ist vollverschlüsselt.

Seit dem unsäglichen Update kann ich nicht mehr booten, denn beim Booten wird bei "Check root filesystem ..." folgender Fehler ausgegeben:

fsck.ext3: Datei oder Verzeichnis nicht gefunden beim Versuch /dev/lvm/root zu öffnen. 

/dev/lvm/root: 

SuperBlock ist unlesbar bzw. beschreibt kein gültiges Dateisystem

.....

bei genauerem Hinsehen finde ich kein /dev/lvm/root.

/dev/mapper/lvm-root (die partition die ich eigentlich entcrypte) existiert jedoch.

Ich habe vorher auch schon einen Kernel gebaut und die initramfs mit aktuellen lvm/cryptsetup/busybox versionen (alle static) ausgestattet. Dieser kann jedoch nicht einmal das Device entschlüsseln.

Mit dem alten Kernel krieg ich den obigen Fehler.

Könnt ihr aus der evtl. etwas verwirrenden Fehlerbeschreibung des Rätsels Lösung finden?

Danke euch schonmal  :Smile: 

Gruß

ein verzweifelter

ScytheMan

edit: hat scheinbar damit zu tun:

/dev/lvm/root war ein symlink auf /dev/mapper/lvm-root

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=459632

der mit dem lvm2 upgrade (?!?) evtl. weggefallen ist.

leider kann ich meine fstab nur readonly booten.

heißt das ich muss das ganze per livecd mounten+chroot oder gibts eine möglichkeit direkt drauf zuzugreifen?

komischerweise zeigt mir mount noch /dev/lvm/root an. wurde es vom initramfs korrekt gebootet evtl?

es würde mir auch schon helfen den bootvorgang ohne check vom fs weiterlaufen zu lassen.

Last edited by ScytheMan on Tue Dec 08, 2009 4:44 pm; edited 2 times in total

----------

## LinuxTom

 *ScytheMan wrote:*   

> bei genauerem Hinsehen finde ich kein /dev/lvm/root.
> 
> /dev/mapper/lvm-root (die partition die ich eigentlich entcrypte) existiert jedoch.

 

Ich habe auch ein Gentoo AMD-64-Bit-System, bei dem das Root auf LVM liegt. Ich habe es aber so gemacht, dass ich eine kleine Partition genommen habe, damit ich nicht noch etwas irgend wo in den Rechner zum booten stecken muss. Bei funktioniert noch alles, doch weiß ich dass ich als root-Device in grub nicht einfach /dev/vgirgendwas/lvirgendwas (oder auch das mit /dev/mapper/vgirgendwas-lwirgendwas) eingeben konnte. Ich musste die I-Nodenummer angeben. Um das zu umgehen habe ich mir eine eigene initramfs geschrieben, in der der Bootparameter, der an grub übergeben wird, ausgewertet wird und entsprechendes gesetzt wird.

Damals (vor 2 Jahren) war mit Namen noch nischt. Geht das jetzt? Vielleicht ist das ja ein Ansatz?

----------

## ScytheMan

also was ich möchte ist, den fschck beim boot übergehen, dann weiterbooten.

mit lvm2 liegts wohl dran dass dort symlinks verschwunden sind

naja mit ner initramfs braucht man das nicht

ich boote seit 3 jahren von einem usb stick

cryptsetup öffnet die platte,

lvm vgscan

lvm vgchange -a y 

findet die lvm devices

und dann kann man das ganze per /dev/mapper ansprechen

soweit die theorie.

 edit:

fastboot als kernel parameter in grub scheints auch nicht zu tun.

edit2:

mit       mount -o rw,remount -n / konnte ich die fstab editieren, da dann im maintenance mode das fs auch schreibbar war

danach bootet es wieder mit dem alten kernel und der alten initramfs.

edit3:

wie bekomme ich das ganze mit der neuen initramfs zum laufen? hierbei meckert er beim encrypten dass /dev/lvm/root bzw. /dev/mapper/lvm-root nicht gefunden wird.

----------

## ScytheMan

edit: solved,

per cp -a /dev/urandom nach initramfs/dev kopiert und dasselbe nochmal mit /dev/mapper schon lief es wieder.

Hier ist der genaue Fehler beim booten:

```

/sbin/udevadm settle unable to avoid potential race with busy device-mapper deviceskey slot0 unlocked.

/sbin/udevadm settle unable to avoid potential race with busy device-mapper devicesCommand successful.

 read_urandom: /dev/urandom: open failed: No such file or directory

 read_urandom: /dev/urandom: open failed: No such file or directory

mount: mounting /dev/mapper/lvm-root on /root failed: No such file or directory

switch_root: bad newroot /root

```

der udevadm settle fehler war schon zuvor da, war aber ohne auswirkungen.

urandom ist neu, und mount ebenso. ich könnte versuchen "urandom" ins initramfs zu kopieren, gibt aber für mich wenig sinn, da urandom ja leider keine Datei sondern eher ein Stream ist.

Mein init-Skript:

```

#!/bin/busybox sh

mount -t proc none /proc

mount -t sysfs none /sys

cryptsetup -T 5 luksOpen /dev/sda luks

lvm vgscan

lvm vgchange -a y

mount -o ro /dev/lvm/root /root

umount /proc

umount /sys

exec switch_root /root /sbin/init 

```

----------

