需求 :对已经分区的硬盘进行重新分区
先说结论:其实就一种原因——磁盘被占用,利用好lsof命令就可以轻松排错。错误包括但不限于:
- 没有umount卸载分区
- 当前工作路径就在磁盘的挂载点,导致无法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,成功了
|