将设备path更新为lvm物理卷

起初这是我的硬盘:

  1. / dev / sda1为bios_grub 100MB
  2. / dev / sda2 / 500MB作为/ boot
  3. / dev / sda3 800MB作为LVM2 myvg卷组的物理卷。

我用parted删除sda1和sda2。 之后,重新启动/ sda1(600MB)为/ boot。 然后使用gdisk更新编号/ dev / sda。 所以现在/ dev / sda3变成了/ dev / sda2。 问题是,当我运行pvs我仍然把/dev/sda3作为myvg物理文件。

如何在保持myvg的数据完整的情况下更新这个?

对于其他人也想这样做,这里有两个build议:

  • 如果可以的话:不要重新组织分区的数量,系统在生产中的风险太大。 编号不连续也没关系。
  • 如果您确实需要这样做:首先卸载属于该卷组的所有lvm分区。 pvs中的物理卷名将被立即更新。

在这种情况下,您有几个解决scheme:

  • 重新启动系统一次。
  • 禁用卷组,执行partprobe通知系统分区更改,启用卷组。 (build议@ rudimeier )
 #vgchange -an myvg
 #partprobe
 #vgchange -ay myvg

详情如下:


我用相同的工具复制了你所做的。 磁盘名称和大小不同,/ dev / sdb而不是/ dev / sda。

在删除第一个分区之前:

 # fdisl -l /dev/sdb [...] Device Start End Sectors Size Type /dev/sdb1 2048 4196351 4194304 2G Linux filesystem /dev/sdb2 4196352 8390655 4194304 2G Linux filesystem /dev/sdb3 8390656 20971486 12580831 6G Linux LVM # pvs PV VG Fmt Attr PSize PFree /dev/sdb3 myvg lvm2 a-- 6.00g 5.92g 

删除后:

 # fdisk -l /dev/sdb [...] Device Start End Sectors Size Type /dev/sdb3 8390656 20971486 12580831 6G Linux LVM 

创build新分区后1:

 # fdisk -l /dev/sdb [...] Device Start End Sectors Size Type /dev/sdb1 2048 8390655 8388608 4G Linux filesystem /dev/sdb3 8390656 20971486 12580831 6G Linux LVM 

重新编号之后(gdisk / dev / sdb + s):

 # fdisk -l /dev/sdb [...] Device Start End Sectors Size Type /dev/sdb1 2048 8390655 8388608 4G Linux filesystem /dev/sdb2 8390656 20971486 12580831 6G Linux LVM 

但pvs命令显示错误的数字

 # pvs PV VG Fmt Attr PSize PFree /dev/sdb3 myvg lvm2 a-- 6.00g 5.92g 

在这种情况下,LVM或内核的某些部分总是使用旧表。

重新启动后,系统和lvm正确地考虑了新的分区号。

 # pvs PV VG Fmt Attr PSize PFree /dev/sdb2 myvg lvm2 a-- 6.00g 5.92g 

我认为这对您的数据是安全的,如果我没有错误lvm直接使用磁盘的uuid。 这些命令不应该改变uuid。

在任何情况下,这都比改变分区编号安全得多;)