
答え1
「ディスクの1つが最近破損しています」と言うと、VMの仮想ディスクまたはLVをホストする物理ディスクを意味しますか?物理ディスクが損傷しても安定して使用できなくなるため、交換が必要な場合があります。これを行いましたか?これを行うには、以下を参照してください。
ファイルサイズで見ると、あなたの/backup/rdnsrv2
画像はLV全体の完全な画像のようです。
実際のLVに書き換えるには、次のようにします。
dd if=/backup/rdnsrv2 of=/dev/VG-sda/rdnsrv2 bs=1024k
でも:
cat /backup/rdnsrv2 > /dev/VG-sda/rdnsrv2
VGの名前は、/dev/sda
物理ディスクに関連付けられていることを示します。これは不要な制限です。 VGとその中にあるLVも複数の物理ディスクにまたがることができます。 LV の使用中は、LVM データをあるディスクから別のディスクに移動することもできます。たとえば、現在のディスクを別のディスクと交換するには/dev/sda
(仮定/dev/sdX
)、次の手順を実行します。
まず、新しいパーティションが
/dev/sdX
一致しますsda
。これは明らかにホストシステムの現在のブートディスクなので、3つのパーティションを作成する必要があります。ブートファイルシステムの初期化と内容のコピー - システムが実際にブートしたり、カーネル/ブートローダアップデートをインストールした場合にのみ使用されるため、これを
/boot/efi
行うことができます。/boot
起動できないディスクでは、この手順をスキップできます。
mkfs.vfat -F 32 /dev/sdX1
mount /dev/sdX1 /mnt
cp -a /boot/efi/* /mnt/
umount /mnt
umount /boot/efi
mkfs.<appropriate type> /dev/sdX2
mount /dev/sdX2 /mnt
cp -a /boot/* /mnt/
umount /mnt
umount /boot
lsblk -o +uuid /dev/sdX # note the UUIDs of sdX1 and sdX2
<exit /etc/fstab to update the UUIDs of /boot/efi and /boot>
systemctl daemon-reload
mount /boot
mount /boot/efi
<verify that sdX1 is now at /boot/efi and sdX2 at /boot>
grub-install /dev/sdX # ensures GRUB is up to date and EFI boot variable points to the correct disk
- LVMデータの移行(LVが使用されている場合でも):
pvcreate /dev/sdX3
vgextend VG-sda /dev/sdX3
pvmove /dev/sda3
これにより、すべてのLVMデータが同じVGの他のPVpvmove /dev/sda3
から移行されます(=他の選択肢がないため)。すべてを移動できない場合は、可能なすべてを移動して停止します。/dev/sda3
/dev/sdX3
- 分解と除去
/dev/sda
:
vgreduce VG-sda /dev/sda3
# this will harmlessly fail if there is still LV data on sda3
lsblk /dev/sda
# verify no mounted filesystems and no LVs in use
echo 1 > /sys/block/sda/device/delete
# /dev/sda* device nodes will vanish!
# /dev/sda is now ready for hot-unplugging