当前位置: 首页 > news >正文

解决 umount 时出现的 Device is busy

1.umount, 老是提示:device is busy, 服务又不能停止的。

       可以用"umount -fl"解决!

2.mount的基本用法是?

格式:mount [-参数] [设备名称] [挂载点]

其中常用的参数有:

-a 安装在/etc/fstab文件中类出的所有文件系统。

-f 伪装mount,作出检查设备和目录的样子,但并不真正挂载文件系统。

-n 不把安装记录在/etc/mtab 文件中。

-r 讲文件系统安装为只读。

-v 详细显示安装信息。

-w 将文件系统安装为可写,为命令默认情况。

-t <文件系统类型> 指定设备的文件系统类型,常见的有:

 

ext2 linux目前常用的文件系统

msdos MS-DOS的fat,就是fat16

vfat windows98常用的fat32

nfs 网络文件系统

iso9660 CD-ROM光盘标准文件系统

ntfs windows NT/2000/XP的文件系统

auto 自动检测文件系统

-o <选项> 指定挂载文件系统时的选项,有些也可写到在/etc/fstab中。常用的有:

defaults 使用所有选项的默认值(auto、nouser、rw、suid)

auto/noauto 允许/不允许以 –a选项进行安装

dev/nodev 对/不对文件系统上的特殊设备进行解释

exec/noexec 允许/不允许执行二进制代码

suid/nosuid 确认/不确认suid和sgid位

user /nouser 允许/不允许一般用户挂载

codepage=XXX 代码页

iocharset=XXX 字符集

ro 以只读方式挂载

rw 以读写方式挂载

remount 重新安装已经安装了的文件系统

loop 挂载回旋设备

需要注意的是,挂载点必须是一个已经存在的目录,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用,umount以后会恢复正常。使用多个-o参数的时候,-o 只用一次,参数之间用半角逗号隔开:

# mount –o remount,rw /

例如要挂载windows下文件系统为FAT32的D盘,一般而言在Linux下这个分区对应/dev/hda5,根据具体的分区情况会有不同,这里就以hda5来举例说明:

# mkdir /mnt/hda5 //创建hda5的目录作为挂载点,位置和目录名可自定义//

# mount -t vfat /dev/hda5 /mnt/hda5

一般而言,Linux会自动探测分区的文件系统,除非让你指定时,否则-t vfat 可以省掉。

# mount /dev/hda5 /mnt/hda5

这样就可以进入/mnt/hda5目录去访问分区中的资源了。

3. 为什么mount上分区后显示不了中文文件为问号/乱码?

显示问号表明你的系统中没有可识别使用的中文字体,请先安装中文字体。确保你的系统已经可以很好的显示中文。显示为乱码一般是mount默认使用的文件系统编码和文件系统中文件的实际编码不一致造成的。要想正常显示中文文件,mount时需要用到 -o 参数里的codepage和iocharset选项。codepage指定文件系统的代码页,简体中文中文代码是936;iocharset指定字符集,简体中文一般用cp936或gb2312。

# mount –o iocharset=gb2312 codepage=936 /dev/hda5 /mnt/hda5

一般来说 mount –o iocharset=cp936 /dev/hda5 /mnt/hda5 就可以解决问题了。

如果这样做了以后还有问题,请尝试UTF-8编码:

# mount –o iocharset=utf8 /dev/hda5 /mnt/hda5

4. 为什么mount上去以后分区普通用户不可写?

mount时加上 –o umask=000 即可:

# mount –o umask=000, iocharset=cp936 /dev/hda5 /mnt/hda5

5. 为什么mount上去后的分区中的文件都变成短文件名了?

这是文件系统挂错的原因,将FAT32挂载成FAT16时就会出现这种情况,先umount,然后用 –t vfat 重新挂载即可解决问题。

# mount –t vat /dev/hda5 /mnt/hda5

7. 如何挂载U盘和mp3?

如果计算机没有其它SCSI设备和usb外设的情况下,插入的U盘的设备路径是 /dev/sda1,用命令:

# mkdir /mnt/u

# mount /dev/sda1 /mnt/u

挂载即可。

8. 可以直接使用iso文件吗?

可以,就是mount的这一选项使得Linux下有免费虚拟光驱的说法,具体用法是:

# mkdir /mnt/iso

# mount –o loop linux.iso /mnt/iso

当然,挂载以后挂载点/mnt/iso也是只读的。

12. 如何开机自动挂载分区?

每次挂载都要输入那么长的命令的确是繁琐了些,只要将分区信息写到/etc/fstab文件中即可实现系统启动的自动挂载,例如对于/dev/hda5的自动挂载添加如下的行即可:

/dev/hda5 /mnt/hda5 vfat defaults,iocharset=cp936, rw 0 0

13. 如何挂载samba 分区?

# mkdir /mnt/share

# mount -t smbfs -o username=root,password=abc,codepage=936,iocharset=gb2312 //192.168.1.100/share /mnt/share

如果中文显示不正常请尝试UTF-8编码。当然可以写到fstab中实现自动挂载。

14. mount --bind是什么意思?

mount --bind 是将一个目录中的内容挂载到另一个目录上,用法是

# mount --bind olddir newdir

这个命令使得自己搭建的FTP要共享某个目录的时候变得特别方便。如果要取消mount用命令:

# mount --move olddir newdir 即可。

如果mount --bind 也想写入fstab中的话格式如下:

olddir newdir none bind 0 0

16. 为什么umount的时候老显示 device busy?

这是因为有程序正在访问这个设备,最简单的办法就是让访问该设备的程序退出以后再umount。可能有时候用户搞不清除究竟是什么程序在访问设备,如果用户不急着umount,则可以用:

# umount -l /mnt/hda5

来卸载设备。选项 –l 并不是马上umount,而是在该目录空闲后再umount。还可以先用命令 ps aux 来查看占用设备的程序PID,然后用命令kill来杀死占用设备的进程,这样就umount的非常放心了。另外一个非常管用的工具

假设无法卸载的设备为/dsg,运行下列命令即可:

$ fuser -m -v /dsg

Usage: fuser [ -a | -s | -c ] [ -n SPACE ] [ -SIGNAL ] [ -kimuv ] NAME...
             [ - ] [ -n SPACE ] [ -SIGNAL ] [ -kimuv ] NAME...
       fuser -l
       fuser -V
Show which processes use the named files, sockets, or filesystems

-a        display unused files too
    -c        mounted FS
    -f        silently ignored (for POSIX compatibility)
    -i        ask before killing (ignored without -k)
    -k        kill processes accessing the named file
    -l        list available signal names
    -m        show all processes using the named filesystems
    -n SPACE search in this name space (file, udp, or tcp)
    -s        silent operation
    -SIGNAL   send this signal instead of SIGKILL
    -u        display user IDs
    -v        verbose output
    -V        display version information
    -4        search IPv4 sockets only
    -6        search IPv6 sockets only
    -         reset options

udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]]

-m参数表明指定的路径是一个挂载点显示所有使用指定文件系统的进程,后面可以跟挂载点,-v参数给出详细的输出

用下面这个命令可以将占用目录/dsg所有进程给kill掉:

$ fuser -m –k /dsg

这样umount: /dsg: device is busy这个问题就可以解决.

相关文章:

  • silverlight 在主流浏览器中的问题
  • RAID中的Stripe size对性能的影响?
  • 为何转向Spine.js的十个理由
  • win7下没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
  • out of memory解决实例
  • PreferenceActivity 的用法总结
  • OSPF在企业网络中的应用
  • SQL Server 移动数据库
  • Java内部类和静态内部类的调用方式
  • 在word里面快捷键ctrl和alt的妙用
  • 斜视的危害
  • 基本数据结构:队列(queue)
  • 风儿轻轻地吹,沙儿轻轻地飘
  • android常用的方法
  • 大小写转换
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Flex布局到底解决了什么问题
  • Javascript Math对象和Date对象常用方法详解
  • jquery ajax学习笔记
  • Lucene解析 - 基本概念
  • MySQL几个简单SQL的优化
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • text-decoration与color属性
  • unity如何实现一个固定宽度的orthagraphic相机
  • 多线程事务回滚
  • 给新手的新浪微博 SDK 集成教程【一】
  • 解析 Webpack中import、require、按需加载的执行过程
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 数据科学 第 3 章 11 字符串处理
  • 项目管理碎碎念系列之一:干系人管理
  • #HarmonyOS:基础语法
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • $.proxy和$.extend
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (6)设计一个TimeMap
  • (70min)字节暑假实习二面(已挂)
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (顺序)容器的好伴侣 --- 容器适配器
  • (转)详解PHP处理密码的几种方式
  • .gitignore文件---让git自动忽略指定文件
  • .NET BackgroundWorker
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net程序集学习心得
  • .net开发时的诡异问题,button的onclick事件无效
  • .NET连接数据库方式
  • /etc/shadow字段详解
  • [.net]官方水晶报表的使用以演示下载
  • [@Controller]4 详解@ModelAttribute
  • [《百万宝贝》观后]To be or not to be?
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器
  • [AutoSar]状态管理(五)Dcm与BswM、EcuM的复位实现