|
ECS Linux扩容磁盘“Re-reading the partition table failed with error 22”的分析解决
发布日期:2016-1-11 20:1:55
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 打开该文件,输入字母i进入编辑模式(INSERT模式),移动光标在待扩容的磁盘挂载记录前加上一个#号,输入冒号:,再输入wq,回车,/etc/fstab文件就保存完毕。可通过cat /etc/fstab检查待扩容磁盘挂载记录前是不是已经成功加上#号。 重启服务器 再重新执行fdisk 执行来删除原有分区并新建分区。新建分区成功后您会看到提示: The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. 然后请参考“Linux系统磁盘扩容”后续的步骤继续进行扩容操作。 扩容操作完成后,编辑打开/etc/fstab,将该扩容磁盘的挂载记录前的#号删除,保存fstab文件。
|