最近我用新磁盘/dev/sdc设置了LVM分区。我使用以下命令创建了 LVM:
pvcreate /dev/sdc
vgcreate data /dev/sdc
mkfs.ext4 /dev/data/srv
tune2fs -m 0 /dev/mapper/data-srv
现在的问题是旧光盘 /dev/sdb 不见了,我在 /var/log/messages 中收到如下错误:
sd 2:0:2:0: [sdc] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
sd 2:0:2:0: [sdc] CDB: Read(10): 28 00 00 00 00 3f 00 00 04 00
blk_update_request: 8 callbacks suppressed
end_request: I/O error, dev sdc, sector 63
sd 2:0:2:0: [sdc] Unhandled error code
sd 2:0:2:0: [sdc] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
sd 2:0:2:0: [sdc] CDB: Read(10): 28 00 00 00 00 3f 00 00 04 00
end_request: I/O error, dev sdc, sector 63
sd 2:0:2:0: [sdc] Unhandled error code
因为旧磁盘 /dev/sdb 在打包 LVM 后被删除,所以 /dev/sdc (不再存在)取代了它的位置:
>pvs
/dev/sdc1: read failed after 0 of 2048 at 0: Input/output error
PV VG Fmt Attr PSize PFree
/dev/sdb data lvm2 a-- 330.00g 0
>lvscan
/dev/sdc1: read failed after 0 of 2048 at 0: Input/output error
ACTIVE '/dev/data/srv' [330.00 GiB] inherit
尽管 /sdc 不再存在,但该分区工作正常。然而,如何修复 LVM 以不再搜索 /dev/sdc?
我认为 LVM 在内部使用 UUID。否则,这种情况不会将 sdb 识别为正确的 pv (disc) 。
答案1
由于我无法重新启动主机,我修复了错误:
>pvs
/dev/sdc1: read failed after 0 of 2048 at 0: Input/output error
PV VG Fmt Attr PSize PFree
/dev/sdb data lvm2 a-- 330.00g 0
通过输入:
echo 1 > /sys/block/sdc/device/delete