我有一台 CentOS 5 VM,刚刚将 VM 磁盘从 10G 增加到 20G,但如果不重新启动,我就无法让 fdisk 查看新的磁盘大小。
我尝试过echo 1 > /sys/block/sda/device/rescan
,它似乎表明它可以看到新的大小,但是当我去 fdisk 创建一个新分区时,它仍然将磁盘视为 10G。
有任何想法吗?
答案1
您需要向 SCSI 总线发出重新扫描命令。
在 VMware 中,SCSI 控制器可能位于某些不寻常的位置。首先找到它:
find /sys -iname 'scan'
对我来说那又回来了
/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host0/scan
/sys/devices/pci0000:00/0000:00:07.1/host1/scsi_host/host1/scan
/sys/devices/pci0000:00/0000:00:10.0/host2/scsi_host/host2/scan
然后只需发出重新扫描命令
echo "- - -" >/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host0/scan
echo "- - -" >/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host1/scan
echo "- - -" >/sys/devices/pci0000:00/0000:00:10.0/host0/scsi_host/host2/scan
那应该帮助。 :)
答案2
我在 SLES 11 服务器上也遇到过类似的问题。LVM 是用原始磁盘构建的,在 VMWare ESXi 上运行
# pvcreate /dev/sdd; vgextend ....
过了一会儿,我需要增加 LVM 大小,但我没有像以前一样添加补充磁盘,然后 pvcreate + vgextend,而是选择增加现有磁盘的大小(在本例中为 /dev/sdd)。在 VMWare 中完成增加后,我执行了
# rescan-scsi-bus.sh
但 pvdisplay 仍然显示“旧”磁盘大小。有必要执行
# echo 1 > /sys/block/sdd/device/rescan
让内核了解 /dev/sdd 的新磁盘大小
答案3
先做后echo 1 > /sys/block/sda/device/rescan
pvresize /dev/sda
对我有用
答案4
如果分区表直接使用(例如,您已使用基本分区挂载文件系统),则内核将继续使用旧分区表,直到不再出现这种情况。有人曾经告诉我,如果您使用 LVM,则可以解决这个问题……