Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

System spiegeln - Probleme mit mkinitrd

Alles rund um die Systemverwaltung, die Administration und Konfiguration Eures Linuxsystems

Moderator: Moderatoren

Antworten
rund
Newbie
Newbie
Beiträge: 2
Registriert: 5. Nov 2009, 21:50

System spiegeln - Probleme mit mkinitrd

Beitrag von rund » 5. Nov 2009, 21:52

Moin moin,
ich habe hier zwei Server, einen primären und einen Backup-Server.
Damit der Backup-Server die Daten des Primärsystems hat, hat dieser ein eigenes Linux unter dem ich per rsync die Daten des Primärsystems auf zwei seperate Partitionen (Nach der Anleitung von http://www.afokken.de/linux/mirror.php) kopiere.
Damit ich von den Backupdaten einen Nutzen habe soll die kopierte Partition am Backup-Server bootbar sein. Ich habe folgende Partionsaufteilung am Backup-Server (eigenes Linux)

Code: Alles auswählen

/dev/disk/by-id/scsi-SATA_WDC_WD800JD-75M_WD-WMAM9CAK2132-part6 /                    ext3       acl,user_xattr        1 1
/dev/disk/by-id/scsi-SATA_WDC_WD800JD-75M_WD-WMAM9CAK2132-part1 /Dalek               ext3       acl,user_xattr        1 2
/dev/disk/by-id/scsi-SATA_WDC_WD800JD-75M_WD-WMAM9CAK2132-part2 /Dalek/home          ext3       acl,user_xattr        1 2
/dev/disk/by-id/scsi-SATA_WDC_WD800JD-75M_WD-WMAM9CAK2132-part7 /home                ext3       acl,user_xattr        1 2
/dev/disk/by-id/scsi-SATA_WDC_WD800JD-75M_WD-WMAM9CAK2132-part5 swap                 swap       defaults              0 0
Der Primärserver wird unter /Dalek mit folgendem Script gespiegelt:

Code: Alles auswählen

#!/bin/sh
# Skript zum Spiegeln von PC1 nach PC2.
# Dieses Skript muß an die jeweiligen Gegebenheiten angepasst werden.
# Nach der Anpassung die folgende Zeile entfernen:
#exit 1

# Nach Ausführung dieses Skripts muss die Datei /etc/fstab
# des pc2-Grundsystems kopiert und von Hand angepasst werden.

# Dieses Skript soll nur auf PC2 laufen
if [ "$HOSTNAME" != "Cyberman" ]; then
  echo "Aufruf '$0' nur auf Cyberman zulässig"
  exit 1
fi

# Variablen
rscmd="rsync -az -v --numeric-ids --delete --delete-after -e ssh"
rhost="dalek:"
root_dir="/Dalek"
home_dir="/Dalek/home"

# Mirror-Partitionen auf PC2 mounten:
mount /dev/sda1 $root_dir
mount /dev/sda2 $home_dir

# Systemverzeichnisse nur einrichten:
test ! -d $root_dir/boot && (mkdir $root_dir/boot; chmod 755 $root_dir/boot)
test ! -d $root_dir/media && (mkdir $root_dir/media; chmod 755 $root_dir/media)
test ! -d $root_dir/media/cdrom && (mkdir $root_dir/media/cdrom; chmod 755 $root_dir/media/cdrom)
test ! -d $root_dir/media/floppy && (mkdir $root_dir/media/floppy; chmod 755 $root_dir/media/floppy)
test ! -d $root_dir/lost+found && (mkdir $root_dir/lost+found; chmod 755 $root_dir/lost+found)
test ! -d $root_dir/mnt && (mkdir $root_dir/mnt; chmod 755 $root_dir/mnt)
test ! -d $root_dir/proc && (mkdir $root_dir/proc; chmod 555 $root_dir/proc)

# Systemverzeichnisse kopieren:
$rscmd  $rhost/bin        $root_dir
$rscmd  $rhost/boot       $root_dir
$rscmd  $rhost/dev        $root_dir
# Nächste Zeile evt. um --exclude=/etc/sysconfig/network/ifcfg-eth-id-* ergänzen (s. Text)
$rscmd  $rhost/etc        $root_dir --exclude=/etc/fstab --exclude=/etc/mtab
$rscmd  $rhost/home       $home_dir
$rscmd  $rhost/lib        $root_dir
$rscmd  $rhost/opt        $root_dir
$rscmd  $rhost/root       $root_dir
$rscmd  $rhost/sbin       $root_dir
$rscmd  $rhost/srv        $root_dir
$rscmd  $rhost/sys        $root_dir
$rscmd  $rhost/tftpboot   $root_dir
$rscmd  $rhost/tmp        $root_dir
$rscmd  $rhost/usr        $root_dir
$rscmd  $rhost/var        $root_dir

# Mirror-Partitionen wieder unmounten:
umount $root_dir
umount $home_dir

exit 0
Damit die Partition bootbar ist habe ich in der menu.lst von grub folgenden Eintrag hinzugefügt:

Code: Alles auswählen

###Dalek Mirror - Only boot this in case of emergency - Booting will cause dublicate IPs###
title Dalek Mirror - Will cause dublicate IP if Dalek server is still online!
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.22.5-31-default root=/dev/sda6 vga=0x31a resume=/dev/sda5 splash=silent showopts
    initrd /boot/initrd-2.6.22.5-31-default
Das Booten von der Partition schlägt leider fehl, da in der initrd-File noch die alte Partition per ID referenziert ist, die Platte des Backupservers aber eine andere ID hat:

Code: Alles auswählen

drivers/hid/usbhid/hid-core.c: v2.6: USB HID core driver
..................Could not find /dev/disk/by-id/<primäre_Platte>-part6.
Want to fall back to /dev/hda6 ? (Y/n)
y
Waiting for device /dev/hda6 to appear: ........................not found -- exiting to /bin/sh

$ (shell) 

Um den Fehler zu beheben muss ich - soweit ich das verstanden habe - das initrd-Image neu erzeugen.
Ich hab allerdins noch kein gutes Manual dazu gefunden und bin auch mit der Manpage nicht zurecht gekommen.
Kann mir einer sagen, wie ich bei der hier vorliegenden Konstellation mit mkinitrd ein Bootimage erstellen kann?
Alle bisherigen Versuche endeten darin, dass der Backup-Server wieder das eigene Linux gebootet hat, aber USB nicht mehr funktioniert hat (incl. Tastatur/Maus).

Die Fstab des gespiegelten Linux habe ich auch angepasst, aber soweit ich das verstanden habe kommt die ja erst später zum Einsatz und sollte hier noch keine Rolle spielen.

Werbung:
Benutzeravatar
lOtz1009
Moderator
Moderator
Beiträge: 7147
Registriert: 23. Jan 2008, 09:51
Wohnort: Sulzbach/Ts.

Re: System spiegeln - Probleme mit mkinitrd

Beitrag von lOtz1009 » 5. Nov 2009, 22:24

::: openSUSE Member :::
::: LXDE-Team :::
Linux-Club Wiki
vi is an editor with two modes: one which destroys your input and the other which beeps at you.
Für meine Beiträge gilt:
Bild

Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3148
Registriert: 25. Aug 2004, 02:13

Re: System spiegeln - Probleme mit mkinitrd

Beitrag von robi » 5. Nov 2009, 23:07

Je nach dem was du genau damit bezwecken willst, sind da leider in deinem Script ein paar Dinge drin die irgendwo zwischen kontraproduktiv, fehlerhaft, unnütz, bis hin zu gefählich sind. Unter Anderem solltest du dir folgende Zeilen mal etwas genauer anschauen und überlegen was du damit bezwecken willst:

Code: Alles auswählen

 test ! -d $root_dir/lost+found && (mkdir $root_dir/lost+found; chmod 755 $root_dir/lost+found)
$rscmd $rhost/boot       $root_dir
$rscmd  $rhost/dev        $root_dir
# Nächste Zeile evt. um --exclude=/etc/sysconfig/network/ifcfg-eth-id-* ergänzen (s. Text)
$rscmd  $rhost/etc        $root_dir --exclude=/etc/fstab --exclude=/etc/mtab
$rscmd  $rhost/tmp        $root_dir
$rscmd  $rhost/sys        $root_dir
Der aktuelle Fehler kommt dadurch da du derzeit in deiner menu.lst versuchst das System mit dem falschem Kernel und falscher initrd zu booten.

Wenn das so wie ich das verstanden habe funktionen soll, müsste (je nach verwendeten Distributionsstand) nach dem kopieren der Daten ein wahrscheinlich recht kompliziertes Script das System auf dem anderen Rechner jedesmal neu an den anderen Rechner anpassen und bootbar machen, da du sämtliche Konfigurationen die geändert werden müssten mit dem nächsten sync wieder überschreibst. Das ändern der fstab wird bei weitem nicht ausreichen, ein neu erstellen einer angepassten initrd würde etwas weiterhelfen, dein LAN und andere Hardware damit aber immer noch nicht richtig konfiguriert. In den letzten Jahren hat sich doch einiges geändert das in deinem Script derzeit überhaupt nicht berücksichtig ist.

robi

rund
Newbie
Newbie
Beiträge: 2
Registriert: 5. Nov 2009, 21:50

Re: System spiegeln - Probleme mit mkinitrd

Beitrag von rund » 5. Nov 2009, 23:26

Hi,
naja... in meinem Script ist übertrieben, ich hab das halt so im Netz gefunden (s link im Topic) und als einfache Variante akzeptiert.
Die beiden Server dürften sich in der Hardware nicht sehr unterscheiden (Dell MT Optiplex 745 und Dell MT Optiplex 755), ich hatte gehofft, dass nur die CPU anders ist, aber zumindest die Platte hatte sich dann doch geändert.

Wenn das so nicht funktioniert, wie könnte es denn zum Beispiel gehen?

carsten
Guru
Guru
Beiträge: 1632
Registriert: 27. Jan 2004, 13:27
Wohnort: Mittelhessen

Re: System spiegeln - Probleme mit mkinitrd

Beitrag von carsten » 8. Dez 2009, 12:04

Ich denke mal, das Umstellen von der Plattenkennung UID auf die alte Version mit sdx sollte viele Probleme lösen. IN dem anderen PC ist ja zwangsläufig ne andere Platte verbaut und schon gibts unterschiedliche UIDs
Intel DB65ALB3, Chipsatz B65, Celeron G540, 4GB, 1x1TB System, 2x 2TB SATA RAID1, SuSE 13.2 (noch)

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast