mount命令

进入到了Linux系统学习之后,总体来说之前还是挺顺畅的,比如各种命令敲入后都会得到相应的效果。。。。但是今天在学习Linux的挂载命令mount时可是着实让我郁闷了很久,大概花了2个小时,各种google、baidu都发现没有找到解决方法。。。最后却是无意中的一次怪招使得问题一下豁然开朗,故在此专为mount命令写篇随笔。

一、mount 命令

首先简单介绍一下 mount 这个命令:

在Linux系统中,如果要使用硬盘、光盘、软盘或MO盘等存储设备,必须先进行挂装(Mount)。当存储设备挂装完成之后,就可以将其作为一个目录来进行访问了。挂装设备需要使用mount命令。执行这一命令,至少要先确定下列三种信息: 

  1. 要挂装(Mount)对象的文件系统类型;
  2. 要挂装(Mount)对象的设备名称(/dev/...);
  3. 要将设备挂装(Mount)到哪一目录。
 
因为我是在VM虚拟机上安装的CentOS6.4 64位系统版本,如果我要将windows上的文件传到虚拟机上的Linux上的话,可以通过以下几个方法:
  1. 安装VMware-Tools,这个如果在windows上安装就特别方便,直接点击安装就行了,Linux上的安装过程在稍后的随笔中会记录下来。
  2. 挂载ISO文件,我们在windows上找到我们需要的文件,然后可以通过UltraISO(一款功能强大而又方便实用的光盘映像文件制作/编辑/转换工具),用这个来将文件制作成IOS镜像文件,然后挂载到虚拟机上的Linux系统上。
  3. 启用虚拟机上的文件共享功能,这样通过共享windows上的文件夹,将文件传给虚拟机上的Linux。(这个我发现要安装了VMware-Tools以后才可以)。
 
在这里我使用的第二种方式,通过挂载ISO文件的方式来将windows上的文件挂载到Linux系统上(有关Linux系统的分区、挂载等概念将会在后续学习中进行详细记录)
 
二、挂载ISO文件到Linux系统上
首先将需要用到的文件(jdk1.7、tomcat、eclipse等Linux版本软件)通过UltraISO这个软件制作成ISO文件,例如我取名为:linuxSoft.iso
 
首先选择虚拟机最上方的 VM -> Settings 进入到设置界面:
 
然后在右边的Use ISO image file那里选择我们刚制作好的ISO文件,( 注:右上方的两个复选框必须都打上 √ )
 
点击OK,此时我们发现我们的桌面多了个虚拟光驱。。。也就是我们刚挂载的那一个iso文件
 
打开后里面就是我们刚需要的一些软件:
 
至于这些软件怎么安装将会在下一篇随笔中详细记录下来!!!
三、对mount命令的小吐槽
 
可能看到上面的第二步,会觉得很轻松就将文件挂载到了Linux下面,而且都木有用到mount命令。。。。。所以下面我就来吐槽一下昨天搞了我几个小时的 mount 命令。
按照正常流程,应该是在将ISO文件挂载到Linux上以后,通过 mount 命令将这个ISO文件挂载下来,命令如下:
mount   /mnt/cdrom    // 这命令就是把ISO挂载在/mnt/cdrom目录中,这样我就可以访问里面的内容了  (必须要有root权限才能挂载)
当我在以root身份敲入了这个命令以后,报了  mount: can't find /mnt/cdrom in /etc/fstable or /etc/mtab  这个错误
于是我就google,在google上发现了一篇文章是来处理这个错误的:
复制代码
 
解决以下挂载错误的方法:
 
mount: can't find /mnt/cdrom in /etc/fstable or /etc/mtab
 
1、首先查看#cat /etc/fstab

    查看到类似下面的一行;
    /dev/hdc /media/cdrecorder auto users,exec,noauto,managed 0 0  (问题的关键是我查看了fstable以后木有类似的一句)
    通过这个,我们能知道hdc 就是cdrom(dvdrom)设备 ,更是 cdrecorder的设备;为了验证我们的说法;请用ls -l 来列文件;
    # ls -lh /dev/dvd*
    lrwxrwxrwx 1 root root 3 2005-09-13 /dev/dvd -> hdc
    # ls -lh /dev/cdrom
    lrwxrwxrwx 1 root root 3 2005-09-13 /dev/cdrom -> hdc
    # ls -lh /dev/cdwriter
    lrwxrwxrwx 1 root root 3 2005-09-13 /dev/cdwriter -> hdc
    得知: dvd 、cdrom 、cdwriter 的文件名都链接到了hdc这个设备,所以光驱设备根源就是/dev/hdc ;
    得知: 通过/etc/fstab内看到的,我们可以肯定的是光盘被mount 到了/media/cdrecorder 目录;
 
2、自定义cdrom 挂载的位置;
 
    比如 /mnt/cdrom ,所以我们也可以这样来挂载光驱;

    修改:/etc/fstab,把/dev/hdc /media/cdrecorder auto users,exec,noauto,managed 0 0改成:
    /dev/hdc /mnt/cdrom auto users,exec,noauto,managed 0 0 再存档。
 
3、建立光驱挂载目录#mkdir /mnt/cdrom
 
4、指令挂载

    # mount /dev/hdc /mnt/cdrom
  或# mount /dev/cdrom /mnt/cdrom
 
复制代码

因为找不到类似于  /dev/hdc /media/cdrecorder auto users,exec,noauto,managed 0 0  这行代码,所以这种方式设置以后失败了。。。。。

继续google,后面又陆续看了N多的帖子,总结了一下,无非就是以下几种:

mount  -t auto /mnt/cdrom /dev/cdrom /media

这个在回车以后,也是出现了错误,说在 mnt 下找不到 cdrom文件夹。。。但是我是用mkdir /mnt/cdrom 命令又一直提示我该光驱是只读的,不让创建。。。我是root用户啊!!!!再次以失败告终

此时我无意间发现了这么一个帖子,并从中受到了一些启发:mount: can't find /dev/cdrom in /etc/fstab or /etc/mtab问题解决方法,从里面可以得出一些观点:Linux系统估计根据版本不同,默认挂载的位置不同,可能挂载到 /mnt、 /dev、 /media 这三个目录下

如果说不能再 /mnt 下 挂载光驱的话,首先去 /dev/ 目录查看是否有cdrom这个文件,发现还真有,然后我又进入到了/media目录下,敲入一下命令了  ls -l 命令,结果让我震惊了!!!

[root@xiaoluo media]$ ls -l

结果为:

dr-x------. 1 xiaoluo xiaoluo 2048 3月  31 13:26 20130331_132633

发现居然在/media下面找到了我们刚挂载上去的ISO文件,然后心里一个激动,继续进入到这个目录里  ,然后ls -l,发现了我需要的所有文件!!!!

看来我安装的CentOS6.4系统默认是将ISO镜像挂载到了 /media 目录下了,所以一直用mount 命令挂载到 /mnt下没反应

于是我又通过了 卸载 命令 umount 看能否将这个ISO镜像文件从Linux上卸载掉:

[root@xiaoluo 20130331_132633]$    cd /    // 卸载时要先退到root目录下
[root@xiaoluo 20130331_132633]$    umount /media/20130331_132633

然后再ls -l /media

发现刚才那个ISO已经被卸载掉了,于是心里一阵狂喜,立马想试试能否通过  mount /media重新挂载回来,结果是失望的!!!!挂载时又提示了之前的那些错误。。。于是我就一生气,然后重启了CentOS系统,在进去后发现/media目录下又自动挂载了刚选择的那个ISO文件!!!!!!

四、我的解决办法

此时我才恍然大悟,总结出了我这个问题的解决办法!!!!

在我安装的CentOS6.4  64位系统上,我如果需要挂载一个ISO文件,我就在开机的时候选择那个ISO文件,通过

这里就选择好,然后在进入了系统以后,CentOS会自动给我们挂载好该ISO文件,默认存放在了 /media/这个文件夹下!,我们如果需要用到里面的软件安装包,就直接先复制到别的目录下(因为这只是将ISO文件挂载到了CentOS上,是虚拟光驱,里面所有的文件都是只读的,我们如果需要安装,必须先将文件复制到其它路径下,这个在后续随笔中记录)

在解决这个方法中,也参考了许多朋友的帖子,并有深入 剖析 mount 命令的好贴, 在这里放出链接,希望能帮助其他未解决这个问题的朋友!!!

linux mount挂载设备(u盘,光盘,iso等 )使用说明

mount: can't find /dev/cdrom in /etc/fstab or /etc/mtab问题解决方法

Linux的mount命令简介

这篇随笔记录了自己解决如何在Linux下挂载ISO文件的方法及心得,后续随笔将继续记录学习Linux的点点滴滴!!!!!!

<think>首先,用户的问题是:"请问mount命令用法参数说明及常见问题"。这是关于Linux或Unix系统中的mount命令的用法、参数说明和常见问题。 从系统级指令中,我需要:-所有行内数学表达式用$...$格式。 -独立公式用$$...$$$$单独成段。- LaTeX语法正确。-使用中文回答。-生成相关问题。 -在回答中引用的段落末尾自然地添加引用标识,如[^1]。-回答结构清晰,帮助用户逐步解决问题。 -参考站内引用:有引用[1],[2], [3],它们提供了mount命令的基本信息:- [^1]: Mount命令参数详解,包括mount的基本概念和在Windows中的应用。- [^2]: mount命令用法详解,特别是-o options参数。-[^3]:mount命令的用法,包括加载文件系统和/etc/fstab文件。用户意图是了解mount命令的使用方法、参数说明和常见问题解决方案。我的回答结构应该清晰: 1.介绍mount命令。2.详细说明用法和参数。3.讨论常见问题。 4.生成相关问题。 5.确保引用标识添加在引用的段落末尾。使用中文回答。 生成相关问题:在回答结束时,添加相关问题部分。现在,构建回答: -**介绍**:简要解释mount命令是什么。- **用法**:描述基本语法和常见用法。 -**参数说明**:详细解释主要参数,特别是-ooptions。- **常见问题**:列出一些常见问题和解决方案。-添加引用标识:当引用参考内容时,在末尾添加[^1], [^2], [^3]。参考内容:- [^1]:提到mount用于挂载分区到文件夹,在Windows中也应用。 -[^2]:详细说明-ooptions参数,如loop,ro,rw, iocharset。- [^3]:提到mount加载文件系统到目录,使用/etc/fstab自动加载,卸载用umount。 确保回答真实可靠:基于我的知识和参考内容。最终结构: 1.引言。2.用法。 3.参数说明。 4.常见问题。 5.相关问题。生成相关问题:例如:1.如何自动挂载文件系统? 2. mount命令的错误处理?3.mount在虚拟化中的应用?</think>### mount 命令详解:用法、参数说明及常见问题 mount 命令是 Linux 和类 Unix 系统中的核心工具,用于将文件系统(如硬盘分区、ISO 镜像或网络共享)挂载到指定目录(称为挂载点),从而让用户访问该文件系统中的内容[^3]。它在系统管理、数据存储和虚拟化中广泛应用,例如在 Windows 系统中,类似功能见于虚拟光驱软件如 Daemon Tools 或 WinMount[^1]。以下我将逐步解释 mount 命令的用法、参数说明和常见问题解决方案,确保内容结构清晰、易于理解。回答基于可靠参考信息,并结合实际系统管理经验。 #### 1. **mount 命令的基本用法** mount 命令的基本语法为: ```bash mount [选项] [设备] [挂载点] ``` - **设备**:指定要挂载的源,如硬盘分区(`/dev/sda1`)、ISO 文件(`/path/to/image.iso`)或网络共享(`//server/share`)。 - **挂载点**:目标目录,必须是一个已存在的空目录(例如 `/mnt/mydrive`)。 - **常见场景示例**: - 挂载一个 USB 驱动器到 `/mnt/usb`: ```bash mount /dev/sdb1 /mnt/usb ``` - 挂载一个 ISO 镜像文件(使用 loop 设备): ```bash mount -o loop /path/to/image.iso /mnt/iso ``` - 卸载文件系统使用 `umount` 命令: ```bash umount /mnt/usb ``` 挂载信息会记录在 `/etc/mtab` 文件中,卸载时清除[^3]。对于频繁使用的设备,建议配置 `/etc/fstab` 文件实现开机自动挂载[^3]。 #### 2. **参数详细说明** mount 命令支持多种选项,通过 `-o` 参数指定,这些选项控制挂载的权限、字符集和特殊行为[^2]。以下列出关键参数(基于引用[2]的详解): - **常用选项 (`-o` 参数)**: - `ro`:以只读模式挂载,防止意外写入(例如 `mount -o ro /dev/sda1 /mnt/readonly`)。 - `rw`:以读写模式挂载(默认模式),允许修改文件。 - `loop`:将文件(如 ISO)视为块设备挂载,常用于虚拟光驱场景[^1]。 - `iocharset=utf8`:指定文件系统的字符集,解决中文文件名乱码问题(例如挂载 Windows 共享时:`mount -o iocharset=utf8 //192.168.1.100/share /mnt/nas`)。 - `remount`:重新挂载已挂载的文件系统,用于更改选项(如从只读切换到读写:`mount -o remount,rw /mnt/usb`)。 - `noexec`:禁止执行挂载点内的可执行文件,增强安全性。 - `user`:允许普通用户挂载设备(需 `/etc/fstab` 配置支持)。 - **其他重要参数**: - `-t`:指定文件系统类型,如 `ext4`、`ntfs`、`nfs`(网络文件系统)。例如,挂载 NTFS 分区: ```bash mount -t ntfs /dev/sdc1 /mnt/windows ``` 如果未指定 `-t`,mount 会自动检测类型。 - `-a`:挂载 `/etc/fstab` 文件中定义的所有设备,常用于系统启动时。 - `-v`:显示详细输出,便于调试。 参数组合示例:挂载一个只读的 ISO 文件,并指定字符集: ```bash mount -o loop,ro,iocharset=utf8 /path/to/image.iso /mnt/iso ``` #### 3. **常见问题及解决方案** mount 命令在使用中可能遇到以下典型问题。这些问题源于权限错误、文件系统不兼容或配置失误,以下是基于实践经验的解决方法: - **问题 1: 挂载失败,提示 "mount: permission denied" 或 "you must be root"** **原因**:普通用户无权执行 mount 命令。 **解决**: - 使用 `sudo` 前缀运行命令:`sudo mount /dev/sdb1 /mnt/usb`。 - 或在 `/etc/fstab` 中添加 `user` 选项,允许指定用户挂载[^3]。 - **问题 2: 挂载后文件名显示乱码(常见于 Windows 共享或 FAT32 分区)** **原因**:字符集不匹配。 **解决**: - 挂载时指定字符集,如 `mount -o iocharset=utf8 /dev/sda1 /mnt/data`[^2]。 - 对于 Samba 共享,使用 `cifs` 类型:`mount -t cifs -o username=user,password=pass,iocharset=utf8 //server/share /mnt/share`。 - **问题 3: 无法卸载设备,提示 "device is busy"** **原因**:挂载点正被进程使用(如文件被打开)。 **解决**: - 使用 `lsof /mnt/usb` 查找占用进程并关闭。 - 强制卸载:`umount -l /mnt/usb`(`-l` 选项延迟卸载)。 - **问题 4: 挂载 ISO 或文件失败,提示 "no such device"** **原因**:缺少 loop 选项或文件路径错误。 **解决**: - 确保使用 `-o loop`:`mount -o loop image.iso /mnt/iso`。 - 检查文件路径是否存在。 - **问题 5: 开机自动挂载失败(/etc/fstab 配置错误)** **原因**:`/etc/fstab` 条目格式错误或设备标识变化。 **解决**: - 编辑 `/etc/fstab`,确保格式正确(例如:`/dev/sdb1 /mnt/data ext4 defaults 0 0`)。 - 使用 UUID 替代设备名(通过 `blkid` 命令获取 UUID),避免因硬件变动导致失败[^3]。 这些解决方案在大多数 Linux 发行版(如 Ubuntu、CentOS)中通用。如果问题持续,检查系统日志(`dmesg | grep mount`)获取更多线索。 #### 4. **总结与最佳实践** mount 命令是管理文件系统的关键工具,通过灵活的参数(如 `-o loop` 或 `iocharset`)支持多样化的场景[^2]。最佳实践包括: - 使用 `/etc/fstab` 实现自动挂载,减少手动操作。 - 挂载前确保挂载点目录存在且为空。 - 卸载设备前关闭所有相关进程,避免数据损坏。 - 在虚拟化环境中(如 Docker 或 KVM),mount 常用于绑定挂载主机目录到容器[^1]。 通过以上步骤,您可以高效使用 mount 命令处理存储设备、网络共享和虚拟文件。如果您有特定场景(如挂载 NFS 或解决权限问题),请提供更多细节,我会进一步解答。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值