mount命令

http://blog.sina.com.cn/s/blog_54f82cc201011j3z.html

首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的。

命令格式:

   mount [-t vfstype] [-o options] device dir

   1.-t vfstype 指定文件系统的类型 ,通常不必指定。mount会自动选择正确的类型。

常用类型有:

  光盘或光盘镜像:iso9660
  DOSfat16文件系统:msdos
  Windows 9xfat32文件系统:vfat
  Windows NTntfs文件系统:ntfs
  MountWindows文件网络共享:smbfs
  UNIX(LINUX)文件网络共享:nfs

   2.-o options 主要用来描述设备或档案的挂接方式 。常用的参数有:

  loop:用来把一个文件当成硬盘分区挂接上系统
  ro:采用只读方式挂接设备
  rw:采用读写方式挂接设备
  iocharset:指定访问文件系统所用字符集

Mount options for nfs
       Instead  of  a  textual  option string, parsed by the kernel, the nfs file system expects a binary argument of type struct nfs_mount_data.  The
       program mount itself parses the following options of the form `tag=value', and puts them in the structure mentioned: rsize=n, wsize=n, timeo=n,
       retrans=n,  acregmin=n,  acregmax=n, acdirmin=n, acdirmax=n, actimeo=n, retry=n, port=n, mountport=n, mounthost=name, mountprog=n, mountvers=n,
       nfsprog=n, nfsvers=n, namlen=n.  The option addr=n is accepted but ignored.  Also the following Boolean options, possibly preceded  by  no  are
       recognized: bg, fg, soft, hard, intr, posix, cto, ac, tcp, udp, lock.  For details, see nfs(5).


       Especially useful options include


       rsize=8192,wsize=8192
              This  will  make  your nfs connection faster than with the default buffer size of 4096. (NFSv2 does not work with larger values of rsize
              and wsize.)


       hard   The program accessing a file on a NFS mounted file system will hang when the server crashes. The process cannot be interrupted or killed
              unless you also specify intr.  When the NFS server is back online the program will continue undisturbed from where it was. This is prob-
              ably what you want.


       soft   This option allows the kernel to time out if the nfs server is not responding for some time. The time can be specified with  timeo=time.
              This option might be useful if your nfs server sometimes doesn't respond or will be rebooted while some process tries to get a file from
              the server.  Usually it just causes lots of trouble.


       nolock Do not use locking. Do not start lockd.



   3.device要挂接(mount)的设备。

  4.dir设备在系统上的挂接点(mountpoint)。

挂接光盘镜像文件


  由于近年来磁盘技术的巨大进步,新的电脑系统都配备了大容量的磁盘系统,在Windows下许多人都习惯把软件和资料做成光盘镜像文件通过虚拟光驱来使用。这样做有许多好处:一、减轻了光驱的磨损;二、现在硬盘容量巨大存放几十个光盘镜像文件不成问题,随用随调十分方便;三、硬盘的读取速度要远远高于光盘的读取速度,CPU占用率大大降低。其实linux系统下制作和使用光盘镜像比Windows系统更方便,不必借用任何第三方软件包。

  1、从光盘制作光盘镜像文件。将光盘放入光驱,执行下面的命令。

    #cp /dev/cdrom /home/sunky/mydisk.iso 或
   #dd if=/dev/cdrom of=/home/sunky/mydisk.iso
   注:执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘镜像文件/home/sunky/mydisk.iso

  2、将文件和目录制作成光盘镜像文件,执行下面的命令。

   #mkisofs -r -J -Vmydisk -o /home/sunky/mydisk.iso /home/sunky/mydir
   注:这条命令将/home/sunky/mydir目录下所有的目录和文件制作成光盘镜像文件/home/sunky/mydisk.iso,光盘卷标为:mydisk

   3、光盘镜像文件的挂接(mount)

   #mkdir /mnt/vcdrom
   注:建立一个目录用来作挂接点(mountpoint)
   #mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom
   注:使用/mnt/vcdrom就可以访问盘镜像文件mydisk.iso里的所有文件了。  

挂接移动硬盘


  对linux系统而言,USB接口的移动硬盘是当作SCSI设备对待的。插入移动硬盘之前,应先用fdisk–l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。

  [root at pldyrouter/]# fdisk -l
  Disk /dev/sda: 73 dot4 GB, 73407820800 bytes
  255 heads, 63sectors/track, 8924 cylinders
  Units = cylinders of16065 * 512 = 8225280 bytes
  Device Boot Start EndBlocks Id System
  /dev/sda1 1 4 32098+de Dell Utility
  /dev/sda2 * 5 255420482875 7 HPFS/NTFS
  /dev/sda3 2555 790442973875 83 Linux
  /dev/sda4 7905 89248193150 f Win95 Ext'd (LBA)
  /dev/sda5 7905 89248193118+ 82 Linux swap

  在这里可以清楚地看到系统有一块SCSI硬盘/dev/sda和它的四个磁盘分区/dev/sda1 -- /dev/sda4,/dev/sda5是分区/dev/sda4的逻辑分区。接好移动硬盘后,再用fdisk –l 或 more/proc/partitions查看系统的硬盘和硬盘分区情况

  [root at pldyrouter/]# fdisk -l
  Disk /dev/sda: 73 dot4 GB, 73407820800 bytes
  255 heads, 63sectors/track, 8924 cylinders
  Units = cylinders of16065 * 512 = 8225280 bytes
  Device Boot Start EndBlocks Id System
  /dev/sda1 1 4 32098+de Dell Utility
  /dev/sda2 * 5 255420482875 7 HPFS/NTFS
  /dev/sda3 2555 790442973875 83 Linux
  /dev/sda4 7905 89248193150 f Win95 Ext'd (LBA)
  /dev/sda5 7905 89248193118+ 82 Linux swap
  Disk /dev/sdc: 40.0GB, 40007761920 bytes
  255 heads, 63sectors/track, 4864 cylinders
  Units = cylinders of16065 * 512 = 8225280 bytes
  Device Boot Start EndBlocks Id System
  /dev/sdc1 1 5104096543+ 7 HPFS/NTFS
  /dev/sdc2 511 486434973505 f Win95 Ext'd (LBA)
  /dev/sdc5 511 486434973473+ b Win95 FAT32

  大家应该可以发现多了一个SCSI硬盘/dev/sdc和它的两个磁盘分区/dev/sdc1?、/dev/sdc2,其中/dev/sdc5是/dev/sdc2分区的逻辑分区。我们可以使用下面的命令挂接/dev/sdc1和/dev/sdc5。

   #mkdir -p /mnt/usbhd1
   #mkdir -p /mnt/usbhd2
   注:建立目录用来作挂接点(mountpoint)

   #mount -t ntfs/dev/sdc1 /mnt/usbhd1
   #mount -t vfat/dev/sdc5 /mnt/usbhd2

   注:对ntfs格式的磁盘分区应使用-tntfs 参数,对fat32格式的磁盘分区应使用-tvfat参数。若汉字文件名显示为乱码或不显示,可以使用下面的命令格式。

   #mount -t ntfs -oiocharset=cp936 /dev/sdc1 /mnt/usbhd1

   #mount -t vfat -oiocharset=cp936 /dev/sdc5 /mnt/usbhd2

  linux系统下使用fdisk分区命令和mkfs文件系统创建命令可以将移动硬盘的分区制作成linux系统所特有的ext2、ext3格式。这样,在linux下使用就更方便了。使用下面的命令直接挂接即可。

   #mount /dev/sdc1 /mnt/usbhd1 

挂接U盘


  和USB接口的移动硬盘一样对linux系统而言U盘也是当作SCSI设备对待的。使用方法和移动硬盘完全一样。插入U盘之前,应先用fdisk–l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。

  [root at pldyrouterroot]# fdisk -l

  Disk /dev/sda: 73 dot4 GB, 73407820800 bytes

  255 heads, 63sectors/track, 8924 cylinders

  Units = cylinders of16065 * 512 = 8225280 bytes

  Device Boot Start EndBlocks Id System

  /dev/sda1 1 4 32098+de Dell Utility

  /dev/sda2 * 5 255420482875 7 HPFS/NTFS

  /dev/sda3 2555 790442973875 83 Linux

  /dev/sda4 7905 89248193150 f Win95 Ext'd (LBA)

  /dev/sda5 7905 89248193118+ 82 Linux swap

  插入U盘后,再用fdisk –l 或more /proc/partitions查看系统的硬盘和硬盘分区情况。

  [root at pldyrouterroot]# fdisk -l

  Disk /dev/sda: 73 dot4 GB, 73407820800 bytes

  255 heads, 63sectors/track, 8924 cylinders

  Units = cylinders of16065 * 512 = 8225280 bytes

  Device Boot Start EndBlocks Id System

  /dev/sda1 1 4 32098+de Dell Utility

  /dev/sda2 * 5 255420482875 7 HPFS/NTFS

  /dev/sda3 2555 790442973875 83 Linux

  /dev/sda4 7905 89248193150 f Win95 Ext'd (LBA)

  /dev/sda5 7905 89248193118+ 82 Linux swap

  Disk /dev/sdd: 131MB, 131072000 bytes

  9 heads, 32sectors/track, 888 cylinders

  Units = cylinders of288 * 512 = 147456 bytes

  Device Boot Start EndBlocks Id System

  /dev/sdd1 * 1 889127983+ b Win95 FAT32

  Partition 1 hasdifferent physical/logical endings:

  phys=(1000, 8, 32)logical=(888, 7, 31)

  系统多了一个SCSI硬盘/dev/sdd和一个磁盘分区/dev/sdd1,/dev/sdd1就是我们要挂接的U盘。

  #mkdir -p /mnt/usb

  注:建立一个目录用来作挂接点(mountpoint)

  #mount -t vfat/dev/sdd1 /mnt/usb

  注:现在可以通过/mnt/usb来访问U盘了,若汉字文件名显示为乱码或不显示,可以使用下面的命令。

  #mount -t vfat -oiocharset=cp936 /dev/sdd1 /mnt/usb

挂接Windows文件共享


  Windows网络共享的核心是SMB/CIFS,在linux下要挂接(mount)windows的磁盘共享,就必须安装和使用samba软件包。现在流行的linux发行版绝大多数已经包含了samba软件包,如果安装linux系统时未安装samba请首先安装samba。当然也可以到www.samba.org网站下载......新的版本是3.0.10版。

  当windows系统共享设置好以后,就可以在linux客户端挂接(mount)了,具体操作如下:

  # mkdir -p /mnt/samba

  注:建立一个目录用来作挂接点(mountpoint)

  # mount -t smbfs -ousername=administrator,password=pldy123 //10.140.133.23/c$/mnt/samba
或者
  # mount -t cifs -ousername=administrator,password=pldy123 //10.140.133.23/c$/mnt/samba

  注:administrator 和pldy123 是ip地址为10.140.133.23windows计算机的一个用户名和密码,c$是这台计算机的一个磁盘共享

  如此就可以在linux系统上通过/mnt/samba来访问windows系统磁盘上的文件了。以上操作在redhat asserver 3、redflag server 4.1、suse server 9以及windows NT 4.0、windows2000、windows xp、windows 2003环境下测试通过。

挂接UNIX系统NFS文件共享


  类似于windows的网络共享,UNIX(Linux)系统也有自己的网络共享,那就是NFS(网络文件系统),下面我们就以SUNSolaris2.8和REDHAT as server 3 为例简单介绍一下在linux下如何mountnfs网络共享。

  在linux客户端挂接(mount)NFS磁盘共享之前,必须先配置好NFS服务端。

  1、Solaris系统NFS服务端配置方法如下:

   (1)修改/etc/dfs/dfstab, 增加共享目录

      share -F nfs -orw /export/home/sunky

   (2)启动nfs服务

      #/etc/init.d/nfs.server start

   (3)NFS服务启动以后,也可以使用下面的命令增加新的共享

      # share/export/home/sunky1

      # share/export/home/sunky2

   注:/export/home/sunky和/export/home/sunky1是准备共享的目录

  2、linux系统NFS服务端配置方法如下:

   (1)修改/etc/exports,增加共享目录

  /export/home/sunky10.140.133.23(rw)

  /export/home/sunky1*(rw)

  /export/home/sunky2linux-client(rw)

   注:/export/home/目录下的sunky、sunky1、sunky2是准备共享的目录,10.140.133.23、*、linux-client是被允许挂接此共享linux客户机的IP地址或主机名。如果要使用主机名linux-client必须在服务端主机/etc/hosts文件里增加linux-client主机ip定义。格式如下:

   10.140.133.23linux-client

   (2)启动与停止NFS服务

   /etc/rc.d/init.d/portmap start(在REDHAT中PORTMAP是默认启动的)

   /etc/rc.d/init.d/nfsstart 启动NFS服务

   /etc/rc.d/init.d/nfsstop 停止NFS服务

   注:若修改/etc/export文件增加新的共享,应先停止NFS服务,再启动NFS服务方能使新增加的共享起作用。使用命令exportfs-rv也可以达到同样的效果。

  3、linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享

   # mkdir -p /mnt/nfs

   注:建立一个目录用来作挂接点(mountpoint)

   #mount -t nfs -o rw10.140.133.9:/export/home/sunky /mnt/nfs

   注:这里我们假设10.140.133.9是NFS服务端的主机IP地址,当然这里也可以使用主机名,但必须在本机/etc/hosts文件里增加服务端ip定义。/export/home/sunky为服务端共享的目录。

  如此就可以在linux客户端通过/mnt/nfs来访问其它linux系统或UNIX系统以NFS方式共享出来的文件了。以上操作在redhatas server 3、redflag server4.1、suse server 9以及Solaris 7、Solaris8、Solaris 9 for x86&sparc环境下测试通过。
另简单用法:
简单用法:
fat32的分区
mount -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom (mount -t vfat -oiocharset=cp936 /dev/hda7 /mnt/cdrom)
ntfs的分区
mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom
iso文件
mount -o loop /abc.iso/mnt/cdrom
软盘
mount /dev/fd0/mnt/floppy
USB闪存
mount /dev/sda1/mnt/cdrom     说明: /mnt/cdrom 目录必须存在

所有/etc/fstab内容 mount -a

可以指定文件格式"-t 格式",格式可以为vfat, ext2, ext3等.

镜像文件:
mount fileNamemountPoint -oloop,fileName是镜像文件名(*.iso,*.img),其它的不用说了,跟上面一样。用例:如我有一个a.iso光盘镜像文件,mounta.iso a -oloop,这样进入目录a你就能浏览a.iso的内容了,*.img文件的用法一样。

显示中文方面,如果是fedora core 1的话,用utf8更好
mount -o iocharset=uft8/dev/hda1 /mnt/c
mount -o iocharset=uft8/dev/sda1 /mnt/usb
mount -t smbfs//ip_addr/share/dir /mnt/smb/share -o iocharset=uft8,username=name,password=passwd


开机就mount上windows下的分区
自动将windows的d盘挂到/mnt/d上,用vi打开/etc/fstab,加入以下一行
/dev/hda5 /mnt/d vfatdefaults,codepage=936,iocharset=cp936 0 0
注意,先得手工建立一个/mnt/d目录
mount局域网上其他windows机器共享出的目录(bjchenxu)
mount -t smbfs -ousername=guest,password=guest //machine/path /mnt/cdrom

在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参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值