说明:云服务器 ECS Linux服务器扩容数据盘,请参考 Linux系统磁盘扩容 的步骤。建议您在执行扩容操作前,先为该数据盘手动 创建快照。
扩容操作第五步执行 fdisk 指令,输入 d 来删除原有的分区,然后依次输入 n,p,1,两次回车,wq来新建分区。如果在输入 wq 后回车,系统出现如下错误告警信息:
- WARNING: Re-reading the partition table failed with error 22: Invalid argument.
- The kernel still uses the old table. The new table will be used at
- the next reboot or after you run partprobe(8) or kpartx(8)
- Syncing disks.
这是由于还有进程正在占用该磁盘导致,即使使用 df -h 查询该磁盘没有挂载也有可能遇到这个问题。
可以采用以下两种方法来尝试解决:
1. 通过 lsof 命令检查该磁盘分区上有哪些进程正在占用。然后通过 kill 命令终止这些进程或者先停止对应的服务。
以 /dev/xvdb1 磁盘分区为例,lsof /dev/xvdb1 命令可以查询正在使用该磁盘分区的进程(第二列是进程号)。
再重新执行 fdisk 执行来删除原有分区并新建分区。新建分区成功后会看到类似如下提示信息:
- The partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.
最后,再参阅 Linux系统磁盘扩容 后续步骤继续进行扩容操作即可。
2. 先在 /etc/fstab 注释掉挂载的磁盘,然后重启服务器。再重新执行 fdisk 的删除分区和新建分区的步骤。
通过 vi /etc/fstab 打开该文件,注释待扩容的磁盘挂载记录。
重启服务器。
再重新执行 fdisk 执行来删除原有分区并新建分区。新建分区成功后您会看到提示:
- The partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.
再参阅 Linux系统磁盘扩容 后续步骤继续进行扩容操作即可。
扩容操作完成后,编辑 /etc/fstab,将该扩容磁盘的挂载记录前的 # 号删除,保存 fstab 文件。