PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kernelupdate rückgängig machen?



Niniveh
04.12.04, 15:10
Hallo

Ich habe SuSE 9.2 und es steht ein Kernelupdate an. Ob es gerade dieses 2.6.24.5 sein muß sei einmal dahingestellt, aber irgendwann muß ich wohl.
In der SuSE Hilfe steht, daß man den alten Kernel sichern muß, indem man als Root diese zwei Befehle in der Konsoel eingibt:
cp /boot/vmlinuz-$(uname -r) /boot/vmlinuz.old
cp /boot/initrd-$(uname -r) /boot/initrd.old
Also die Datei "vmlinuz" und "initrd" sind nun im gleichen Verzeichnis nochmals mit dem Namenszusatz ".old" versehen.

Hier im Forum las ich, daß mitunter der Grafiktreiber danach nicht mehr funktioniert und das kann ich nun wirklich nicht brauchen.
http://www.linuxforen.de/forums/showthread.php?p=1015947&posted=1#post1015947

Wie ich das Kernel-Update bei Bedarf rückgängig mache habe ich aber nun nicht verstanden. Kann mir jemand hier weiterhelfen? Bin Laie.
Eigentlich würde ich mir es so denken, daß ich bei den die beiden gesicherten Dateien den Zusatz ".old" wegnehme und die beiden ohne ".old", die neuen also, lösche. So wird es wohl nicht gehen, oder?

heatwalker
04.12.04, 15:27
Hallo,
du kannst, wie SuSE beschrieben, den alten Kernel wegsichern.
Für den Fall das daß Kernelupdate fehlschlägt machst du Dir einfach einen
zusätzlichen Eintrag in die Grubconf.

Angenommen dein Standardeintrag in Grub sieht so aus:

title Standardkonfig # Der Standardeintrag in Grub
kernel (hd0,X)/vmlinuz root=/dev/hdaxx
initrd (hd0,X)/initrd
Nun erweiterst du diesen um:

title Alter_Kernel # Sicherungseintrag bei Fehlschlag
kernel (hd0,X)/vmlinuz.old root=/dev/hdaxx
initrd (hd0,X)/initrd.old
Diesen Eintrag kannst du entweder über Yast2 "System/Konfiguration des Bootloaders" ändern oder alternativ mit einem Editior in

/boot/grub/menu.lst
Schau Dir vorher den Dateiaufbau in "/boot" per "ls -la" an, weil vmlinuz und initrd als symbolische Links angelegt sind. Die sollten so auch wieder angelegt werden,
falls du ein Update insgesamt wieder rückgängigmachen willst.

DrunkenFreak
04.12.04, 15:29
es könnte passieren dass die grafiktreiber nicht mehr gehen. die installierst du dann einfach noch mal neu.
um das kernelupdate rückgängig zu machen überschreibst du einfach den neuen kernel und die neue initrd mit der den alten. einfacher wäre es aber wenn du es über deinen bootmanager machst.

so long

Niniveh
05.12.04, 11:46
Vielen Dank Ihr Beiden
Ich will als Unerfahrener mal ganz vorsichtig vorgehen. Übrigens habe ich herausgefunden, wie ich in YAST die Grubdatei menu.lst editiere. Ist eigentlich das gleiche als wenn ich es mit Kate mache :)

Ich kopiere hier die fraglich Stelle der menu.lst herein. Es ist am Ende der Datei:

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE LINUX 9.2
kernel (hd0,8)/vmlinuz root=/dev/hda6 showopts ide=nodma apm=off acpi=off vga=normal noresume selinux=0 barrier=off nosmp noapic maxcpus=0 3
initrd (hd0,8)/initrd


Editierungsversuch, wäre es so richtig?:

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE LINUX 9.2
kernel (hd0,8)/vmlinuz.old root=/dev/hda6 showopts ide=nodma apm=off acpi=off vga=normal noresume selinux=0 barrier=off nosmp noapic maxcpus=0 3
initrd (hd0,8)/initrd.old

Mal angenommen, die Krafikkarte geht nach dem Update nicht mehr, dann habe ich doch kein Bild mehr und kann nichts rückgängig machen? Oder ist es nur ein sehr schlechtes Monitorbild?

Wenn ich den Grafikkartentreiber neu installieren muß:
In "YAST - Installieren löschen" wird unter "nvidia" nur dieser Eine aufgeführt:
xorg-x11-server-glx - GLX-Erweiterung und NVidia-Dummy-Treiber-Module
Version: 6.8.1-15
Alternative- und Installierte Version ist gleich.
Ich vermute jetzt einmal, daß ich einfach diesen nochmal darüberbügeln muß und das z.Zt. installierte "NVidia 3D Update" lediglich eine "Erweiterung" dieses Treibers und kein "neuer-anderer" Treiber ist. Beim drüberbügeln würde, rate ich mal, die 3D Erweiterung gelöscht-überschrieben?
Ist es so richtig?

heatwalker
05.12.04, 13:07
# Menue.lst
Jo, grundsätzlich wäre es so richtig. Ich würde allerdings einen
komplett neuen Eintrag hineinsetzen ohne vorhandene zu verändern. (-:

#Grafiktreiber
Die Probleme sollten erst beim Start von X auftreten.
Wenn du mit "init 3" startest greift er auf Grafikkartentreiber nicht zurück und
da kannst die Änderungen in der Konsole rückgängig machen.

Niniveh
06.12.04, 18:49
Danke heatwalker

Ich stelle mich aus Deiner Sicht bestimmt sehr blöd an, tut mir leid, aber ich weiß wirklich nicht auf was es bei einem "eigenen Eintrag" ankommt?
Oben dran, darunter, Sonderzeichen davor oder meist Du, ich solle den bestehenden Eintrag (Absatz) löschen und nochmal neu, mit der Änderung schreiben?
Oder wo lese ich so etwas für Laien auf deutsch nach?
In der online SuSE Hilfe werde ich nicht fündig.

heatwalker
06.12.04, 20:23
Ach was (-:

Ist ganz einfach. Du kopierst Dir zum Beispiel diesen Eintrag:

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE LINUX 9.2
kernel (hd0,8)/vmlinuz root=/dev/hda6 showopts ide=nodma apm=off acpi=off vga=normal noresume selinux=0 barrier=off nosmp noapic maxcpus=0 3
initrd (hd0,8)/initrd

... und fügst ihn noch einmal zusätzlich ein und änderst die ensprechenden Teile

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE LINUX 9.2
kernel (hd0,8)/vmlinuz root=/dev/hda6 showopts ide=nodma apm=off acpi=off vga=normal noresume selinux=0 barrier=off nosmp noapic maxcpus=0 3
initrd (hd0,8)/initrd

###Don't change this comment - Mein alter Kernel: Original name: Alter_kernel###
title Rettungsanker -- SUSE LINUX 9.2
kernel (hd0,8)/vmlinuz.old root=/dev/hda6 showopts ide=nodma apm=off acpi=off vga=normal noresume selinux=0 barrier=off nosmp noapic maxcpus=0 3
initrd (hd0,8)/initrd.old


Du must dafür auch nicht den Failsafeeintrag nehmen. Der 1. (Linux) geht auch.

Jetzt ok?? :p

carnil
06.12.04, 21:48
Hallo

Mal abgesehen vom recht hilfreichen Beitrag von heatwalker, wenn Du dann doch noch etwas mehr über GRUB erfahren und lernen möchtest, könntest Du dann in das GRUB Manual (http://www.gnu.org/software/grub/manual/grub.html) reinlesen, dann weisst Du anschliessend auch was welche Optionen bedeuten usw ... so nur als Lernzweck.

MfG carnil

MiGo
06.12.04, 22:19
Nochmal so erklärend zusammengefasst (vielleicht liest's ja mal jemand, der's braucht :D ) :
Der eigentliche Kernel liegt im Verzeichnis /boot, ist eine reguläre Datei und heisst per default bei SuSE "vmlinuz-<kernelversion>. Du kannst ihn auch "Rosagruen-mit-allen-treibern.mpg" nennen, das ist völlig egal (nur wird es dann ein wenig unübersichtlich :)).
Die "initrd" heisst ausgeschrieben Initial Ramdisk, und beherbergt alle Treiber und Kernelmodule, die man zum booten so braucht, die aber nicht fest im Kernel einkompiliert worden sind (z.B. der Treiber für IDE-Festplatten oder für dein Dateisystem; wäre doof, wenn er den beim Booten nicht hätte. Dann findet er nämlich garnix mehr.) Auch die kann heissen, wie du willst. Wichig ist nur, dass du Grub (dem Bootloader) mitteilst, wo er was findet.
Theroretisch kannst du soviele verschiedene Kernel gleichzeitig haben, wie du willst (nur beschränkt durch die Grösse von /boot, iirc). Es kann halt nur immer einer gleichzeitig laufen :)

Dass der Nvidia-Treiber nach einem Kernelupdate nicht mehr geht, ist normal. Schliesslich ist ein Teil des NVidia-Treibers ein Kernel(!)-Modul, welches auf den Kernel, mit dem es zusammenarbeiten soll, zugeschnitten ist. Ist der Kernel ein neuer, greift das Modul natürlich ins Leere (und ist idr ausserdem im falschen Verzeichnis, aber das nur so nebenbei).
IIRC ist es allerdings durchaus möglich, nur den Kernelspezifischen Teil neu zu installieren (Option --add-this-kernel oder so ähnlich), so dass die 3D-Beschleunigung unter verschiedenen Kerneln gleichzeitig funktioniert.
Genug gelabert,
MiGo

Niniveh
07.12.04, 18:03
Danke
Also aller Vorsicht zum trotz, das befürchtete trat nicht ein, dafür etwas anderes :cool:

Der Kernel läuft offenbar problemlos. Ich denke mal, dass ich wenn alles funzt den alten Kernel (die Sicherung) löschen kann, denn meine Bootpartition ist nicht die größte.
Der NVidia Treiber läuft auch prima, sogar 3D.

Aber keine Interneteinwahl mehr :confused:
Mit der habe ich beim konfigurieren ohnehin schon immer Mühe gehabt.
Habe alles nochmal nachgesehen, aber keine problematische Änderung gefunden.
Meinen 1&1 Provider nochmals zusätzlich eingerichtet, geht immer noch nicht. Auch rief ich zuerst die ISDN Konfiguration auf, damit im Zweifel so der Capitreiber geladen wird. Soweit ich sehe scheint alles in Ordnung zu sein.

Aber dennoch keine Einwahl. Hier das Protokoll, ich hoffe Ihr helft mir weiter!:


SuSE Meta pppd (smpppd-ifcfg), Version 1.50 on linux.
Status is: disconnected
trying to connect to smpppd
connect to smpppd
Status is: disconnected
Status is: connecting
pppd[0]: Plugin capiplugin.so loaded.
pppd[0]: capiplugin: $Revision: 1.35 $
pppd[0]: capiconn: 1.9
pppd[0]: capiplugin: CAPI_REGISTER failed - CAPI not installed (0x1009) [No such device or address (6)]
Status is: disconnected
pppd[0] died: Fatal pppd error (exit code 1)

Verstehe ich diesen Satz richtig?
pppd[0]: capiplugin: CAPI_REGISTER failed - CAPI not installed
Der Capitreiber fehlt? Das wurde doch nur geladen, wenn ich zuerst ISDN-Konfiguration aufrief und gleich zu DSL weiter ging?
Habe übrigens kein ISDN, nur DSL.

Niniveh
19.12.04, 19:06
Ach was (-:

Ist ganz einfach. Du kopierst Dir zum Beispiel diesen Eintrag:

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE LINUX 9.2
kernel (hd0,8)/vmlinuz root=/dev/hda6 showopts ide=nodma apm=off acpi=off vga=normal noresume selinux=0 barrier=off nosmp noapic maxcpus=0 3
initrd (hd0,8)/initrd

... und fügst ihn noch einmal zusätzlich ein und änderst die ensprechenden Teile

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE LINUX 9.2
kernel (hd0,8)/vmlinuz root=/dev/hda6 showopts ide=nodma apm=off acpi=off vga=normal noresume selinux=0 barrier=off nosmp noapic maxcpus=0 3
initrd (hd0,8)/initrd

###Don't change this comment - Mein alter Kernel: Original name: Alter_kernel###
title Rettungsanker -- SUSE LINUX 9.2
kernel (hd0,8)/vmlinuz.old root=/dev/hda6 showopts ide=nodma apm=off acpi=off vga=normal noresume selinux=0 barrier=off nosmp noapic maxcpus=0 3
initrd (hd0,8)/initrd.old


Du must dafür auch nicht den Failsafeeintrag nehmen. Der 1. (Linux) geht auch.

Jetzt ok?? :p
Leider nein. Habe inzwischen neuinstallieren müssen.
Die Änderung in der "menu.lst" habe ich einmal vor den ursprünglichen Eintag gestzt, einmal darunter und einmal das Original ausgetauscht. Der geladene Kernel nach dem booten war stets der neue.
Die Dateien meiner Fritz!Card dsl lagen übrigens alle im neuen Kernel und nicht mehr im alten. Den neuen mit dem alten einfach zu überschreiben wäre auch hier wohl verkehrt. Habe es dennoch versucht.
Also einfach die Dateinamen .old wieder entfernt und den neuen Kernel anders genannt.
Da bootete gar nichts mehr.
Weil ich inzwischen eine Menge in der Neuinstallation konfigurierte möchte ich zukünftig so ein Desaster ganz vermeiden.
Wie risikoreich muß man es auf meinem Einzelplatzrechner eigentlich einschätzen, wenn ich auf Kernelupdates ganz verzichte?

Niniveh
27.12.04, 11:49
Mit den folgenden beiden Befehlen als Root werden die beiden "Kerneldateien" gesichert und mit dem Namenszusatz ".old~" versehen. Das angezeigte Symbol ist ähnlich wie der "Grüne Punkt".

cp /boot/vmlinuz-$(uname -r) /boot/vmlinuz.old
cp /boot/initrd-$(uname -r) /boot/initrd.old

Gelingt das Kernelupdate nicht, dann kann es vermutlich rückgängig gemacht werden indem man die Sicherungsdatei umbenennt und dabei einfach das ".old~" entfernt. Man muß dann nur die Nachfrage, ob die schon bestehende Datei, also das Update, überschrieben werden soll bestätigen.
Bei den Sicherungsdateien, die zumindest SuSE 9.2 bei allen möglichen Veränderungen anlegt, wird im Grunde nur eine Tilde (~) an den Dateinamen angehängt.
Meint Ihr, das Kernelupdate rückgängig zu machen ist so einfach? Habe es noch nicht probiert. So funktionierte es jedenfalls bei beliebigen Dateien. Dann wohl auch bei einem Kernel?

carnil
27.12.04, 13:19
Hallo

Eventuell solltest Du jeweils auch noch die Module kopieren: /lib/modules/$(uname -r)/.

MfG carnil

Niniveh
27.12.04, 15:31
Hallo

Eventuell solltest Du jeweils auch noch die Module kopieren: /lib/modules/$(uname -r)/.
Meinst Du ich solle das ganze Verzeichnis /lib/modules kopieren, also sichern? Immerhin 64 MB!
In der SuSE Hilfe jedenfalls stand davon nichts.
Und glaubst Du, dass mein obiger Vorschlag um das Kernelupdate rückgängig zu machen funktionieren würde?