需求 :对已经分区的硬盘进行重新分区
先说结论:其实就一种原因——磁盘被占用,可以利用lsof命令排错。就我本人而言,遇到的情况包括:
- 没有用umount卸载分区
- 本身是LVM分区,没有用vgremove删除相对应的Volume Group
- 当前工作路径就在磁盘的挂载点,导致无法umount
- 有其他用户的工作路径在该挂载点
- 有程序正在读写改磁盘
- ……
操作过程:
- 先umount卸载分区,然后用fdisk操作目标硬盘,输入命令d,删完该硬盘的所有分区后,w写入操作,此时提示:
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
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)
- lsblk查看分区信息,发现还是以前的分区,并且依然挂载在原来的挂载点。
- 根据提示,使用partprobe来同步磁盘分区信息,但得出以下信息:
Error: Partition(s) 1 on /dev/sdc have been written, but we have been
unable to inform the kernel of the change, probably because it/they are
in use. As a result, the old partition(s) will remain in use. You
should reboot now before making further changes.
意思大概是“内核无法得知磁盘的改变,可能是由于挂载点被占用,推荐重启”,可是我们已经umount了挂载点,怎么还会有占用呢?
- 服务器怎么能随便重启呢?接下来使用lsof来查看是什么占用了我的磁盘。
lsof | grep /dev/sdc
发现有一个远程登录的用户在占用,踢掉即可
- 重新partprobe,成功了
当需要对已分区硬盘进行重新分区时,可能会遇到磁盘占用导致无法操作的问题。通过umount、fdisk、partprobe等命令尝试释放资源,但有时即使umount后仍显示占用。此时,可以使用lsof命令找出占用磁盘的进程并解决。本文详细记录了解决此问题的步骤,包括识别和解除远程用户占用,最终成功更新分区信息。

9546

被折叠的 条评论
为什么被折叠?



