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

-
再重新执行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文件。
(责任编辑: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 命令终止这些进程。
The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
2. 先在/etc/fstab 注释掉挂载的磁盘,然后重启服务器。再重新执行fdisk的删除分区和新建分区的步骤。
The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
|