• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] A start job is running (... no limit)

f.gruber

Hacker
Hallo,
ich möchte ein mit Hilfe von Suse Studio speziell angepasstes Suse 42.3, das in einer VirtualBox läuft, auf einen USB Stick übertragen. Die Daten der Suse Instanz habe ich auf einer externen Backup-Festplatte.
Folgendes habe ich also gemacht:
  • Auf dem USB Stick eine Linux Partition angelegt und mit ext4 formatiert.
  • Die Daten der Suse Instanz per rsync auf den Stick kopiert
  • Bootmanager grub2 auf dem Stick konfiguriert und installiert
  • /boot/grub2/grub.cfg auf dem Stick manuell nachbearbeitet.
  • /etc/fstab angepasst
Gebe ich die mit blkid ermittelte UUID der Partition auf dem Stick als Kernel Parameter ein, passiert gar nichts beim Booten:
Code:
linux   /boot/vmlinuz-4.4.114-42-default root=UUID=e9cf1718-7f2b-44c6-bfb4-2ce1606506e0
Gebe ich folgendes ein, startet der Bootvorgang zunächst.
Code:
 linux   /boot/vmlinuz-4.4.114-42-default root=/dev/sdd1
Das Bootmenü erscheint und der Bootvorgang beginnt. Kernel und Ramdisk werden also offensichtlich gefunden.
Code:
Initiale Ramdisk wird geladen
Dann kommen einige Meldungen des Startprotokolls - wie üblich.
Dann aber kommt
Code:
A start job is running for dev-sdd1.dev ....
Nach einiger Zeit sehe ich, dass der USB Stick erkannt wird. Damit ist es zumindest vertändlich, dass es nicht geht, weil ja der Stick schon vorher bekannt sein müsste.
Abgesehen davon müsste ich ja mit dieser Variante manuell bei jedem Gerät (außer bei meinem Computer zu Hause) das grub2 Menü editieren durch drücken der Taste E.

Wahrscheinlich sehe ich da irgendwas vollkommen falsch.
Danke für jeden Tipp.
 
Ohne das ich das jemals gemacht hätte: Gib den Partitionen des Sticks ein Label und trage sie darüber in fstab und grub ein. Dann sollte so etwas wie die Reihenfolge am Controller etc (was ja für die Buchstaben in sdX sorgt) egal sein, unabhängig vom verwendeten Rechner. Ebenso erspart es einem das (zumindest mir) unverständliche Gehampel mit UUIDs.
 

josef-wien

Ultimate Guru
Wären die für USB notwendigen Module nicht im Kernel bzw. in der initrd enthalten, könnte der Kernel auf das USB-Medium nicht zugreifen und es gäbe bereits am Anfang eine kernel panic. Daher wäre
f.gruber schrieb:
passiert gar nichts beim Booten
nur möglich, wenn sich systemd, das ich nicht verwende, auch hier einmischt. Weiters kann ich mir vorstellen, daß durch den Wechsel des Boot-Mediums noch "falsche" systemd-Dienste laufen. Ohne alle beim Systemstart anfallenden Meldungen zu sehen, wird man Dir schwer helfen können (quiet als Boot-Option wäre zur Fehlersuche kontraproduktiv).

/dev/sdXY solltest Du auf keinen Fall verwenden, auf einem anderen Rechner sieht das garantiert anders aus.
 
OP
F

f.gruber

Hacker
Geier0815 schrieb:
Ohne das ich das jemals gemacht hätte: Gib den Partitionen des Sticks ein Label
Die Vergabe eines LABEL für die Partition auf dem USB Stick ändert nichts.

Die Sache wird wohl was mit systemd zu tun haben.
 
OP
F

f.gruber

Hacker
josef-wien schrieb:
... wenn sich systemd auch hier einmischt. Weiters kann ich mir vorstellen, daß durch den Wechsel des Boot-Mediums noch "falsche" systemd-Dienste laufen.
Nur welcher systemd start job ist das wohl?
josef-wien schrieb:
... beim Systemstart anfallenden Meldungen ...
gibt es kaum. Es läuft alles normal bis zu der Meldung
Code:
A start job is running ...
 

susejunky

Moderator
Teammitglied
f.gruber schrieb:
... Folgendes habe ich also gemacht:
  • Auf dem USB Stick eine Linux Partition angelegt und mit ext4 formatiert.
  • Die Daten der Suse Instanz per rsync auf den Stick kopiert
Bist Du sicher, dass in der kopierten "initrd" auch alle für einen Systemstart von einem USB-Gerät ggf. erforderlichen Module enthalten sind?

Ich habe bei meinem USB-Notfall-Stick vorsichtshalber alle USB-Module (usb-storage uas ehci-hcd ehci-pci ohci-hcd ohci-pci uhci-hcd xhci-pci xhci-hcd) in die initrd integriert.

Viele Grüße

susejunky

NACHTRAG
UEFI oder MBR booten?
MBR oder GPT Partitionen?
ENDE NACHTRAG

NACHTRAG 2
Die "initrd" enthält Referenzen zu SWAP und "/"
Code:
dracut: Stored kernel commandline:
dracut:  resume=UUID=a1b2c3d4-e5f6-a7b8-c9d0-e1f2a3b4c5d6
dracut:  root=UUID=aabbccd4-e5f6-a7b8-c9d0-e1f2a3b4c5d6 rootfstype=ext4 rootflags=rw,noatime,data=ordered
dracut: *** Creating image file '/boot/initrd-4.15.5-1.g52ce732-default' ***
dracut: *** Creating initramfs image file '/boot/initrd-4.15.5-1.g52ce732-default' done ***
hast Du diese auch entsprechend angepasst?
ENDE NACHTRAG 2
 
OP
F

f.gruber

Hacker
susejunky schrieb:
Ich habe bei meinem USB-Notfall-Stick vorsichtshalber alle USB-Module (usb-storage uas ehci-hcd ehci-pci ohci-hcd ohci-pci uhci-hcd xhci-pci xhci-hcd) in die initrd integriert.
Da stehe ich etwas daneben. Hatte mit so was bisher noch nie zu tun. Wohin kopiert man diese Module genau? Und wo sind diese Module im Dateisystem zu finden?
Habe die initrd.gz einmal entpackt und sehe folgende Dateien bzw. Ordner da drinnen:
Code:
./kernel
./kernel/x86
./kernel/x86/microcode
./kernel/x86/microcode/GenuineIntel.bin
./early_cpio
Aber eigentlich schaut es so aus, als ob die USB Geräte erkannt werden - siehe mein nächstes Posting:http://linux-club.de/forum/viewtopic.php?f=90&t=122289#p784273
 
OP
F

f.gruber

Hacker
josef-wien schrieb:
... Ohne alle beim Systemstart anfallenden Meldungen zu sehen, wird man dir schwer helfen können ...
Hier ist ein Foto der letzten Bildschirmausgaben bevor der Bootvorgang stoppt.
bootSuseUSB.jpg
 

susejunky

Moderator
Teammitglied
Hallo f.gruber,
f.gruber schrieb:
... Wohin kopiert man diese Module genau? Und wo sind diese Module im Dateisystem zu finden?
Den Inhalt Deiner "initrd" kannst Du Dir (als Administrator in einer Konsole) wie folgt anzeigen lassen (hier gleich auf die USB-Module eingeschränkt):
Code:
# lsinitrd /boot/initrd-4.15.6-1.g06f0b06-default | grep usb
drwxr-xr-x   2 root     root            0 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/hid/usbhid
-rw-r--r--   1 root     root       123360 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/hid/usbhid/usbhid.ko
drwxr-xr-x   5 root     root            0 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/usb
drwxr-xr-x   2 root     root            0 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/usb/core
-rw-r--r--   1 root     root       581504 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/usb/core/usbcore.ko
drwxr-xr-x   2 root     root            0 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/usb/host
-rw-r--r--   1 root     root       167784 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/usb/host/ehci-hcd.ko
-rw-r--r--   1 root     root        16984 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/usb/host/ehci-pci.ko
-rw-r--r--   1 root     root        20664 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/usb/host/ehci-platform.ko
-rw-r--r--   1 root     root       106160 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/usb/host/ohci-hcd.ko
-rw-r--r--   1 root     root        17832 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/usb/host/ohci-pci.ko
-rw-r--r--   1 root     root        88792 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/usb/host/uhci-hcd.ko
-rw-r--r--   1 root     root       508456 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/usb/host/xhci-hcd.ko
-rw-r--r--   1 root     root        20800 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/usb/host/xhci-pci.ko
drwxr-xr-x   2 root     root            0 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/usb/storage
-rw-r--r--   1 root     root        46144 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/usb/storage/uas.ko
-rw-r--r--   1 root     root       166960 Feb 28 16:10 lib/modules/4.15.6-1.g06f0b06-default/kernel/drivers/usb/storage/usb-storage.ko
#
"/boot/initrd-4.15.6-1.g06f0b06-default" muss dabei die "initrd" sein, die Du auf Deinem USB-Stick zum Starten benutzen willst.

Um Module in Deine "initrd" zu integrieren nutzt Du "dracut" mit den Optionen "-f" und "--add" für detailliertere Informationen siehe
Code:
man dracut


f.gruber schrieb:
... Aber eigentlich schaut es so aus, als ob die USB Geräte erkannt werden - siehe mein nächstes Posting:http://linux-club.de/forum/viewtopic.php?f=90&t=122289#p784273
Das kann ich anhand der mir vorliegenden Informationen nur schwer beurteilen.

Um sicher zu gehen, dass die "initrd" auch die korrekten UUIDs für das "/"-Dateisystem und SWAP enthält, habe ich bei meinem USB-Notfall-Stick vorsichtshalber mit Hilfe einer "chroot"-Umgebung die "initrd" auf dem USB-Stick neu erstellt
Code:
# dracut -f
Vielleicht hilft das in Deinem Fall auch weiter.

Viele Grüße

susejunky
 

josef-wien

Ultimate Guru
f.gruber schrieb:
eigentlich schaut es so aus, als ob die USB Geräte erkannt werden
Das schrieb ich schon am 27. Februar 2018. Du mußt herausfinden, wo dieser systemd-"start job" definiert ist und was er mit der (von Dir "nachträglich" zur Systempartition erklärten) Partition machen will, aber dabei kann ich Dir wie gesagt nicht helfen.
 
OP
F

f.gruber

Hacker
josef-wien schrieb:
Du mußt herausfinden, wo dieser systemd-"start job" definiert ist
Da brauche ich dringend Hilfe.

Habe nachgeschaut in /etc/systemd - nehme an, dass dort die relevanten Sachen zu finden sind.
Habe auch gesucht in /usr/lib/systemd.

Meine Vermutung war, dass es etwas mit den GuestAdditions von Virtualbox zu tun hat, daher habe ich diese units und die entsprechenden Symlinks gelöscht.

Habe dann alle toten Symlinks in diesen Verzeichnissen gelöscht. Es hat aber nichts bewirkt.
Ich weiß leider nicht, wonach ich eigentlich suchen soll. Wie soll ich diesen Start job identifizieren?

Möglicherweise hat es etwas zu tun mit dem Laden des Plymouth Boot Screen, da dies die letzte Meldung ist, die ich sehe, wenn ich Strg + Alt + F1 drücke.

Und, was mir noch auffällt in der Fehlermeldung:
Code:
A start job is running for dev-disk-by\x2dlabel-linuxUSB.device
Was soll dieses
Code:
\x2d
bedeuten?
 
OP
F

f.gruber

Hacker
Da alle Versuche, den Bootvorgang zu ermöglichen, fehlgeschlagen sind, habe ich nun folgende einfache Lösung gefunden:

Ich habe von einer anderen Suse 42.3 Installation das ganze Verzeichnis /boot auf den USB Stick kopiert und die Konfiguration von grub2 /boot/grub2/grub.cfg manuell an den Stick angepasst.

Warum es nicht funktioniert hat, weiß ich nun nicht und werde ich wohl nie erfahren. Aber das System bootet vom USB Stick.

Danke allen für die Hilfe. Habe jedenfalls einiges gelernt bei stundenlangen Versuchen.
 

marce

Guru
die Lösung dürfte vermutlich maximal so lange halten, bis das System die /boot-Dateien selbst wieder neu anlegt und sie aus den /etc/grub-Dingern neu erstellt - sprich beim nächsten Kernelupdate.
 
Oben