当前位置: > Linux故障 >

Linux扩容磁盘Re-reading the partition table failed with error 22的解决方法

时间:2016-01-02 23:18来源:linux.it.net.cn 作者:IT

 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 命令可以查询正在使用该磁盘分区的进程(第二列是进程号),

blob.png

  • 再重新执行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检查待扩容磁盘挂载记录前是否已经成功加上#号。

    blob.png

  • 重启服务器

  • 再重新执行fdisk 执行来删除原有分区并新建分区。新建分区成功后您会看到提示:

        The partition table has been altered!

        Calling ioctl() to re-read partition table.

        Syncing disks.

  • 然后请参考“Linux系统磁盘扩容”后续的步骤继续进行扩容操作。

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


     

(责任编辑:IT)
------分隔线----------------------------