• 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] System hängt nach Dateisystemkonvertierung

Liebe Susefreunde,

Ich musste mein Dateisystem von xfs auf ext3 konvertieren, da Acronis mit xfs nicht mehr lief. das ganze habe ich mit dem Rettungssystem realisiert. nachdem die Datenträger konvertiert wurden und ich die alten Daten mit "cp -a *.[^.]* Pfad" zurückkopiert habe, hing der Grubloader mit der Fehlermeldung "Grub loading, please wait... Error 17". Dies konnte ich mit der Super-Grub-Disk beheben. in der fstab habe ich noch xfs in ext3 geändert. Nun fängt er zwar an, dass System zu booten, hängt sich aber nach kurzer zeit auf. die letzte Meldung, die ich noch sehen kann ist "drivers/hid/usbhid/hid-core.c: v2.6:USB HID Core driver". in eine andere Konsole kann ich nicht wechseln. Das ganze läuft über Suse 10.3
Dazu möchte ich noch anmerken, dass ich erst seit ein paar Wochen mit Linux arbeite. Wenn ihr Vorschläge habt, dann erklärt mir bitte ausführlich was ich zu tun habe, da ich noch total auf der Leitung stehe. Ebenfalls weiß ich auch nicht, wo ich eventuelle Logfiles einsehen kann. Falls ihr die benötigt, sagt mir bitte welche es sind und wo ich sie finden kann. Ich hoffe, es kann mir jemand weiterhelfen.
 
A

Anonymous

Gast
Ich nehme mal stark an in der initrd ist noch nicht das Modul für ext3 enthalten sondern nóch das alte und er kann also das Rootverzeichnis nicht lesen.
Konfigurationsdatei ist /etc/sysconfig/kernel
Zeile könnte zB so hier aussehen.
Code:
INITRD_MODULES="piix processor thermal fan jbd ext3"
danach mit dem Befehl mkinitrd eine neue initrd erstestellen.
Dazu am aller Besten mit chroot in das richige Rootverzeichnis wechseln und dort hinein alle Systemrelevanten Verzeichnisse mounten die zum System gehören, (reine Datenpartitionen braucht man dazu nicht), bevor der mkinitrd Befehl abgegeben wird. Ein mount -a sollte in der chroot-Umgebung meist ausreichen um alles einzuhängen.

Aufpassen musst du, wenn du den Rechner mit eine anderen Kernelversion starten musst, als der Rechner normalerweise startet. Das wird zB der Fall sein, wenn du für das ganze ein Notsystem von CD booten musst. In diesem Fall musst du dem mkinitrd-Befehl noch die richtige Kernelversion mitgeben, sonst versucht er eine initrd für den aktuell laufenden kernel zu erstellen, und die kannst du nicht gebrauchen. Da sich solche Optionen bei mkinitrd hin und wieder mal ändern, schau am besten bei dir in die Manpage.

Normalerweise sollte sowas auch die Systemreperatur schaffen, ich trau der nur nicht recht über den Weg.

robi
 
OP
B

bitmeio101

Newbie
hallo robi,

erstmal danke für die schnelle hilfe. so, habe nun den eintrag INITRD_MODULES="piix processor thermal fan jbd xfs" in INITRD_MODULES="piix processor thermal fan jbd ext3" geändert. anschließend habe ich das verzeichnis gewechselt; in meinem fall /mnt/sdd1/sda2/root/ dort habe ich dann mount -a eingegeben und anschließend mkinitrd ausgeführt. meldungen gabs dabei keine. gebracht hat mir das ganze aber auch nichts. Ich nutze das originale Rettungssystem von der SUSE-CD
 
A

Anonymous

Gast
bitmeio101 schrieb:
anschließend habe ich das verzeichnis gewechselt; in meinem fall /mnt/sdd1/sda2/root/

Nachdem jetzt die Konfiguration richtig ist, und du die Möglichkeit hättest, versuch eine Systemreparatur ansonsten hier noch mal etwas ausführlicher


ich kann hier draus nicht erkennen was jetzt die Rootpatition genau ist ???? . diese muss du irgendwo gemountet haben oder selbst mounten und dann mit chroot dort hin wechseln.
angenommen dein Rootdevice ist sda2

Code:
mount /dev/sda2 /mnt
chroot /mnt
mount -a
jetzt ist dein /dev/sda ganz normal als / zu sehen, dann ist das richtig so. ( Raus kommen würdest du dort wieder mit "exit")
(Dort jetzt die genaue Kernelversion feststellen die dein Kernel hat, das steht unter /boot/
der könnte zB so hier aussehen. 2.6.27.21-0.1-pae auch eine initrd mit dieser Erweiterung sollte dort so stehen. Eventuell sind dort auch mehrere Kernelversionen installiert, du brauchst ersteinmal die, die du normalerweise immer startest.) EDIT:entfällt bei dir

je nach dem was du jetzt für ein Linux hast, das ist eventuell bei neuen / alten Suse / Ubuntu oder was weiß ich, ganz unterschiedliche Scripte zur initrd-Erstellung und dadurch kann es ganz unterschiedliche Optionen geben und es auch ganz unterschiedlich notwendig werden was wirklich bei dir in diesem Fall gebraucht wird.

mal reicht nur mkinitrd
mal musstest du es mit ein paar speziellen Optionen angeben.
EDIT: Habe jetzt mal unter 10.3 nachgeschaut, da reicht nur mkinitrd das macht automatisch zu allen Kernel die es findet eine neue initrd.
Kannst auch gerne noch mal in die Manpage schauen, dort ist diese ganze Prozedur so beschrieben.

Code:
 What should you do if the initrd is broken and you want to fix it using a chroot?  I assume /mnt is your target root  and  /boot
       is mounted inside.

              1. mount --bind /dev /mnt/dev
              2. chroot /mnt
              3. mount /proc
              4. mount /sys
              5. mkinitrd

danach dann solange exit bis du aus der chroot-Umgebung draußen bist und dann Rechner rebooten

PS: für alle Anderen die sowas auch mal vorhaben, am besten bevor man das Filesystem umstellt schon gleich eine neue initrd erstellen die dann auch das neue und das alte Filesystem unterstützen, das spart einen Haufen Arbeit und Probleme. dabei reicht dann auch mkinitrd ganz sicher ohne Parameter.

robi
 
OP
B

bitmeio101

Newbie
guten morgen,

danke für die sehr verständliche anleitung. habe sie eben ausprobiert, dabei hat sich folgendes problem ergeben. rettungssystem hochgefahren und /dev/sda2 gemountet (ist meine rootpartition), soweit kein problem. habe anschließend einmal mount eingeben, um sicherzustellen, dass sie korrekt gemountet wurde. dort hat er folgendes ausgeben:

/dev/sda2 on / type ext3 (rw)

wenn ich nun aber chroot /mnt eingebe und anschließend mit dem mount-befehl prüfe zeigt er folgendes:

/dev/sda2 on / type xfs (rw)

warum wird type geändert? dies macht er auch bei allen anderen platten, die in der fstab stehen. in der fstab stehen sie aber als ext3 drin. wenn ich nun mount -a eingebe, sagt er mir "special device /dev/sda3 does not exist".
/dev/sda3 benötigt er aber für mkinitrd. denn bei mkinitrd meckert er:

special device /dev/sda3 does not exist
/usr/bin/ldd not available and mount /usr failed mkinit does not work without it


/usr ist der ursprüngliche mountpoint für sda3.
 
A

Anonymous

Gast
wenn der die Devices nicht finden sollte, dann ist wahrscheinlich das /dev Verzeichnis nicht gemountet. Machs mal so wie es in der Manpage beschrieben ist, mit mount --bind

Code:
1. mount --bind /dev /mnt/dev
              2. chroot /mnt
              3. mount /proc
              4. mount /sys
              5. mkinitrd
Dann vor mkinitrd noch mount -a um dein /usr und eventuell andere noch einzuhängen.

Ansonsten lügt die Ausgabe von mount in einer chroot-Umgebung. Das ist normal. Sie greift da zB auch auf die Datei /etc/mtab zu, die sich ja dabei ändert und noch den alten Zustand vom letzten normalen Hochfahren des Systems hat.

robi
 
OP
B

bitmeio101

Newbie
so, hat zwar etwas gedauert, bis ich es hinbekommen habe. aber hab es jetzt geschafft sda3 zu mounten. wenn ich nun mkinitrd eingebe, erhalte ich folgende meldungen:


Rescue:~ # mount /dev/sda2 /mnt
Rescue:~ # mount --bind /dev /mnt/dev
Rescue:~ # chroot /mnt
Rescue:/# mount -a
mount error 101 = Network is unreachable
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)
Rescue:/# mount /proc
Rescue:/# mount /sys
Rescue:/# mkinitrd

Code:
/dev/sda3 on /usr type ext3 (rw)                                                                                                                                                                                                                                                                                        
Kernel image:   /boot/vmlinuz-2.6.22.18-0.2-default                                                                                                         
Initrd image:   /boot/initrd-2.6.22.18-0.2-default                                                                                                          
/lib/mkinitrd/setup/01-prepare.sh: line 156: getent: command not found                                                                                      
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/01-prepare.sh: line 29: find: command not found                                                                                         
/lib/mkinitrd/setup/01-prepare.sh: line 29: xargs: command not found                                                                                        
/lib/mkinitrd/setup/11-storage.sh: line 327: find: command not found                                                                                        
Could not find the filesystem module for root device /dev/sda2 (ext3)                                                                                       
/dev/sda3 umounted                                                                                                                                          
/sbin/mkinitrd: /sbin/update-bootloader: /usr/bin/perl: bad interpreter: No such file or directory                                                                                                                                                                             
Rescue:/#

das system hängt immer noch an der gleichen stelle, wenn ich es hochfahre.
 
A

Anonymous

Gast
bitmeio101 schrieb:
Code:
/dev/sda3 on /usr type ext3 (rw)                                                                          
Kernel image:   /boot/vmlinuz-2.6.22.18-0.2-default                                                                                                         
Initrd image:   /boot/initrd-2.6.22.18-0.2-default
bis hier her sieht es gut aus und es läuft auch alles normal.
Danach findet er allerdings nicht mal die einfachsten Befehle unterhalb von /usr/bin

Schau mal ob in der chroot-Umgebung wirklich unterhalb von /usr Dateien sind und ob dort sich unter /usr/bin/ auch jeden Menge Befehle verbergen. Nicht das irgendwie beim Konvertieren der Filesysteme das /usr Filesystem irgendwie verschütt gegangen ist.

dann mach mal bitte bevor du den mkinitrd Befehl absetzt noch folgendes, eventuell ist auch die Shell die du von der CD her nutzt nicht komplett initalisiert? Währe seltsam, aber möglich.

Code:
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin
export PATH

Wenn der mkinitrd Befehl erfolgreich läuft, dann macht er pro Kernel so ungeführ 10 Zeilen Ausgaben in denen dann auch ziemlich genau steht was er gemacht hat. Solange das nicht kommt, brauchst du gar nicht versuchen, da bleibt der Fehler beim booten immer gleich.


robi
 
OP
B

bitmeio101

Newbie
ja spitze, auf sda3 haben die daten gefehlt. habe sie nochmal neu rüberkopiert und nun hat alles einwandfrei funktioniert. suse läuft wieder. danke für deine kompetente und schnelle hilfe. allein hätte ich es nicht geschafft.

gruß sascha
 
Oben