开发者社区> 问答> 正文

云服务器 ECS Linux 扩容磁盘报错:Re-reading the partition table failed with error 22


说明:云服务器 ECS Linux服务器扩容数据盘,请参考 Linux系统磁盘扩容 的步骤。建议您在执行扩容操作前,先为该数据盘手动 创建快照


问题现象





扩容操作第五步执行 fdisk 指令,输入 d 来删除原有的分区,然后依次输入 n,p,1,两次回车,wq来新建分区。如果在输入 wq 后回车,系统出现如下错误告警信息:
  1. WARNING: Re-reading the partition table failed with error 22: Invalid argument.
  2. The kernel still uses the old table. The new table will be used at
  3. the next reboot or after you run partprobe(8) or kpartx(8)
  4. Syncing disks.


问题原因





这是由于还有进程正在占用该磁盘导致,即使使用 df -h 查询该磁盘没有挂载也有可能遇到这个问题。

处理办法





可以采用以下两种方法来尝试解决:
1. 通过 lsof 命令检查该磁盘分区上有哪些进程正在占用。然后通过 kill 命令终止这些进程或者先停止对应的服务。

  • 以 /dev/xvdb1 磁盘分区为例,lsof /dev/xvdb1 命令可以查询正在使用该磁盘分区的进程(第二列是进程号)。

  • 再重新执行 fdisk 执行来删除原有分区并新建分区。新建分区成功后会看到类似如下提示信息:
    1. The partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.


  • 最后,再参阅 Linux系统磁盘扩容 后续步骤继续进行扩容操作即可。


2. 先在 /etc/fstab 注释掉挂载的磁盘,然后重启服务器。再重新执行 fdisk 的删除分区和新建分区的步骤。

  • 通过 vi /etc/fstab 打开该文件,注释待扩容的磁盘挂载记录。

  • 重启服务器。

  • 再重新执行 fdisk 执行来删除原有分区并新建分区。新建分区成功后您会看到提示:
    1. The partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.


  • 再参阅 Linux系统磁盘扩容 后续步骤继续进行扩容操作即可。

  • 扩容操作完成后,编辑 /etc/fstab,将该扩容磁盘的挂载记录前的 # 号删除,保存 fstab 文件。



如果问题还未能解决,您可以到阿里云社区进行 免费咨询,或联系 云市场商家寻求帮助。

展开
收起
boxti 2017-10-24 10:06:02 2550 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS快储存加密技术 立即下载