您的位置:首页 > 运维架构 > Linux

linux有关挂载学习-mount的用法

2014-01-02 10:23 330 查看
原文地址:http://zhidao.baidu.com/link?url=zKC4N0dV1Aa8Ep_jJDnyiZQ2EbEwcWt2yo-Jj4rVLObtaOHM_rAByqyv4PHbwIrUop6HBCMc3SgZ60RkEW8h0a
在Linux下访问Windows分区 在Linux中,如果你要使用储存设备   (Mo、硬盘、光驱等)   ,就得先将它挂上   (Mount),而当储存设备挂上了之后,就可以把它当成一个目录来进行访问。挂上一个设备使用mount命令。   在使用mount这个指令时,至少要先知道下列三种信息:    1.   要Mount对象的文件系统类型?   (File   system   type)       2.   要Mount对象的设备名称?   (/dev/????)       3.   要将设备Mount到哪个目录去?   一、获得系统支持的文件系统类型   就第一点来说,用户可以执行        cat   /proc/filesystems   来获得机器上支持的文件系统类型。如果系统并不支持你要挂接设备的文件系统类型,那你可能需要重新编译内核以使其增加对该种文件类型支持。关于如何编译内核请参照LinuxAid在线培训栏目中的相关文章。   常用的文件系统有:    Win95/98常用的FAT   32文件系统   :vfat    Win   NT用的文件系统         :ntfs    OS2用的文件系统               :hpfs    Linux用的文件系统             :ext2  Linux用的新文件系统           :ext3 光盘片用的文件系统            :iso9660   其中虽然vfat是指FAT   32系统,但事实上它也兼容FAT   16的文件系统类型。   二、确定设备的名称   在Linux中,设备名称通常都在/dev里。这些设备名称的命名都是有规则的,我们可以用 "推理 "的方式把设备名称找出来。   譬如说/dev/hda1这个IDE设备。hd是Hard   Disk(硬盘)的意思,sd是SCSI   Device,fd是Floppy   Device(或是Floppy   Disk?)。a则是代表第一个设备,通常IDE接口可以接上四个IDE设备(例如四块硬盘)。所以要识别IDE硬盘的方法分别就   是:hda、hdb、hdc、hdd。此外,hda1中的 "1 "代表hda的第一个硬盘分区   (partition),hda2代表hda的第二个分割区,依此类推。   此外,你可以直接检查/var/log/messages这个文件,在该文件中可以找到计算机开机后,系统已辨认出来的设备代号。   三、查找挂接点   最后我们要决定将设备挂接到哪里,先查看一下你的计算机是不是有个/mnt的空目录?该目录就是专门用来当作挂载点(Mount   Point)的目录。建议您在/mnt里多建这几个目录:/mnt/cdrom、/mnt/floppy、/mnt/mo等来当作目录的专用挂载点。   举例而言,如要挂载下列五个设备的话,其执行指令可能是   (假设都是Linux   的ext2系统,如果是Win   XX的话,请将ext2改成vfat):   1.   软盘   ===> mount   -t   ext2   /dev/fd0   /mnt/floppy   2.   MO   ===> mount   -t   ext2   /dev/sda   /mnt/mo   3.   cdrom   ===> mount   -t   ext2   /dev/hdc   /mnt/cdrom   4.   SCSI   cdrom   ===> mount   -t   iso9660   /dev/sdb   /mnt/scdrom   5.   SCSI   cdr   ===> mount   -t   iso9660   /dev/sdc   /mnt/scdr   这是假设,如果你的设备的名称跟这个不同的话请自行修改。   最后需要注意的是:   1.   执行mount动作时先打一下pwd看看现在的目录是不是在挂载点,如果现在目录在挂载点的话,mount   (或umount)不会成功   (会显示device   busy)。   2.   想卸载某设备的语法是umount   目录名,例如umount   /mnt/cdrom等。 在阅读本文之前,我假设你已经对Linux系统下的硬盘、光盘的设备命令规则有所了解,比如sda和sda1的关系,以及hda、sda、fd、cdrom等设备。 === 1 我把U盘插到USB口上了,下一步我该如何做才能查看U盘里的内容? 我不能确定你的Linux系统会不会自动加载。所以,你应该先去/media目录下查看一下,看看是不是已经自动加载上了。如果是的话,应该在/media里有一个目录,名字类似于disk,你进入目录就等于进入你的U盘了。 如果/media没有你想要的东西,那就要自己mount了! $mkdir /mnt/usb $mount -t vfat /dev/sda /mnt/usb 这样就可以了,你去/mnt/usb目录看看,应该有你想要的了。如果mount命令不管用,那么你可以将/dev/sda改成/dev/sdb或者/dev/sdc试试! -t选项用于设定文件系统类型,我假设你的U盘是fat32的。(因为大部分U盘都是这样的)如果是其他文件系统,你可以man mount来查看一下,方法类似。 2 我把光盘放到光驱里了,下一步咋办? 如果系统没有自动加载光驱的话,那么用下面命令一般有效: $mkdir /mnt/cdrom $mount -t iso9660 /dev/cdrom /mnt/cdrom 3 我下载了一个pes6.iso文件,我怎么加载iso文件呢? $mount -o loop pes6.iso /mnt/cdrom 使用-o选项和loop参数即可! 4 我下载了10个iso文件,从fifa2000.iso到fifa2009.iso,但是当我mount到fifa2007.iso时,就提示不让我mount了!怎么解决? 这个涉及到mount -o loop的原理了。你查看一下/dev下的以loop开头的文件,你就会发现: [rocrocket@wupengchong dev]$ ls /dev/loop* /dev/loop0  /dev/loop2  /dev/loop4  /dev/loop6 /dev/loop1  /dev/loop3  /dev/loop5  /dev/loop7 这下知道了吧,原来在/dev里只预设了8个加载iso的地方。 解决办法是这样的: 可以先用modinfo命令查看loop信息: [root@wupengchong ~]# modinfo loop filename:       /lib/modules/2.6.26.5-45.fc9.i686/kernel/drivers/block/loop.ko alias:          block-major-7-* license:        GPL srcversion:     7595F5D46DFDB4A2D489DDD depends: vermagic:       2.6.26.5-45.fc9.i686 SMP mod_unload 686 4KSTACKS parm:           max_loop:Maximum number of loop devices (int) parm:           max_part:Maximum number of partitions per loop device (int) 可以看出max_loop来限制最大loop的数目。而max_part用来设定每个loop的设备所能支持的分区数目。 你还可以看到控制loop的是一个内核模块:/lib/modules/2.6.26.5-45.fc9.i686/kernel/drivers/block/loop.ko。 我们的目标就是修改max_loop值。 $echo “options loop max_loop=20〃>>/etc/modprobe.conf 然后就是要重新加载内核模块,这样来做: [root@wupengchong ~]# modprobe -l|grep loop.ko /lib/modules/2.6.26.5-45.fc9.i686/kernel/drivers/block/cryptoloop.ko /lib/modules/2.6.26.5-45.fc9.i686/kernel/drivers/block/loop.ko [root@wupengchong ~]# modprobe -r loop [root@wupengchong ~]# modprobe loop 注意modprobe命令的选项-r表示remove,即删除某个模块。 好了,就此我们重新加载了loop模块,你现在再用ls /dev/loop*看看,是不是已经有20个loop设备了。 5 我知道/etc/fstab文件里的内容是开机时加载的所有设备,那么mount能利用这个文件么? 可以利用,你直接执行mount -a就可以了,mount会乖乖的按照/etc/fstab文件的内容来加载所有的设备。 6 我这里有不同的文件系统,我用mount加载时需要注意什么? 需要在mount时加-t来设定文件系统类别: 如果是fat的,就要-t vfat; 如果是linux的ext系统的,就要-t ext或-t ext2或-t ext3,未来会有-t ext4; 如果是光驱,那就是-t iso9660; 如果文件系统是ntfs,那么你可能需要了解一下ntfs-3g这个软件了。 7 我有一个老的三寸软盘,如果mount? $mount -t vfat /dev/fd0 /mnt/floppy 8 mount除了加载设备,还可以做什么? mount可以用来装载支持acl的分区。具体可查询mount和acl。 mount可以用来设定ftp登录目录,用–bind参数可以实现。 mount可以设定和修改已加载的文件系统的属性,具体可查看mount的-o参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: