Wie erstelle ich mit RHEL 5.4 einen Klon einer Festplatte?

Wie erstelle ich mit RHEL 5.4 einen Klon einer Festplatte?

Wir verwenden RHEL 5.4 und müssen einige Festplatten klonen. Was wäre eine gute (oder „richtige“) Möglichkeit, dies zu tun? Ich möchte die Verwendung von dd möglichst vermeiden, da dies etwas langsam ist. (Wenn dies jedoch die einzige Möglichkeit ist, dann ist das so.)

Einige Vorbehalte:

1) Die Verwendung anderer Distributionen ist nicht möglich – einschließlich Live-CDs –, da wir ein sehr strenges Genehmigungsverfahren haben und die einzige Distribution, die wir verwenden können, RHEL ist.

2) Wenn möglich, müssen wir Software verwenden, die Teil der RHEL-Pakete ist. Empfehlungen für andere Software sind immer noch willkommen, aber wenn wir etwas verwenden können, das bereits Teil von RHEL ist, würde uns das viel Papierkram ersparen.

Mir ist klar, dass es so aussieht, als würde ich versuchen, die Arbeit unnötig schwerer zu machen, aber so ist die Natur der Unternehmensvorschriften.

Vielen Dank für jede Hilfe!

Antwort1

Wie genau muss der Klon sein? Wenn es beispielsweise LVM gibt, müssen die IDs übereinstimmen? ext2 (und 3 und wahrscheinlich die meisten Linux-Dateisysteme) haben auf jedem Dateisystem einen Universally Unique Identifier (UUID). Müssen diese zwischen Original und Klon übereinstimmen?

Mit anderen Worten: Wofür benötigen Sie den Klon?

Um einen wirklich exakten Klon eines Laufwerks zu erstellen, gibt es nichts Schnelleres als dd.

Einige dd-Alternativen

  1. Verwenden Sie fdisk (oder parted oder cfdisk oder was auch immer), um die Partitionierung zu duplizieren. lv-Tools, falls nötig. Erstellen Sie Dateisysteme, verwenden Sie rsyncoder (cd /origmount ; tar cf) | (cd /newmount; tar xf -)oder cp, um die Daten zu kopieren -- Dadurch werden die Dateien in einer völlig anderen Anordnung von Blöcken angeordnet, sehen aber identisch aus. Oder mounten Sie die ursprünglichen Dateisysteme nicht und verwenden Sie etwas wiedump -level0 -f - /dev/sda1 | (cd /mnt/sdb1; restore -f - -rf)
  2. Verwenden Sie vorsichtig Software-RAID-Tools (md), um aus den ursprünglichen Partitionen ein degradiertes RAID1 zu erstellen, fügen Sie die neuen Partitionen hinzu, warten Sie, bis die Synchronisierung abgeschlossen ist, und brechen Sie dann das RAID ab. Dies wird wahrscheinlich langsamer sein als dd, aber die meiste Arbeit kann erledigt werden, während die Maschine läuft, sodass es in gewisser Hinsicht „schneller“ sein kann.

Antwort2

Dies sind die Schritte, die ich aufgezeichnet habe, um von einer großen, von LVM verwalteten Festplatte mit einer CentOS 5.5-Installation auf eine kleinere Festplatte zu wechseln (offensichtlich war der belegte Speicherplatz auf der großen Festplatte kleiner als die Größe der kleineren Festplatte). Ich bin sicher, dass es bessere Möglichkeiten gibt, dies zu tun, aber diese Methode war erfolgreich. Einige Schritte sind möglicherweise spezifisch für unsere Situation, passen Sie sie nach Bedarf an.

Anforderungen:

  • Installations-CD
  • Neue Festplatte

Schritte:

  • Schließen Sie die neue Festplatte an

  • Booten Sie mit der CD und geben Sie an der Eingabeaufforderung „linux rescue“ ein, um in den Rettungsmodus zu gelangen. Sie werden gefragt, ob Sie fortfahren oder das Mounten überspringen möchten. Sie sollten fortfahren (es wird gemountet /mnt/sysimage). Formatieren Sie die neue Festplatte nicht, wenn Sie dazu aufgefordert werden.

  • Überprüfen Sie die vorherige Geometrie mit . In einer regulären LVM-Konfiguration fdisk -lhaben Sie wahrscheinlich /dev/sda1und . ist Ihre /boot-Partition, die außerhalb des LVM existiert. Ihre Größe sollte 1-13 betragen, wobei der Rest der Festplatte dem LVM gewidmet ist./dev/sda2sda1

.

# fdisk -l
...
/dev/sda1 * 1 13 ... 83 Linux
/dev/sda2  14 ...    8e Linux LVM
# fdisk /dev/sdb
>Command...:
n
>Command action
>e extended
>p primary partition (1-4)
p
>Partition number (1-4):
1
>First cylinder ...:
<default>
>Last cylinder ...:
13 (value from /dev/sda1, the original /boot)
>Command...:
n
>Command action
>e extended
>p primary partition (1-4)
p
>Partition number (1-4):
2
>First cylinder ...:
<default>
>Last cylinder ...:
<default (end of disk)>
>Command...:
t
>Partition...:
1
>Hex code...:
83
>Command...:
t
>Partition...:
2
>Hex code...:
8e
>Command...:
a
>Partition...:
1
>Command...:
w
  • Dateisystem für /boot auf /dev/sdb1 erstellen

.

# mkfs.ext3 /dev/sdb1
  • Richten Sie neue physische Volumes, Volumegruppen und logische Volumes sowie deren Dateisysteme auf /dev/sdb2 ein. Ersetzen Sie ?Gdurch die gewünschte Größe. LogVol00 sollte die LVM-Partitionsgröße abzüglich der erforderlichen Swap-Volume-Größe sein, LogVol01 sollte Ihre Swap-Größe sein.

.

# pvcreate /dev/sdb2
# vgcreate VolGroup01 /dev/sdb2
# lvcreate --name LogVol00 --size ?G VolGroup01
# lvcreate --name LogVol01 --size ?G VolGroup01
# mkfs.ext3 /dev/VolGroup01/LogVol00
# mkswap /dev/VolGroup01/LogVol01
  • Mounten Sie die neue Festplatte und kopieren Sie den Inhalt der alten Festplatte mit cp -ax. Vermeiden Sie das Kopieren von /dev, /proc, /sys, /boot, /lost+foundund/mnt

.

# mkdir /mnt/newdisk
# mount /dev/VolGroup01/LogVol00 /mnt/newdisk
# cd /mnt/sysimage
# for i in $(ls -1 | grep -v '\(dev\|proc\|sys\|mnt\|boot\|lost\)'); do echo $i; cp -ax /mnt/sysimage/$i /mnt/newdisk; done
# cd /mnt/newdisk
# mkdir {dev,proc,sys,mnt,boot}
  • Mounten Sie die neue /bootFestplatte, kopieren Sie den Inhalt der alten Festplatte darauf und mounten Sie sie anschließend wieder

.

# mkdir /mnt/{boot,newboot}
# mount /dev/sda1 /mnt/boot
# mount /dev/sdb1 /mnt/newboot
# cp -ax /mnt/boot/* /mnt/newboot
# umount /mnt/newboot
  • Installieren Sie Grub auf der neuen Festplatte

.

# mount -o bind /dev /mnt/newdisk/dev
# mount /dev/sdb1 /mnt/newdisk/boot
# chroot /mnt/newdisk
# grub
> root (hd1,0)
> setup (hd1)
> quit
  • Reparieren Sie Ihre/boot/grub/grub.conf

.

# vi /boot/grub/grub.conf
:%s/VolGroup00/VolGroup01/g
:wq
  • Erneuern Sie Ihre Initrds

.

# cd /boot
# for i in $(ls -1 initrd* | grep -v bak); do mv $i{,-bak}; ver=$(echo $i | sed 's/initrd-//;s/\.img//;'); mkinitrd /boot/$i $ver; done
  • Beenden Sie die Chroot-Umgebung

.

# exit
#
  • Reparieren Sie Ihre/etc/fstab

.

# vi /mnt/newdisk/etc/fstab
:%s/VolGroup00/VolGroup01/g
:wq
  • An diesem Punkt fahren Sie herunter und entfernen die alte Festplatte. Booten Sie erneut in den Rettungsmodus. /dev/sdbwird jetzt sein /dev/sdaund mounten auf/mnt/sysimage

  • Etikett/boot

.

# e2label /dev/sda1 /boot
  • Nehmen Sie die CD heraus. Jetzt sollten Sie in der Lage sein, die Festplatte mit der neuen Größe zu booten.

Antwort3

Wenn Sie die Verwendung von „dd“ und anderen nicht von RHEL bereitgestellten Tools vermeiden, müssen Sie Dateisysteme duplizieren, den Inhalt kopieren (mit dem Tool Ihrer Wahl, cpio, tar, rsync usw.) und GRUB auf den neuen Laufwerken installieren. Dies lässt sich am besten mit stillgelegten Laufwerken durchführen (vielleicht im RHEL-Rettungsmodus gebootet).

Antwort4

Zum Erstellen von Image-Kopien Ihrer Festplatten können Sie Ghost, Fog, Clonezilla usw. ausprobieren (sogar VMware Converter usw.).

Zum Kopieren des Dateisystems würde ich rsync und ähnliches empfehlen.

verwandte Informationen