• Linux学习之CentOS(五)让我有些郁闷的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 这行代码,所以这种方式设置以后失败了。。。。。

    继续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的点点滴滴!!!!!!

  • 相关阅读:
    [PHP] 适配器模式的日常使用
    [MySQL] timestamp和datetime的区别和大坑
    [PHP] foreach循环的引用赋值可能导致的问题
    [PHP] 邮件发送mail()函数失败问题 sendmail命令与postfix
    [日常] 腾讯云发送邮件失败问题
    [日常] 正则表达式 小括号() 中括号[] 大括号{}
    [Linux] awk与posix字符集
    [PHP] 工厂模式的日常使用
    [PHP] 抽象类abstract的回顾
    [日常]灵活的频率限制实现
  • 原文地址:https://www.cnblogs.com/xiaoluo501395377/p/2993027.html
Copyright © 2020-2023  润新知