Linux在取消挂载磁盘时经常会提示无法取消挂载

➜  ~ sudo umount /mnt/sda
umount: /mnt/sda: target is busy.

使用“lsof”可以查看具体是什么进程在占用磁盘

➜  ~ sudo lsof /mnt/sda
COMMAND   PID    USER   FD   TYPE DEVICE   SIZE/OFF     NODE NAME
smbd    12583 chancel  cwd    DIR   8,33       4096 16515073 /mnt/sda/transmission-downloads
smbd    12583 chancel   14r   DIR   8,33       4096 16515073 /mnt/sda/transmission-downloads
smbd    12583 chancel   33r   REG   8,33 5209156640 16515219 /mnt/sda/transmission-downloads/chancel.ts

可以看到是transmission的下载占用了磁盘,可以选择直接kill杀死进程也可以选择正常的关闭进程

# 方法一
sudo systemctl stop transmission-daemon.service
# 方法二
sudo kill -9 12583

或者使用fuser也可以实现查看进程占用磁盘的信息

➜  sda fuser -mv /mnt/sda
                     USER        PID ACCESS COMMAND
/mnt/sda:            root     kernel mount /mnt/sda
                     chancel    1616 ..c.. zsh

使用fuser杀死对应磁盘进程

sda fuser -kv /mnt/sda

Tip:尽量选择合理的关闭进程方式,无论是kill还是fuser都是直接杀死进程,进程数据有丢失的风险