Systemplattenwechsel:mount /usr von alter Platte

Hallo,
zähle nicht zu den Neulingen, aber das ist mir noch nicht vorgekommen:

Ich habe eine kleinere ssd durch eine größere ersetzt, die nicht nur boot und /usr sondern auch Platz für / hat. Das hat auch nach ein paar Versuchen funktioniert. Als ich die alte Platte abhängen wollte blieb der Bootvorgang mit Kernelpanic stehen. Da merkte ich erst, dass /usr noch von der alten Platte gemounted wird.

die bisherigen Recherchen:
[ul]
[li]fstab ist ok, mount eintrag zeigt auf neue Platte [/li][li]grep über /boot mit der suche nach /usr fand in nicht binären Dateien nichts [/li][li]boot.log zeigt: [/li][/ul]

  3 logical volume(s) in volume group "sysssd" now active
  3 logical volume(s) in volume group "sysssd" now active
  3 logical volume(s) in volume group "system" now active
  3 logical volume(s) in volume group "system" now active
Trying manual resume from /dev/sysssd/swap
Invoking userspace resume from /dev/sysssd/swap
resume: libgcrypt version: 1.5.3
Trying manual resume from /dev/sysssd/swap
Invoking in-kernel resume from /dev/sysssd/swap
Waiting for device /dev/sysssd/root to appear:  ok
fsck from util-linux 2.21.2
[/sbin/fsck.ext4 (1) -- /] fsck.ext4 -a /dev/mapper/sysssd-root 
/dev/mapper/sysssd-root: recovering journal
/dev/mapper/sysssd-root: clean, 57502/1179648 files, 1450600/4718592 blocks
fsck succeeded. Mounting root device read-write.
Mounting root /dev/sysssd/root
mount -o rw,acl,user_xattr -t ext4 /dev/sysssd/root /root
fsck from util-linux 2.21.2
[/sbin/fsck.ext4 (1) -- /dev/sde4] fsck.ext4 -a /dev/sde4 
/dev/sde4: clean, 303822/1281120 files, 1870878/5115392 blocks
Mounting /usr

Welcome to [0;32mopenSUSE 12.3 (Dartmouth) (x86_64)[0m!

         Starting Collect Read-Ahead Data...
         Starting Replay Read-Ahead Data..
...
# erst viele Zeilen später wird /, /home, ... nach Vorgaben der fstab  gemounted 

Natürlich kann ich den /usr nicht umhängen, da selbst im Singelusermodus der systemd draufhängt.

Aus dem Log lese dass /usr so früh gemounted wird, dabei ist bemerkenswert, dass swap und dev/sysssd/root während des frühen bootprozesses verwendet wird. Diese beiden Angabens stehen unter /boot, aber dort finde ich nichts über /usr

/usr in eigener Partition hängt mit der kleinen ssd ab, dort war nur /boot und /usr während / auf der systemplatte unter lvm verwaltet wird. Ich kann jetzt zwar /usr wieder in die root-Partition einlagern, denke aber, dass beim booten dennoch nach der alten platte gesucht wird.

Irgendwann stellte ich fest, dass grub und nicht grub2 aktiv ist, wann der Wechsel stattfand weiß ist nicht, da ich mich mit dem Bootprozess nicht gut auskenne, bin ich froh, dass das System bootet und möchte keine weiteren Experimente eingehen, zumal in Kürze ein Upgrade auf 13.1 ansteht.

Fragen:
[ul]
[li]hat eine /usr Partition in fstab keine Wirkung mehr? [/li][li]Wo holt sich der frühe Bootprozess die Information über den Ort von /usr? [/li][li]Wie kann man in den Boot-definitionen den Ort von /usr angeben? [/li][/ul]
Ich komme nicht weiter:, ich hoffe, dass andere mehr wissen.

Grüße aus dem Süden

Soweit ich weiß wird /usr bereits in der initrd gemountet, damit es sofort beim Booten zur Verfügung steht.
Du solltest also “mkinitrd” aufrufen, damit /usr von der neuen Platte gemountet wird, denke ich.

Danke für die schnelle Antwort. An so was habe ich schon gedacht. Da ich beim bootmanager bisher alles mit yast erledigt habe, habe ich angenommen, dass die entsprechenden Skripte indirekt aufgerufen werden.
Mein Problem: /usr hängt an der alten Platte, was ich auch nicht ändern kann. D.h. solange ich nicht explizit /usr angeben kann, wird es nichts werden. Es gibt noch die Möglichkeit über eine chroot-Umgebung die bootdateien zu erstellen. Das ist bei mir gefühlte 20 Jahre her.

Gruß

Ich hab mkinitrd aufgerufen:

lvm:/boot # mkinitrd

Kernel image:   /boot/vmlinuz-3.7.10-1.24-desktop
Initrd image:   /boot/initrd-3.7.10-1.24-desktop
KMS drivers:     i915                                                                                                                                                                                              
Root device:    /dev/sysssd/root (mounted on / as ext4)                                                                                                                                                            
/usr device:    /dev/disk/by-id/ata-Patriot_PS-100_32GB_SSD_7B4B0708020800013096-part4 (/dev/sde4) (mounted on /usr as ext4)                                                                                       
Resume device:  /dev/sysssd/swap                                                                                                                                                                                   
Kernel Modules: thermal_sys thermal processor fan pata_jmicron pata_atiixp ata_generic dm-mod dm-snapshot scsi_dh scsi_dh_emc scsi_dh_hp_sw scsi_dh_rdac scsi_dh_alua video button i2c-algo-bit drm drm_kms_helper i915 xhci-hcd hid-logitech-dj linear                                                                                                                                                                               
Features:       acpi dm kms plymouth block usb lvm2 resume.userspace resume.kernel                                                                                                                                 

Da ist der Verweis auf die alte Platte sichtbar. Kein Parameter von mkinitrd für /usr vorhanden. Bleibt wohl nur der Weg über chroot.

Das brauchst du glaub ich nicht.

mkinitrd akzeptiert das zu verwendende root directory als Parameter.

Also von einer Live/Rescue CD/DVD/USB-stick (vorzugsweise openSUSE 12.3 in deinem Fall) booten, die root Partition mounten und mkinitrd entsprechend aufrufen, sollte eigentlich reichen:

mount /dev/sda1 /mnt
mkinitrd /mnt

oder so ähnlich.

Ich bin wieder da. Im Prinzip funktioniert es, allerdings habe ich noch grub2 reaktivieren wollen und das ist gandenlos in die Hose gegangen. Grund: bei mir war grub2 nie aktiv, weil ich mein system seit 11.x immer auf die neue Version gehoben habe. Deshalb habe ich die ssd mit dem livesystem neu eingerichtet und dann mein altes drüber kopiert. Jetzt passts.

lvm:/ # mkdir /syspart
lvm:/ # mount /dev/sysssd/root /syspart
lvm:/ # mount -o bind /dev /syspart/dev
lvm:/ # mount -o bind /proc /syspart/proc
lvm:/ # mount -o bind /sys /syspart/sys
lvm:/ # mount /dev/sda2 /syspart/usr
lvm:/syspart # chroot /syspart

lvm:/ # mkinitrd
Kernel image:   /boot/vmlinuz-3.7.10-1.24-desktop
Initrd image:   /boot/initrd-3.7.10-1.24-desktop
KMS drivers:     i915
Root device:    /dev/sysssd/root (mounted on / as ext4)
/usr device:    /dev/disk/by-id/ata-Samsung_SSD_840_Series_S14CNEACC48756X-part2 (/dev/sda2) (mounted on /usr as ext4)
Resume device:  /dev/sysssd/swap
Kernel Modules: thermal_sys thermal processor fan pata_jmicron pata_atiixp ata_generic dm-mod dm-snapshot scsi_dh scsi_dh_emc scsi_dh_hp_sw scsi_dh_rdac scsi_dh_alua video button i2c-algo-bit drm drm_kms_helper i915 xhci-hcd hid-logitech-dj linear 
Features:       acpi dm kms plymouth block usb lvm2 resume.userspace resume.kernel

Ohne chroot geht es nicht.

Danke nochmal.