1. 首页 > Linux教程 > 正文

Linux教程FG140-umount命令文件系统卸载

内容大纲

内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。

1. umount命令概述

umount命令用于卸载已挂载的文件系统,释放文件系统占用的资源。

# 基本语法
# umount [选项] 挂载点|设备

# 查看当前挂载的文件系统
# mount
/dev/mapper/rhel-root on / type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/vda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/vdb1 on /mnt/data type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)

2. 基本用法

以下是umount命令的基本用法:

# 通过挂载点卸载
# umount /mnt/data

# 通过设备卸载
# umount /dev/vdb1

# 查看卸载结果
# mount | grep /mnt/data
# 无输出表示卸载成功

# 查看磁盘使用情况
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 9.0M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root 45G 3.5G 42G 8% /
/dev/vda1 1014M 194M 821M 20% /boot
tmpfs 781M 0 781M 0% /run/user/0

3. 常用选项详解

umount命令支持多种选项,用于定制卸载行为。

风哥提示:

# 常用选项

# -v:详细输出
# umount -v /mnt/data
umount: /mnt/data unmounted

# -f:强制卸载
# umount -f /mnt/data

# -l:懒卸载(延迟卸载)
# umount -l /mnt/data

# -a:卸载/etc/mtab中所有已挂载的文件系统
# umount -a

# 查看所有可用选项
# umount –help

4. 强制卸载

当文件系统被占用时,可以使用强制卸载选项来卸载文件系统。

学习交流加群风哥QQ113257174

# 强制卸载
# umount -f /mnt/data

# 懒卸载(适用于文件系统被占用的情况)
# umount -l /mnt/data

# 查看文件系统是否被占用
# lsof /mnt/data
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 12345 root cwd DIR 252,17 4096 2 /mnt/data

# 终止占用文件系统的进程
# kill -9 12345
# umount /mnt/data

5. 卸载失败的原因及解决方法

卸载失败的常见原因及解决方法:

# 常见卸载失败原因及解决方法

# 1. 文件系统被占用
# 错误信息:umount: /mnt/data: target is busy.
# 解决方法:
# 查看占用进程
# lsof /mnt/data
# 终止占用进程
# kill -9
# 或者使用懒卸载
# umount -l /mnt/data

# 2. 设备正在被使用
# 错误信息:umount: /dev/vdb1: device is busy.
# 解决方法:
# 检查是否有进程在使用该设备
# fuser -m /dev/vdb1
# 终止占用进程
# fuser -k /dev/vdb1
# 然后卸载
# umount /dev/vdb1

# 3. 权限不足
# 错误信息:umount: /mnt/data: permission denied
# 解决方法:
# 使用root用户执行
# sudo umount /mnt/data

# 4. 挂载点不存在
# 错误信息:umount: /mnt/data: no mount point specified
# 解决方法:
# 检查挂载点是否存在
# ls -la /mnt/data
# 重新创建挂载点
# mkdir -p /mnt/data

6. 实战案例

from PG视频:www.itpux.com

下面通过一个完整的实战案例来演示umount命令的使用。

# 场景:卸载不同类型的文件系统

# 1. 查看当前挂载的文件系统
# mount
/dev/mapper/rhel-root on / type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/vda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/vdb1 on /mnt/xfs type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/vdb2 on /mnt/ext4 type ext4 (rw,relatime,seclabel)
/dev/loop0 on /mnt/iso type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)
192.168.1.100:/share on /mnt/nfs type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.50,local_lock=none,addr=192.168.1.100)

# 2. 正常卸载XFS分区
# umount /mnt/xfs
# echo $?
0

# 3. 卸载ext4分区(被占用)
# cd /mnt/ext4
# umount /mnt/ext4
umount: /mnt/ext4: target is busy.

# 解决方法1:退出挂载点
# cd /
# umount /mnt/ext4

# 4. 卸载ISO镜像
# umount /mnt/iso

# 5. 卸载NFS共享
# umount /mnt/nfs

# 6. 查看卸载结果
# mount
/dev/mapper/rhel-root on / type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/vda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)

# 7. 强制卸载(模拟场景)
# mount /dev/vdb1 /mnt/data
# cd /mnt/data
# touch test.txt
# 另一个终端执行
# umount -f /mnt/data
# echo $?
0

# 8. 懒卸载(模拟场景)
# mount /dev/vdb1 /mnt/data
# cd /mnt/data
# 另一个终端执行
# umount -l /mnt/data
# echo $?
0
# 查看挂载状态
# mount | grep /mnt/data
# 无输出表示卸载成功

风哥经验总结

1. 卸载文件系统前,应确保没有进程正在使用该文件系统,否则会卸载失败。

2. 可以使用lsof或fuser命令查看哪些进程正在使用文件系统。

3. 对于无法正常卸载的文件系统,可以使用-f选项强制卸载,或使用-l选项进行懒卸载。

4. 懒卸载(-l)会立即从文件系统树中移除挂载点,但会等到所有进程使用完毕后才真正卸载文件系统。

5. 在生产环境中,应尽量避免使用强制卸载,因为这可能会导致数据损坏。

学习交流加群风哥微信: itpux-com

6. 卸载文件系统后,应验证卸载是否成功,可以通过mount命令或df命令来检查。

更多学习教程公众号风哥教程itpux_com

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息