# Udev und Update

## Hollowman

Hi

Ich hab da ma ein komisches Problem. Ich hab ne Gentookiste, an der sehr viel rum gefummelt wurde. Somit weiß ich nicht genau was da abgeht.

Problem ist folgendes:

Da wurde schon Ewigkeiten kein Update mehr drauf gemacht. Also hab ich das jetzt ma gemacht. Hat lange gedauert und es waren viele blockings und Fehler dabei. Aber zum Schluss läuft revdep-rebuild und emerge -a --update --deep --newuse world sauber durch. Kernel ist auch gebaut und hat mit der alten Software gebootet.

Wenn ich dann aber mit der aktualisierten Kiste boote sagt er mir das er /dev und /proc nicht einhängen kann weils schon da ist. Außerdem meckert udev das es schon läuft und das Hotplug ReadOnly ist. Ich hab das ganze jetzt 4 mal zurück gespielt und wieder geupdatet. Jedesmal das selbe.

Bis vor dem boot geht alles prima. Nach dem boot geht nix mehr.

Wenn ich dann von der LiveCD aus chroote, kann ich rudimentäre Sachen machen, aber emerge und revdep-rebuild bleiben beim laden von Files auf der Platte stehen und geben nichts aus. Strace zeigt mir ne Endlosschleife an. Die Files die er da anmeckert sind aber da.

Noch was fällt mir ein:

Im Kernel post sagt er mir das /dev/sda3 ext3 ist. In der Grub Konsole sagt er aber das es ext2 ist. Er meckert dann auch beim einhängen von / das es kein gültiges ext2 ist. Aber ich denk ma das liegt daran das udev fehlt oder?

Woran kann das liegen?

Sebastian

----------

## fangorn

 *Hollowman wrote:*   

> 
> 
> Im Kernel post sagt er mir das /dev/sda3 ext3 ist. In der Grub Konsole sagt er aber das es ext2 ist. Er meckert dann auch beim einhängen von / das es kein gültiges ext2 ist. Aber ich denk ma das liegt daran das udev fehlt oder?
> 
> Woran kann das liegen?
> ...

 

So ein PRoblem klingt für mich verdächtig nach einem korrupten Dateisystem. 

Zum Rest der PRobleme: 

Hast du etc-update (oder etwas ähnliches) laufen lassen? 

Hast du dabei darauf geachtet, dass handveränderte Dateien nicht von Defaultdateien aus aktualisierten PAketen überschrieben wurden?

Derart große Updates mit mehreren Zwischenversionen die übersprungen werden gehen selten glatt. Ich ziehe in diesem Fall eine "kreative Neuinstallation" vor. Dabei kopiere ich das /etc Verzeichnis in einen aktuelles stage3 Installationssystem und lasse emerge --system laufen. Dann kopiere ich noch die world datei und emerge alle Pakete darin. (einfach alle Newlines (\n) durch leerzeichen ersetzen und emerge -e davor setzen ergibt ein klasse Script). Danach muss man zwar immer noch aufpassen, dass man keine Einstellungen überschreibt, aber es läuft üblicherweise deutlich glatter, da kritische Pakete noch nicht installiert sind. 

Dass zuvor alle eventuell auf dem system liegenden nutzerdaten in Sicherheit gebracht werden sollten brauche ich wohl nicht extra zu sagen, oder?

----------

## Max Steel

Dieser Befehl emerge --system ist afaik nicht empfohlen, besser wäre emerge system  :Wink: 

 *fangorn wrote:*   

> [...]Dann kopiere ich noch die world datei und emerge alle Pakete darin. (einfach alle Newlines (\n) durch leerzeichen ersetzen und emerge -e davor setzen ergibt ein klasse Script).[...]

 

Alternativ könnte er die stage3-World Datei auch mit der "alten" World Datei überschreiben und danach einfach ein emerge -e @world laufen lassen.

Oder soweit ich weißversteht portage auch die Newlines, soll heißen:

emerge -e $(cat /var/lib/portage/world)

(als Beispiel)

----------

## Hollowman

 *Quote:*   

> So ein PRoblem klingt für mich verdächtig nach einem korrupten Dateisystem. 

 

e2fsck hab ich 3 mal drüber laufen lassen. Jedes mal ohne Probleme. Wäre auch komisch das er mir 4 mal beim Update das FS zerschießt.

 *Quote:*   

> Hast du etc-update (oder etwas ähnliches) laufen lassen?
> 
> Hast du dabei darauf geachtet, dass handveränderte Dateien nicht von Defaultdateien aus aktualisierten PAketen überschrieben wurden? 

 

Hab ich laufen lassen, alles angeguckt. Passt alles. Bootet weder mit den neuen noch mit den alten Dateien. Hab ich X mal alles kopiert und ersetzt. Mit den dafault Dateien sollte der aber auf jeden Fall in die Konsole booten. Das macht er auch nicht.

 *Quote:*   

> Derart große Updates mit mehreren Zwischenversionen die übersprungen werden gehen selten glatt. Ich ziehe in diesem Fall eine "kreative Neuinstallation" vor. Dabei kopiere ich das /etc Verzeichnis in einen aktuelles stage3 Installationssystem und lasse emerge --system laufen. Dann kopiere ich noch die world datei und emerge alle Pakete darin. (einfach alle Newlines (\n) durch leerzeichen ersetzen und emerge -e davor setzen ergibt ein klasse Script). Danach muss man zwar immer noch aufpassen, dass man keine Einstellungen überschreibt, aber es läuft üblicherweise deutlich glatter, da kritische Pakete noch nicht installiert sind. 

 

Das Problem ist, das ich das System nicht aufgesetzt hab. Das ist ein System in nem Rechner Pool. Ich bin jetzt nur der ders nach Jahren updaten soll.

Ich mach die Kiste jetzt morgen neu. Dann weiß ich wenigstens was da abgeht. Aber wieso das Update nicht geht würde mich schon mal interessieren, und vor allem warum ich danach im chroot nix mehr installieren kann. python-updater und revdep-rebuild läuft vor dem Reboot immer ohne Probleme durch.

Sebastian

----------

