
RHEL 5.4 を使用しており、ハード ドライブのクローンを作成する必要があります。これを行うには、どのような方法 (または「正しい」方法) が適切でしょうか。dd はやや遅いので、できれば使用を避けたいと思います。(ただし、それが唯一の選択肢であるなら、それで構いません。)
注意点がいくつかあります:
1) 承認プロセスが非常に厳しく、使用できるディストリビューションは RHEL のみであるため、ライブ CD を含む他のディストリビューションは使用できません。
2) 可能な限り、RHEL パッケージの一部であるソフトウェアを使用する必要があります。他のソフトウェアの推奨も歓迎しますが、RHEL にすでに含まれているものを使用できれば、多くの書類作業を省くことができます。
これは、仕事を必要以上に難しくしようとしているように思われるかもしれませんが、それが企業規制の本質です。
ご協力いただきありがとうございます!
答え1
どの程度正確なクローンが必要ですか? たとえば、LVM がある場合、ID が一致する必要がありますか? ext2 (および 3、そしておそらくほとんどの Linux ファイルシステム) では、各ファイルシステムに Universally Unique Identifier (UUID) があります。これらは、オリジナルとクローン間で一致する必要がありますか?
つまり、クローンは何のために必要なのでしょうか?
ドライブの正確なクローンを作成するのに、dd より速いものはありません。
dd の代替案
- fdisk (または parted や cfdisk など) を使用してパーティションを複製します。必要に応じて lv ツールを使用します。ファイルシステムを作成し、
rsync
または(cd /origmount ; tar cf) | (cd /newmount; tar xf -)
を使用しcp
てデータをコピーします。これにより、ファイルはまったく異なるブロックの配置でレイアウトされますが、見た目は同じになります。または、元のファイルシステムをマウントせずに、次のようなものを使用します。dump -level0 -f - /dev/sda1 | (cd /mnt/sdb1; restore -f - -rf)
- ソフトウェア RAID ツール (md) を慎重に使用して、元のパーティションから劣化した RAID1 を作成し、新しいパーティションを追加し、同期が完了するまで待ってから RAID を解除します。これはおそらく dd よりも遅くなりますが、ほとんどの作業はマシンの実行中に実行できるため、特定の定義では「高速」になる可能性があります。
答え2
これらは、CentOS 5.5 がインストールされた大きな LVM 管理ディスクから小さなディスク (明らかに、大きなディスクの使用領域は小さなディスクのサイズよりも小さい) に移動するために記録した手順です。これを行うにはもっと良い方法があると思いますが、この方法は成功しました。一部の手順は状況に固有のものである可能性がありますので、必要に応じて調整してください。
要件:
- インストールCD
- 新しいディスク
手順:
新しいディスクを接続する
CD で起動し、プロンプトで「linux rescue」と入力してレスキュー モードに入ります。マウントを続行するかスキップするかを尋ねられます。続行してください ( にマウントされます
/mnt/sysimage
)。尋ねられた場合は、新しいディスクをフォーマットしないでください。で以前のジオメトリを確認します。通常の LVM 構成では、
fdisk -l
おそらく/dev/sda1
とがあります。は、LVM の外部に存在する /boot パーティションになります。そのサイズは 1 ~ 13 で、ディスクの残りの部分は LVM 専用になります。/dev/sda2
sda1
。
# 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
- /dev/sdb1 に /boot 用のファイルシステムを作成する
。
# mkfs.ext3 /dev/sdb1
- /dev/sdb2 に新しい物理ボリューム、ボリューム グループ、論理ボリューム、およびそれらのファイルシステムを設定します。
?G
必要なサイズに置き換えます。LogVol00 は LVM パーティション サイズから必要なスワップ ボリューム サイズを引いた値、LogVol01 はスワップ サイズになります。
。
# 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
- 新しいディスクをマウントし、古いディスクの内容を でコピーします
cp -ax
。 、 、 、 のコピー/dev
は/proc
避けてください/sys
。/boot
/lost+found
/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}
- 新しいディスクをマウントし
/boot
、古いディスクの内容をそこにコピーしてから、アンマウントします。
。
# mkdir /mnt/{boot,newboot}
# mount /dev/sda1 /mnt/boot
# mount /dev/sdb1 /mnt/newboot
# cp -ax /mnt/boot/* /mnt/newboot
# umount /mnt/newboot
- 新しいディスクにgrubをインストールする
。
# mount -o bind /dev /mnt/newdisk/dev
# mount /dev/sdb1 /mnt/newdisk/boot
# chroot /mnt/newdisk
# grub
> root (hd1,0)
> setup (hd1)
> quit
- 修正する
/boot/grub/grub.conf
。
# vi /boot/grub/grub.conf
:%s/VolGroup00/VolGroup01/g
:wq
- initrdをやり直す
。
# 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
- chrootから抜ける
。
# exit
#
- 修正する
/etc/fstab
。
# vi /mnt/newdisk/etc/fstab
:%s/VolGroup00/VolGroup01/g
:wq
この時点で、シャットダウンして古いディスクを取り外します。レスキューモードで再度起動します。
/dev/sdb
これで/dev/sda
、マウントされます。/mnt/sysimage
ラベル
/boot
。
# e2label /dev/sda1 /boot
- CD を取り出すと、この時点でサイズ変更されたディスクを起動できるはずです。
答え3
そうですね、もし「dd」や RHEL 以外で提供された他のツールの使用を避けているのであれば、ファイルシステムを複製して内容をコピーし (cpio、tar、rsync などの任意のツールを使用)、新しいドライブに GRUB を配置するしかありません。これは、休止状態のドライブ (おそらく RHEL レスキュー モードで起動) で行うのが最適です。
答え4
ディスクのイメージコピーには、Ghost、Fog、Clonezilla など (VMware Converter など) を試すことができます。
ファイルシステムのコピーには、rsync などをお勧めします。