You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已物理断开的HDD无法卸载,存在无法终止的D状态进程求助

已物理断开的HDD无法卸载,存在无法终止的D状态进程求助

问题描述

我已经把HDD从USB接口完全拔掉了,但系统仍然显示它处于挂载状态。我发现有一些处于**D状态(不可中断睡眠)**的进程,根本无法杀死它们。尝试用fuser命令终止进程但没有效果,想请教有没有不用重启就能卸载这个HDD的方法?

我执行的命令及输出如下:

使用fuser -vmMki /mnt/HDD_bckp/的输出:

USER        PID ACCESS COMMAND

/mnt/HDD_bckp:

root     kernel mount /mnt/HDD_bckp

elias     61428 F.... rsync

elias     61430 F.c.. rsync

root      225357 f.... (fwupdmgr

elias     333843 f.... baloo_filemetad

elias     337939 f.... baloo_filemetad

root      347688 f.... (ostnamed

elias     351650 f.... baloo_filemetad

按y确认杀死所有进程,但没有任何效果。

使用sudo lsof /dev/sdb1的输出:

lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs

Output information may be incomplete.

COMMAND      PID  USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME

rsync      61428 elias    3w   REG   8,17  9140924        14 /mnt/HDD_bckp/09aug.log (deleted)

rsync      61430 elias  cwd    DIR   8,17    12288         2 /mnt/HDD_bckp

rsync      61430 elias    1u   REG   8,17        0 117864530 /mnt/HDD_bckp/_X_PICS/400_n.jpg.oF86P8

(fwupdmgr 225357  root    4u   DIR   8,17    12288         2 /run/systemd/unit-root/mnt/HDD_bckp

baloo_fil 333843 elias    8r   REG   8,17   207541        96 /mnt/HDD_bckp/oZ.jpg

baloo_fil 337939 elias    8r   REG   8,17  2619650        20 /mnt/HDD_bckp/344.gif

(ostnamed 347688  root    4u   DIR   8,17    12288         2 /run/systemd/unit-root/mnt/HDD_bckp

baloo_fil 351650 elias    8r   REG   8,17   150826       122 /mnt/HDD_bckp/7839_n.jpg

解决方案

首先得说明:那些处于D状态的进程是Linux里的“硬骨头”——它们正卡在等待硬件IO响应的阶段,现在硬盘已经被拔走,IO请求永远无法完成,所以系统不会允许强制终止这些进程(这也是fuser失效的原因)。不过我们可以先解决卸载的问题,再处理进程的后续:

  1. 尝试懒卸载(Lazy Unmount)
    这是最实用的不重启卸载方法,它会立刻把挂载点从文件系统树中移除,等到相关进程不再引用该挂载点时,再完成真正的卸载操作。执行命令:
sudo umount -l /mnt/HDD_bckp

执行后,你会发现/mnt/HDD_bckp不再显示为挂载状态,后续可以正常复用这个挂载点。

  1. 关于D状态进程的说明
    这些D状态的进程除非系统重启,否则几乎无法手动清除——Linux内核为了避免系统崩溃,不会向处于不可中断睡眠的进程发送终止信号。如果这些进程没有占用过多系统资源,你可以暂时忽略,等下次重启时它们会自动消失。

  2. 预防下次出现类似问题
    这次的核心原因是你在rsync等进程还在访问硬盘时直接拔掉了设备。以后建议按以下步骤操作:

  • 先终止所有访问该硬盘的进程(比如用pkill rsync终止同步进程,用balooctl stop暂停baloo索引)
  • 执行正常卸载命令sudo umount /mnt/HDD_bckp
  • 确认卸载成功后,再物理拔掉硬盘

备注:内容来源于stack exchange,提问作者Estatistics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 16:13:09