mount命令详解
功能:加载指定的文件系统。
语法:mount [-afFhnrvVw] [-L<标签>] [-o<选项>] [-t<文件系统类型>] [设备名] [加载点]
用 法说明:mount可将指定设备中指定的文件系统加载到Linux目录下(也就是装载点)。可将经常使用的设备写入文件/etc/fastab,以使系统 在每次启动时自动加载。mount加载设备的信息记录在/etc/mtab文件中。使用umount命令卸载设备时,记录将被清除。
 
常用参数和选项:
-t vsftype:指定要挂载的设备上的文件系统类型;若不指定,系统将自动判断,若指的文件系统不匹配则系统将报错。通常不需指定。
-a 加载文件/etc/fstab中设置的所有设备。自动挂载所有支持自动挂载的设备;(定义在了/etc/fstab文件中,且挂载选项中有“自动挂载”功能)
-f 不实际加载设备。可与-v等参数同时使用以查看mount的执行过程。
-r 只读挂载。
-w 读写挂载;
-n 不将加载信息记录在/etc/mtab文件中。
-h 显示在线帮助信息。
-L<标签> 加载文件系统标签为<标签>的设备。
-U 'UUID': 以UUID指定要挂载的设备;
-B, --bind: 绑定目录到另一个目录上;
   注意:查看内核追踪到的已挂载的所有设备:cat /proc/mounts

-o<选项> 指定加载文件系统时的选项。有些选项也可在/etc/fstab中使用。
sync/async 以(同步/异步)的方式执行文件系统的输入输出动作。默认设置为async。
atime/noatime 每次存取都(更新/不更新)inode的存取时间,默认设置为atime。
auto 必须在/etc/fstab文件中指定此选项。执行-a参数时,会加载设置为auto的设备,取消选取为noauto。
noauto 无法使用-a参数来加载。
dev/nodev (可读/不读)文件系统上的字符或块设备。
exec/noexec (可/不可)执行二进制文件。
user/nouser 使一般用户(可以/不可以)执行加载操作,默认设置nouser。
remount 重新加载设备。通常用于改变设备的设置状态。
ro 以只读模式加载。
rw 以可读写模式加载。
suid/nosuid (启动/禁用)suid权限,默认为suid。一般情况下,应该禁用。
loop:用来把一个文件当成硬盘分区挂接上系统
defaults 使用默认的选项。默认选项为rw、suid、dev、exec、anto nouser与async。
 
-t<文件系统类型> 指定设备的文件系统类型:
nfs 网络文件系统。
iso9660 CD-ROM光盘的标准文件系统。
ntfs Windows NT的文件系统。 
auto 自动检测文件系统。
-v 执行时显示详细的信息。

简单用法:
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
开机就mount上windows下的分区
自动将windows的d盘挂到/mnt/d上,用vi打开/etc/fstab,加入以下一行
/dev/hda5 /mnt/d vfat defaults,codepage=936,iocharset=cp936 0 0
mount局域网上其他windows机器共享出的目录
mount -t smbfs -o username=guest,password=guest //machine/path /mnt/cdrom
  1、从光盘制作光盘镜像文件。将光盘放入光驱,执行下面的命令。
   #cp /dev/cdrom /home/sun/mydisk.iso 或
   #dd if=/dev/cdrom of=/home/sun/mydisk.iso
   注:执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘镜像文件/home/sun/mydisk.iso
  2、将文件和目录制作成光盘镜像文件,执行下面的命令。
   #mkisofs -r -J -V mydisk -o /home/sun/mydisk.iso /home/sun/ mydir
   注:这条命令将/home/sun/mydir目录下所有的目录和文件制作成光盘镜像文件/home/sun/mydisk.iso,光盘卷标为:mydisk

  3、光盘镜像文件的挂接
   #mkdir /mnt /vcdrom
   #mount -o loop -t iso9660 /home/sun/mydisk.iso /mnt/vcdrom
   注:使用/mnt/vcdrom就可以访问盘镜像文件mydisk.iso里的所有文件了
挂接移动硬盘
    4.USB接口的移动硬盘是当作SCSI设备对待的。插入移动硬盘之前,应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。
   #mkdir -p /mnt /usbhd1
   #mkdir -p /mnt /usbhd2

    建立目录用来作挂接点:
   #mount -t ntfs /dev/sdc1 /mnt/usbhd1
   #mount -t vfat /dev/sdc5 /mnt/usbhd2
     若汉字文件名显示为乱码或不显示,可以使用下面的命令格式。
   #mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1
   #mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2
挂接U盘和USB接口的移动硬盘一样对linux系统而言U盘也是当作SCSI设备对待的。使用方法和移动硬盘完全一样。插入U盘之前,应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。
  #mkdir -p /mnt/usb
  建立一个目录用来作挂接点:
  #mount -t vfat /dev/sdd1 /mnt/usb
  注:现在可以通过/mnt/usb来访问U盘了, 若汉字文件名显示为乱码或不显示,可以使用下面的命令。
  #mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb

类似于windows的网络共享,UNIX(Linux)系统也有自己的网络共享,那就是NFS(网络文件系统),下面我们就 以SUN Solaris2.8和REDHAT as server 3 为例简单介绍一下在linux下如何mount nfs网络共享。在linux客户端挂接(mount)NFS磁盘共享之前,必须先配置好NFS服务端。
  1、Solaris系统NFS服务端配置方法如下:
(1)修改 /etc/dfs/dfstab, 增加共享目录
   share -F nfs -o rw /export/home/sun
(2)启动nfs服务
    # /etc/init.d/nfs.server start
(3)NFS服务启动以后,也可以使用下面的命令增加新的共享
    # share /export/home/sun1
    # share /export/home/sun2
  2、linux系统NFS服务端配置方法如下:
   (1)修改 /etc/exports,增加共享目录
  /export/home/sun 10.140.133.23(rw)
  /export/home/sun1 *(rw)
  /export/home/sun2 linux-client(rw)
   注:/export/home/目录下的sun,sun1,sun2是准备共享的目录,10.140.133.23、*、 linux-client是被允许挂接此共享linux客户机的IP地址或主机名。如果要使用主机名linux-client必须在服务端主机 /etc/hosts文件里增加linux-client主机ip定义。格式如下:
   10.140.133.23 linux-client
   (2)启动与停止NFS服务
   /etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的)
   /etc/rc.d/init.d/nfs start 启动NFS服务
   /etc/rc.d/init.d/nfs stop 停止NFS服务
   注:若修改/etc/export文件增加新的共享,应先停止NFS服务,再启动NFS服务方能使新增加的共享起作用。使用命令exportfs -rv也可以达到同样的效果。
  3、linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享
   # mkdir –p /mnt/nfs
   建立一个目录用来作挂接点:
   #mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs
   注:这里我们假设10.140.133.9是NFS服务端的主机IP地址,当然这里也可以使用主机名,但必须在本机/etc/hosts文件里增加服务端ip定义。/export/home/sun为服务端共享的目录。
  如此就可以在linux客户端通过/mnt/nfs来访问其它linux系统或UNIX系统以NFS方式共享出来的文件了。以上操作在 redhat as server 3、redflag server4.1、suse server 9以及Solaris 7、Solaris 8、Solaris 9 for x86&sparc环境下测试通过。

权限问题:
分别server端的使用者jack,uid为1818,gid为1818,client端也有一个使用者jack,uid和gid也是1818。client端的jack希望能完全读定server端的/home/jack目录。server端的/etc/exports是这样写的:
   /home/jac *(rw,all_squash,anonuid=1818,anongid=1818)
   意思是,所有client端的使用者存取server端的/home/jack目录,都会map成server端的jack(uid,gid=1818)
   结果是:
   1.client端的root可以完全存取该目录,包括读写删除等等权限
   2.client端的jack(uid,gid=1818)可以做
     rm -rf server_jack/*
     cp something server_jack/
     mkdir server_jack/a