内容大纲
内容简介:本文风哥教程参考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
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
