PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : alte Platte auf neues System kopiert - aber woher /dev nehmen?



ThorstenHirsch
02.05.03, 17:12
Servus!

Hab gerade mein komplettes altes System auf ne neue Platte kopiert. Beim Booten kommt aber die Meldung

Warning: unable to open an initial console.
an der Stelle an der eigentlich "INIT: 2.85..." kommen müsste. Tja, und dann bleibts hängen.
Ich tippe mal, dass es an /dev liegt, denn das konnte ich nicht kopieren - klar.
Leider hab ich jetzt aber auch keine Ahnung, wie ich die Einträge dort wieder herstellen kann.
Ich hab da was von einem MAKEDEV-Skript gelesen, aber das Problem ist dann ja (da ich noch nicht von der neuen Platte booten kann, sonder nur von der alten, die neue ist aber unter /mnt gemountet), dass ich entweder /proc und /dev von der alten Platte hab, was mir ja nix bringt, oder dass ich ne chroot-Umgebund hab, in der /proc und /dev von der neuen Platte sind, in /proc jedoch nix vernünftiges drinsteht, weil als /proc ja das alte /proc benutzt wird.

Okay, hört sich verwirrend an, ich will's mal einfacher audrücken:
wie kann ich die Einträge in /dev erstellen, wenn ich nur über ein Rettungssystem auf die Platte, in der /dev hin soll, booten kann?


Gruß,
Thorsten

ThorstenHirsch
02.05.03, 17:55
So, ich hab jetzt ne Lösung gefunden, die aber gar keine ist:
mit "mount --bind" konnte ich ne chroot-Umgebung schaffen, in der /proc richtig ist und /dev auf der richtigen Partition...genauer gesagt hab ich in die neue Partition das /proc des SuSE 8.2-Rettungssystem ge-bind-mountet.

Leider klappt MAKEDEV nicht! :(

Es wird zwar ohne Fehler ausgeführt, aber es erscheinen keine Einträge in /dev.
Braucht MAKEDEV vielleicht noch ne Datei? MAKEDEV war nämlich die einzige, die ich aus dem alten /dev kopiert hatte...

Gruß,
Thorsten

zander
02.05.03, 17:56
Falls du devfs benutzt mußt Du nur den entsprechenden mount point (/dev) erstellen; ansonsten kannst Du /dev durchaus kopieren (Dir bleibt auch nichts anderes übrig...).

ThorstenHirsch
02.05.03, 18:49
Ich kann /dev aber nicht kopieren, da alle Geräte meinen, ich wollte lesend auf sie zugreifen.
Is aber auch net schlimm, ich hab ne Manpage zu Makedev gefunden (unter /mnt/sbin/ war's installiert, auf der SuSE-CD nicht) und mit "MAKEDEV generic" hat's mehr oder weniger funktioniert.

Zumindest bootet er wieder, aber die ALSA-devices und /dev/video0 sind (noch) nicht da. Jetzt bin hoff' ich mal, dass der nvidia-Treiber letzteres installiert und das snddevices-Skript von ALSA ersteres....aber wahrscheinlich fehlen noch mehr /dev-Einträge... :(

marcdevil
02.05.03, 19:00
/dev und /proc archiviert man ja auch nicht im laufenden Betrieb, sondern von einem anderen Linux aus (Knoppix, 2.Linux auf anderer Part.)

ThorstenHirsch
03.05.03, 00:04
Man archiviert /proc??? Wozu denn das?

marcdevil
03.05.03, 05:16
evtl. ist da ja der ein oder andere Link drin, k.a. es schadet jeden falls nicht.

kth
03.05.03, 18:56
[Archivierung von /proc]

evtl. ist da ja der ein oder andere Link drin, k.a. es schadet jeden falls nicht.Absolut überflüssig. :p

Der Inhalt des proc-Dateisystems wird vollständig dynamisch vom Kernel bereitgestellt. Sobald man es unter /proc mountet, werden dort vorher abgelegte Dateien ohnehin ausgeblendet.

Korn
03.05.03, 19:38
Hi Thorsten,


ich habe schon öfters mal Partitionen kopiert/verschoben. Am sichersten ist folgende Vorgehensweise.

(1) RescueSystem oder Knoppix booten (kein /proc!!, keine sonstigen gemounteten Laufwerke)
(2) neue und alte Partition/Platten mouten
(3) auf die zu kopierende Partition/Platten (mountpoint) wecheseln
(4) kopieren mit:
tar -cSp --numeric-owner -f - . | ( cd /neueplatte && tar xSpvf - )(5) fstab und bootmanager anpassen
(6) unmounten und rebooten

Das wars. Absolut sicher. Es gehen alle Dateien/Rechte etc. mit rüber!


Gruß Korn


P. S. hab grad noch den Link dazu gefunden: http://sdb.suse.de/de/sdb/html/maddin_kopieren.html

Hab die Datei doch noch gefunden wie Du Dein /dev wiederbekommst [Quelle unbekannt]:


Gerätedateien in /dev neu erstellen

Fahre das System zuerst in den Single- User- Modus herunter. Die Partitionen bleiben als »rw«(read-write) gemountet. Du kannst das tun, indem Du einfach »shutdown now« eingibst, wenn Du Dich im Multiuser- Modus befindest oder mit der Option »-s« einen Reboot ausführen und »/« und »/dev« lese- und beschreibbar machen indem Du das hier tust:

# mount -u /
# mount -u /dev


Danach:

# mkdir /nudev
# cd /nudev
# cp /dev/MAKEDEV* .
# sh ./MAKEDEV all
# cd /
# mv dev odev
# mv nudev dev
# rm -r odev

Oder wenn Du alle Sourcen in »/usr/src« hast:

# mkdir /nudev
# cd /nudev
# cp /usr/src/etc/MAKEDEV.local .
# cp /usr/src/etc/etc.$arch/MAKEDEV .
# sh ./MAKEDEV all
# cd /
# mv dev odev; mv nudev dev
# rm -r odev


Du kannst $arch mit

# uname -m


bestimmen oder mit

# sysctl hw.machine_arch


Auf dem zweiten Weg (Das Kopieren der MAKEDEVs aus dem Quellbaum) fügt zumindest in der i386- Architektur zusätzliche Geräte hinzu. Es ist beispielsweise jetzt möglich, 16 Partitionen zu haben anstatt nur 8. Wenn Du die »alten« MAKEDEVs aus »/dev« benutzst, werden die zusätzlichen Gerätedateien nicht hergestellt.

ThorstenHirsch
03.05.03, 22:54
Danke!

geronet
04.05.03, 09:45
Ich kann /dev aber nicht kopieren, da alle Geräte meinen, ich wollte lesend auf sie zugreifen.
Huhu, bei "man cp" gibts so schöne Parameter ;)

-r Rekursives kopieren, nicht-Verzeichnisse als Dateien. WARNUNG: verwenden Sie -r wenn unter Umständen Spezialdateien wie FIFOs oder /dev/zero kopiert werden

cp -ar /dev /dev2
geht doch ohne Probleme.. auch bei laufendem System. Sind doch nur stinknormale Dateien.

Grüsse, Stefan