mount命令详解

功能:加载指定的文件系统。 

语法:mount [-afFhnrvVw] [-L<标签>] [-o<选项>] [-t<文件系统类型>] [设备名] [加载点]

用法说明:mount可将指定设备中指定的文件系统加载到Linux目录下(也就是装载点)。可将经常使用的设备写入文件/etc/fastab,以使系统在每次启动时自动加载。mount加载设备的信息记录在/etc/mtab文件中。使用umount命令卸载设备时,记录将被清除。 

-a 加载文件/etc/fstab中设置的所有设备。

-f 不实际加载设备。可与-v等参数同时使用以查看mount的执行过程。

-F 需与-a参数同时使用。所有在/etc/fstab中设置的设备会被同时加载,可加快执行速度。

-h 显示在线帮助信息。

-L<标签> 加载文件系统标签为<标签>的设备。

-n 不将加载信息记录在/etc/mtab文件中。

 

-o<选项> 指定加载文件系统时的选项。有些选项也可在/etc/fstab中使用。这些选项包括: 

async 以非同步的方式执行文件系统的输入输出动作。

atime 每次存取都更新inode的存取时间,默认设置,取消选项为noatime。 

auto 必须在/etc/fstab文件中指定此选项。执行-a参数时,会加载设置为auto的设备,取消选取为noauto。 

defaults 使用默认的选项。默认选项为rw、suid、dev、exec、anto nouser与async。 

dev 可读文件系统上的字符或块设备,取消选项为nodev。

exec 可执行二进制文件,取消选项为noexec。 

noatime 每次存取时不更新inode的存取时间。

noauto 无法使用-a参数来加载。 

nodev 不读文件系统上的字符或块设备。

noexec 无法执行二进制文件。 

nosuid 关闭set-user-identifier(设置用户ID)与set-group-identifer(设置组ID)设置位。 

nouser 使一位用户无法执行加载操作,默认设置。 

remount 重新加载设备。通常用于改变设备的设置状态。

ro 以只读模式加载。 

rw 以可读写模式加载。 

suid 启动set-user-identifier(设置用户ID)与set-group-identifer(设置组ID)设置位,取消选项为nosuid。 

sync 以同步方式执行文件系统的输入输出动作。 

user 可以让一般用户加载设备。 


-r 以只读方式加载设备。 

-t<文件系统类型> 指定设备的文件系统类型。常用的选项说明有: 
minix Linux最早使用的文件系统。 

ext2 Linux目前的常用文件系统。 
msdos MS-DOS 的 FAT。 

vfat Win85/98 的 VFAT。
nfs 网络文件系统。 

iso9660 CD-ROM光盘的标准文件系统。
ntfs Windows NT的文件系统。 

hpfs OS/2文件系统。Windows NT 3.51之前版本的文件系统。 
auto 自动检测文件系统。 

-v 执行时显示详细的信息。 
-V 显示版本信息。 

-w 以可读写模式加载设备,默认设置。


一 . 挂接光盘镜像文件

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

     #dd if=/dev/cdrom of=/home/sunky/mydisk.iso 

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

    #mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir 

 3、光盘镜像文件的挂接(mount)
#mkdir /mnt/vcdrom
注:建立一个目录用来作挂接点(mount point)

#mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom
注:使用/mnt/vcdrom就可以访问盘镜像文件mydisk.iso里的所有文件了 

二 .挂接移动硬盘

对linux系统而言,USB接口的移动硬盘是当作SCSI设备对待的。插入移动硬盘之前,应先用fdisk –l

   或 more /proc/partitions查看系统的硬盘和硬盘分区情况。

    #mount -t ntfs /dev/sdc1 /mnt/usbhd1

#mount -t vfat /dev/sdc5 /mnt/usbhd2 
注:对ntfs格式的磁盘分区应使用-t ntfs 参数,对fat32格式的磁盘分区应使用-t vfat参数。

      若汉字文件名显示为乱码或不显示,可以使用下面的命令格式。

#mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1
#mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2

  linux系统下使用fdisk分区命令和mkfs文件系统创建命令可以将移动硬盘的分区制作成linux系统所特

     有的ext2、ext3格式。这样,在linux下使用就更方便了。使用下面的命令直接挂接即可。

#mount /dev/sdc1 /mnt/usbhd1 

         开机就mount上windows下的分区自动将windows的d盘挂到/mnt/d上,用vi打开/etc/fstab,

         加入以下一行:
        /dev/hda5 /mnt/d vfat defaults,codepage=936,iocharset=cp936 0 0
        注意,先得手工建立一个/mnt/d目录

mount局域网上其他windows机器共享出的目录(bjchenxu)
mount -t smbfs -o username=guest,password=guest //machine/path /mnt/cdrom

三.挂接U盘

和USB接口的移动硬盘一样对linux系统而言U盘也是当作SCSI设备对待的。使用方法和移动硬盘完全

      一样。插入U盘之前,应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。

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

  [root at pldyrouter root]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
Disk /dev/sdd: 131 MB, 131072000 bytes
9 heads, 32 sectors/track, 888 cylinders
Units = cylinders of 288 * 512 = 147456 bytes
Device Boot Start End Blocks Id System
/dev/sdd1 * 1 889 127983+ b Win95 FAT32
Partition 1 has different physical/logical endings:
phys=(1000, 8, 32) logical=(888, 7, 31)

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

#mkdir -p /mnt/usb
注:建立一个目录用来作挂接点(mount point)

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

注:现在可以通过/mnt/usb来访问U盘了, 若汉字文件名显示为乱码或不显示,可以使用下面的命令。
#mount -t vfat -o iocharset=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 
注:建立一个目录用来作挂接点(mount point)

# mount -t smbfs -o  

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

如此就可以在linux系统上通过/mnt/samba来访问windows系统磁盘上的文件了。

五.挂接UNIX系统NFS文件共享

类似于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/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/sunky 10.140.133.23(rw)

/export/home/sunky1 *(rw)

/export/home/sunky2 linux-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.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 point)

#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/sunky为服务端共享的目录。

如此就可以在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环境下测试通过。


loop 挂载回旋设备

需要注意的是, 挂载点必须是一个已经存在的目录这个目录可以不为空,但挂载后这个目录下以前的内容将不可用,umount以后会恢复正常。 使用多个-o参数的时候,-o 只用一次,参数之间用半角逗号隔开:

[Copy to clipboard]
CODE:
# mount –o remount,rw /

例如要挂载windows下文件系统为FAT32的D盘,一般而言在 Linux下这个分区对应/dev/hda5,根据具体的分区情况会有不同,这里就以hda5来举例说明:

[Copy to clipboard]
CODE:
# mkdir /mnt/hda5  //创建hda5的目录作为挂载点,位置和目录名可自定义//

# mount -t vfat /dev/hda5 /mnt/hda5

一般而言, Linux会自动探测分区的文件系统,除非让你指定时,否则-t vfat 可以省掉。

[Copy to clipboard]
CODE:
# mount /dev/hda5 /mnt/hda5

这样就可以进入/mnt/hda5目录去访问分区中的资源了。 

3.      为什么mount上分区后显示不了中文文件为问号/乱码?

显示问号表明你的系统中没有可识别使用的中文字体,请先安装中文字体。确保你的系统已经可以很好的显示中文。显示为乱码一般是mount默认使用的文件系统编码和文件系统中文件的实际编码不一致造成的。要想正常显示中文文件,mount时需要用到 -o 参数里的codepage和iocharset选项。 codepage指定文件系统的代码页,简体中文中文代码是936;iocharset指定字符集,简体中文一般用cp936或gb2312

[Copy to clipboard]
CODE:
# mount –o iocharset=gb2312 codepage=936 /dev/hda5 /mnt/hda5

一般来说 mount –o iocharset=cp936 /dev/hda5 /mnt/hda5 就可以解决问题了。

如果这样做了以后还有问题,请尝试UTF-8编码:

[Copy to clipboard]
CODE:
# mount –o iocharset=utf8 /dev/hda5 /mnt/hda5

4.      为什么mount上去以后分区普通用户不可写?

mount时加上 –o umask=000 即可:

[Copy to clipboard]
CODE:
# mount –o umask=000, iocharset=cp936 /dev/hda5 /mnt/hda5

5.      为什么mount上去后的分区中的文件都变成短文件名了?

这是文件系统挂错的原因,将FAT32挂载成FAT16时就会出现这种情况,先umount,然后用 –t vfat 重新挂载即可解决问题。

[Copy to clipboard]
CODE:
# mount –t vat /dev/hda5 /mnt/hda5

6.      为什么不能mount ntfs分区?

这是内核不支持NTFS文件系统的原因,请重新编译内核或者安装内核的NTFS文件系统支持包,以使得内核有NTFS文件系统的支持。

7.      如何挂载U盘和mp3?

如果计算机没有其它SCSI设备和usb外设的情况下,插入的U盘的设备路径是 /dev/sda1,用命令:

[Copy to clipboard]
CODE:
# mkdir /mnt/u

# mount /dev/sda1 /mnt/u

挂载即可。

8.      可以直接使用iso文件吗?

可以,就是mount的这一选项使得 Linux下有免费虚拟光驱的说法,具体用法是:

[Copy to clipboard]
CODE:
# mkdir /mnt/iso 

# mount –o loop  linux.iso /mnt/iso

当然,挂载以后挂载点/mnt/iso也是只读的。  

9.      我怎么不可以mount iso文件?

一般而言,大多数的发行版使用的内核均已将loop设备的支持编译进去了,但是也有没有的情况,所以请确保系统所使用的内核支持loop设备。

第二种情况是iso文件被放置到了NTFS或其它只读文件系统中了。挂载loop 设备必须要求挂载到一个可写的分区中,目前 Linux内核对NTFS文件系统的写支持非常有限,请将iso文件复制到其它可写文件系统中后再挂载。

10.  如何挂载光驱和软驱

一般来说CDROM的设备文件是/dev/hdc,软驱的设备名是/dev/fd0

[Copy to clipboard]
CODE:
# mkdir /mnt/cdrom 

# mount /dev/hdc /mnt/cdrom //挂载光驱 //

# mkdir /mnt/floppy  

# mount /dev/fd0 /mnt/floppy   //挂载软驱 //

11.  为何挂载的CD-ROM不能显示中文文件?

使用 –o iocharset=cp936 选项一般能解决问题,否则使用utf-8编码。

[Copy to clipboard]
CODE:
# mount –o iocharset=cp936 /dev/hdc /mnt/cdrom

12.  如何开机自动挂载分区?

每次挂载都要输入那么长的命令的确是繁琐了些,只要将分区信息写到/etc/fstab文件中即可实现系统启动的自动挂载,例如对于/dev/hda5的自动挂载添加如下的行即可:

[Copy to clipboard]
CODE:
/dev/hda5 /mnt/hda5 vfat defaults,iocharset=cp936, rw 0 0

13.  如何挂载samba 分区?

[Copy to clipboard]
CODE:
# mkdir /mnt/share

# mount -t smbfs -o username=root,password=abc,codepage=936,iocharset=gb2312  //192.168.1.100/share  /mnt/share

如果中文显示不正常请尝试UTF-8编码。当然可以写到fstab中实现自动挂载。

14.  mount --bind是什么意思? 

mount --bind 是 将一个目录中的内容挂载到另一个目录上,用法是

[Copy to clipboard]
CODE:
# mount  --bind olddir newdir

这个命令使得 自己搭建的FTP要共享某个目录的时候变得特别方便。如果要取消mount用命令:

[Copy to clipboard]
CODE:
# mount  --move olddir newdir 即可。

如果mount --bind 也想写入fstab中的话格式如下:

[Copy to clipboard]
CODE:
olddir newdir none bind 0 0

15.  umount基本用法是?

譬如 /dev/hda5 已经挂载在/mnt/hda5上,用一下三条命令均可卸载挂载的文件系统

[Copy to clipboard]
CODE:
# umount /dev/hda5

# umount /mnt/hda5

# umount /dev/hda5 /mnt/hda5

16.  为什么umount的时候老显示 device busy?

这是因为有程序正在访问这个设备,最简单的办法就是让访问该设备的程序退出以后再umount。可能有时候用户搞不清除究竟是什么程序在访问设备,如果用户不急着umount,则可以用:

[Copy to clipboard]
CODE:
# umount  -l /mnt/hda5

来卸载设备。选项 –l 并不是马上umount,而是在该目录空闲后再umount。还可以先用命令 ps aux 来查看占用设备的程序PID,然后用命令kill来杀死占用设备的进程,这样就umount的非常放心了。

你可能感兴趣的:(mount,unmount)