进入到了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命令的小吐槽
mount
mount
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 命令,结果让我震惊了!!!
[[email protected] 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上卸载掉:
[[email protected] 20130331_132633]$ cd / // 卸载时要先退到root目录下[[email protected] 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下挂载ISO文件的方法及心得,后续随笔将继续记录学习Linux的点点滴滴!!!!!!