mount 用法总结

     最近几次发现mount了一个网络共享磁盘后, 就无法umount, 老是提示:device is busy, 服务又不能停止的。 无意发现可以用"umount -l"解决!
    上网找下umount -l,发现这里讲得不错:
   2.      mount 的基本用法是?

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

其中常用的参数有:

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

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

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

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

-v 详细显示安装信息。

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

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

ext2 linux目前常用的文件系统

msdos MS-DOSfat,就是fat16

vfat windows98常用的fat32

nfs 网络文件系统

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

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

auto 自动检测文件系统

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

defaults 使用所有选项的默认值(autonouserrwsuid

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

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

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

suid/nosuid 确认/不确认suidsgid

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

codepage=XXX 代码页

iocharset=XXX 字符集

ro 以只读方式挂载

rw 以读写方式挂载

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

loop 挂载回旋设备

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

# mount –o remount,rw /

例如要挂载windows下文件系统为FAT32D盘,一般而言在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 参数里的codepageiocharset选项。codepage指定文件系统的代码页,简体中文中文代码是936iocharset指定字符集,简体中文一般用cp936gb2312

# 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的非常放心了。

<think>我们正在讨论的是mount命令的使用详情。根据用户提供的引用和之前的对话历史,用户希望了解mount命令的详细用法。虽然之前的回答涉及了从非文件系统分区拷贝文件,但当前问题聚焦于mount命令本身。因此,我们需要整理mount命令的详细说明。 引用[1]提到mount命令是Linux系统中重要的文件系统管理工具之一,用于挂载文件系统。 引用[2]给出了mount命令的基本语法、选项和参数,以及一些实例。 引用[3]展示了一个挂载ISO镜像文件的例子。 引用[4]提到了重新挂载文件系统为可读写模式的例子。 基于这些引用,我们将详细解释mount命令的使用方法。 ### 回答结构: 1. **mount命令概述**:简要介绍mount命令的作用。 2. **基本语法**:给出mount命令的基本语法格式。 3. **常用选项详解**:列举并解释常用的选项。 4. **参数说明**:解释设备文件和挂载点。 5. **常见使用示例**:通过具体例子展示mount命令的用法。 6. **卸载文件系统**:简要说明umount命令。 7. **相关文件**:如/etc/fstab的作用。 8. **高级用法**:如重新挂载、挂载网络文件系统等。 最后,生成相关问题。 --- ### 1. mount命令概述 `mount`命令在Linux中用于将文件系统挂载到指定的挂载点(目录)。通过挂载,存储设备(如硬盘分区、光盘、USB驱动器)或特殊文件(如ISO镜像)的内容就可以在文件系统树中被访问。相反,`umount`命令用于卸载文件系统[^1][^2]。 ### 2. 基本语法 ```bash mount [选项] [设备文件名] [挂载点] ``` - 无参数执行`mount`命令会显示当前已挂载的文件系统列表。 - 通常需要超级用户权限(使用`sudo`)。 ### 3. 常用选项详解 | 选项 | 说明 | |------|------| | `-t <文件系统类型>` | 指定文件系统类型(如ext4、ntfs、iso9660、nfs等)。 | | `-o <选项>` | 指定挂载选项,多个选项用逗号分隔(如`ro`只读、`rw`读写、`remount`重新挂载等)。 | | `-a` | 挂载`/etc/fstab`中定义的所有文件系统(通常用于系统启动时)。 | | `-l` | 显示已挂载的文件系统列表(带标签)。 | | `-v` | 显示详细执行信息(冗长模式)。 | | `-n` | 挂载时不写入`/etc/mtab`文件(用于修复问题)。 | | `-r` | 以只读模式挂载(等同于`-o ro`)。 | | `-w` | 以读写模式挂载(等同于`-o rw`,默认模式)。 | ### 4. 参数说明 - **设备文件名**:指定要挂载的设备,如`/dev/sdb1`(硬盘分区)、`/dev/cdrom`(光驱)或ISO镜像文件(需配合`-o loop`选项)。 - **挂载点**:必须是一个已存在的目录。挂载后,该目录原有的内容将被隐藏,直到卸载文件系统。 ### 5. 常见使用示例 #### 示例1: 挂载光盘 ```bash # 创建挂载点目录(如果不存在) sudo mkdir /mnt/cdrom # 挂载光盘设备(通常为/dev/cdrom)到挂载点 sudo mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom ``` - `-t iso9660`:指定光盘文件系统类型。 - `-o ro`:以只读模式挂载(光盘通常为只读)。 #### 示例2: 挂载ISO镜像文件 ```bash # 创建挂载点 mkdir ~/mnt # 使用loop设备挂载ISO镜像 sudo mount -o loop -t iso9660 mydisk.iso ~/mnt ``` - `-o loop`:允许将普通文件(如ISO)作为块设备挂载[^3]。 #### 示例3: 重新挂载根分区为读写模式 在系统维护时,如果根分区以只读模式挂载(如启动时出现错误),可重新挂载为读写模式: ```bash sudo mount -o remount,rw / ``` - `-o remount,rw`:重新挂载根分区为读写模式[^4]。 #### 示例4: 挂载USB驱动器 通常USB设备会被自动识别为`/dev/sdX1`(X为字母)。假设设备为`/dev/sdb1`: ```bash sudo mkdir /mnt/usb sudo mount -t vfat /dev/sdb1 /mnt/usb # vfat适用于FAT32格式 # 或使用ntfs-3g挂载NTFS格式(需安装) sudo mount -t ntfs-3g /dev/sdb1 /mnt/usb ``` #### 示例5: 挂载NFS网络文件系统 ```bash # 先确保NFS客户端工具已安装(如nfs-common) sudo mount -t nfs 192.168.1.100:/shared_directory /mnt/nfs ``` ### 6. 卸载文件系统 使用`umount`命令卸载: ```bash sudo umount /mnt/cdrom # 通过挂载点卸载 # 或通过设备卸载 sudo umount /dev/cdrom ``` - 卸载时需确保没有进程正在访问挂载点目录,否则会报错(`target is busy`)。 ### 7. 相关文件 - **`/etc/fstab`**:系统启动时自动挂载的配置文件。每行定义一个文件系统,包括设备、挂载点、文件系统类型、选项等[^2]。 - **`/etc/mtab`**:记录当前已挂载的文件系统(动态更新)。 ### 8. 高级用法 - **绑定挂载(Bind Mount)**:将同一目录挂载到另一个位置(内容同步)。 ```bash sudo mount --bind /original/path /new/path ``` - **共享挂载(Shared Mount)**:用于容器或复杂挂载场景(可选)。 ### 总结 `mount`命令是Linux系统管理中的基础工具,掌握其用法对于设备管理和文件访问至关重要。通过上述示例和选项说明,您可以应对常见的挂载需求。深入实践可探索`man mount`手册页。 §§相关问题§§ 1. `/etc/fstab`文件的结构和配置方法是什么? 2. 如何处理挂载点“设备忙”(device is busy)的错误? 3. 如何在Linux中永久挂载一个文件系统(通过`/etc/fstab`)? 4. 如何挂载Windows共享文件夹(CIFS/SMB)? </think>### Linux mount 命令详解 `mount` 命令是 Linux 系统中用于挂载文件系统的核心工具,它将存储设备(硬盘分区、光盘、ISO 镜像等)接入文件树,使数据可通过指定目录访问[^1][^2]。 #### 一、基本语法 ```bash mount [选项] [设备源] [挂载点] ``` - **设备源**:如磁盘分区 `/dev/sdb1`、ISO 文件 `path/to/image.iso` - **挂载点**:必须是已存在的空目录(如 `/mnt/data`) #### 二、常用选项详解 | 选项 | 说明 | 示例 | |------|------|------| | `-t <类型>` | 指定文件系统类型 | `-t ext4`(Linux分区)<br>`-t iso9660`(光盘/ISO)<br>`-t nfs`(网络文件系统) | | `-o <参数>` | 设置挂载参数 | `-o ro`(只读模式)<br>`-o rw`(读写模式)<br>`-o loop`(挂载镜像文件) | | `-a` | 挂载 `/etc/fstab` 中所有设备 | `mount -a` | | `-v` | 显示详细执行过程 | `mount -v /dev/sdb1 /mnt` | | `-r` | 等效于 `-o ro`(只读) | `mount -r /dev/cdrom /media` | | `--bind` | 目录绑定挂载 | `mount --bind /old /new` | #### 三、核心使用场景 1. **挂载物理设备** ```bash # 挂载U盘(FAT32格式) sudo mount -t vfat /dev/sdc1 /mnt/usb # 挂载光盘 sudo mount -t iso9660 /dev/cdrom /media/cdrom ``` 2. **挂载镜像文件** ```bash # 挂载ISO镜像(需loop设备) sudo mount -o loop -t iso9660 ubuntu.iso /mnt/iso ``` 3. **网络文件系统挂载** ```bash # 挂载NFS共享 sudo mount -t nfs 192.168.1.100:/shared /mnt/nfs ``` 4. **重新挂载为读写模式** ```bash # 将只读挂载改为读写(常用于修复) sudo mount -o remount,rw /dev/sdb1 ``` 5. **查看已挂载设备** ```bash mount -l # 显示详细列表 df -h # 查看挂载点磁盘使用情况 ``` #### 四、关键配置文件 - **`/etc/fstab`**:系统启动时自动挂载的设备列表[^2] ```conf # 示例条目 /dev/sdb1 /data ext4 defaults 0 2 ``` 字段说明:设备源 → 挂载点 → 文件系统类型 → 挂载选项 → 备份标记 → 磁盘检查顺序 - **`/etc/mtab`**:实时记录当前挂载信息(动态更新) #### 五、卸载文件系统 使用 `umount` 命令: ```bash # 通过设备名卸载 sudo umount /dev/sdb1 # 通过挂载点卸载 sudo umount /mnt/usb ``` ⚠️ 若提示 `device is busy`,表示有进程占用,可通过 `lsof +D /mnt/usb` 查找占用进程 #### 六、典型错误处理 1. **挂载点不存在** ```bash sudo mkdir -p /mnt/custom # 先创建目录 ``` 2. **文件系统类型不匹配** ```bash sudo blkid /dev/sdb1 # 确认实际文件系统类型 ``` 3. **权限不足** ```bash sudo mount ... # 普通用户需sudo权限 ``` 4. **Windows NTFS分区挂载** ```bash sudo apt install ntfs-3g # 先安装驱动 sudo mount -t ntfs-3g /dev/sdb2 /mnt/win ``` ### 总结 `mount` 命令是管理 Linux 存储设备的基石,通过组合选项如 `-t`、`-o loop` 等可灵活适配各种存储介质。系统管理员应掌握: 1. 手动挂载/卸载操作 2. `/etc/fstab` 的自动挂载配置 3. 常见问题的诊断方法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值