文档库 最新最全的文档下载
当前位置:文档库 › linux的mount命令详解

linux的mount命令详解

linux的mount命令详解
linux的mount命令详解

linux下挂载(mount)光盘映像文档、移动硬盘、U盘、Windows和NFS网络共享

linux 是个优秀的开放源码的操作系统,能够运行在大到巨型小到掌上型各类电脑系统上,随着linux系统的日渐成熟和稳定连同他开放源代码特有的优越性,linux在全世界得到了越来越广泛的应用。现在许多企业的电脑系统都是由UNIX系统、Linux系统和Windows系统组成的混合系统,不同系统之间经常需要进行数据交换。下面我根据自己的实际工作经验介绍一下如何在linux系统下挂接(mount)光盘映像文档、移动硬盘、U盘连同Windows网络共享和UNIX NFS网络共享。

挂接命令(mount)

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

命令格式:

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

其中:

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

光盘或光盘映像:iso9660

DOS fat16文档系统:msdos

Windows 9x fat32文档系统:vfat

//////////////////////////////////////////////////////////////////

在windows操作系统中,

挂载通常是指给磁盘分区(包括被虚拟出来的磁盘分区)分配一个盘符。

这个操作可以通过“计算机管理”中的“磁盘管理”来进行。

第三方软件,如磁盘分区管理软件、虚拟磁盘软件等,通常也附带挂载功能。

在linux操作系统中,

挂载是一个非常重要的功能,使用非常频繁。

它指将一个设备(通常是存储设备)挂接到一个已存在的目录上。

(这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。)

需要理解的是,

linux操作系统将所有的设备都看作文件,

它将整个计算机的资源都整合成一个大的文件目录。

我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,

然后通过访问这个目录来访问存储设备。

◆linux下挂载指南:(转载自https://www.wendangku.net/doc/9b17024058.html,)

◆挂载条件:

1、挂载点必须是一个目录。

2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。对于其他操作系统建立的文件系统的挂载也是这样。

◆文件系统格式

需要理解的是:光盘、软盘、其他操作系统使用的文件系统的格式与linux使用的文件系统格式是不一样的。光盘是ISO9660;软盘是fat16或ext2;

windows NT是fat16、NTFS;

windows98是fat16、fat32;

windows2000和windowsXP是fat16、fat32、NTFS。

挂载前要了解linux是否支持所要挂载的文件系统格式。

◆挂载命令

挂载时使用mount命令:

格式:mount [-参数] [设备名称] [挂载点]

其中常用的参数有:

-t<文件系统类型> 指定设备的文件系统类型,

常见的有:minix linux最早使用的文件系统

ext2 linux目前常用的文件系统

msdos MS-DOS的fat,就是fat16

vfat windows98常用的fat32

nfs 网络文件系统

iso9660 CD-ROM光盘标准文件系统

ntfs windows NT 2000的文件系统

hpfs OS/2文件系统

auto 自动检测文件系统

-o<选项> 指定挂载文件系统时的选项。有些也可用在/etc/fstab中。

常用的有codepage=XXX 代码页iocharset=XXX 字符集ro 以只读方式挂载rw 以读写方式挂载nouser 使一般用户无法挂载user 可以让一般用户挂载设备◆示例

提醒一下,你要把文件系统挂载到哪,首先要先建上个目录。

例子:windows98装在hda1分区,同时计算机上还有软盘和光盘需要挂载。

# mk /mnt/winc

# mk /mnt/floppy

# mk /mnt/cdrom

# mount -t vfat /dev/hda1 /mnt/winc

# mount -t msdos /dev/fd0 /mnt/floppy

# mount -t iso9660 /dev/cdrom /mnt/cdrom

现在就可以进入/mnt/winc等目录读写这些文件系统了。

要保证最后两行的命令不出错,要确保软驱和光驱里有盘。

◆Linux下分区标识

介绍Linux下分区是如何标识的,

通常是hdyN (IDE 磁盘)或sdyN(SCSI 磁盘)。

y 这个字母标明分区所在的设备。

例如,/dev/hda(第一个IDE 磁盘)或/dev/sdb(第二个SCSI 磁盘)

N 这个数字代表分区的编号。

前四个分区(主分区或扩展分区)是用数字从 1 排列到4。逻辑分区从 5 开始。

例如,/dev/hda3 是在第一个IDE 硬盘上的第三个主分区或扩展分区;/dev/sdb6 是在第二个SCSI 硬盘上的第二个逻辑分区。

◆中文支持

如果你的windows98目录里有中文文件名,使用上面的命令挂载后,显示的是一堆乱码。

这就要用到-o 参数里的codepage iocharset选项。

codepage指定文件系统的代码页,简体中文中文代码是936;

iocharset指定字符集,简体中文一般用cp936或gb2312。

当挂载的文件系统linux不支持时,mount一定报错,如windows2000的ntfs文件系统。

可以重新编译linux内核以获得对该文件系统的支持或者下个支持ntfs的补丁。

◆自动挂载

每次开机访问windows分区都要运行mount命令显然太烦琐,

我们可以设定让linux在启动的时候也挂载我们希望挂载的分区,如windows分区,

以实现文件系统的自动挂载。

在/etc目录下有个fstab文件,它里面列出了linux开机时自动挂载的文件系统的列表。

我的/etc/fstab文件如下:

LABEL=/ / ext3 defaults 1 1

LABEL=/boot /boot ext3 defaults 1 2 none

/dev/pts devpts gid=5,mode=620 0 0 none

/proc proc defaults 0 0 none

/dev/shm tmpfs defaults 0 0

/dev/hda8 swap swap defaults 0 0

/dev/cdrom /mnt/cdrom udf,iso9660 noauto, owner, kudzu, ro 0 0

/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0

/dev/cdrom1 /mnt/cdrom1 udf, iso9660 noauto, owner, kudzu, ro 0 0

/dev/hdb1 /mnt/winc ntfs defaults,codepage=936,iocharset=cp936 0 0

/dev/hda5 /mnt/wind vfat defaults,codepage=936,iocharset=cp936 0 0

/dev/hda6 /mnt/winf vfat defaults,codepage=936,iocharset=cp936 0 0

在/etc/fstab文件里,

第一列是挂载的文件系统的设备名,

第二列是挂载点,

第三列是挂载的文件系统类型,

第四列是挂载的选项,

选项间用逗号分隔。

在最后三行是我手工添加的windows下的C、D、F盘,

加了codepage=936和iocharset=cp936参数以支持中文文件名。

参数defaults实际上包含了一组默认参数:

rw 以可读写模式挂载suid 开启用户ID和群组ID设置位dev 可解读文件系统上的字符或区块设备exec 可执行二进制文件auto 自动挂载nouser 使一般用户无法挂载

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

大家可以看到在这个列表里,光驱和软驱是不自动挂载的,参数设置为noauto。

◆挂载ISO文件

挂载ISO格式的命令:

mount -loop -o iocharset=cp936 xxxxx.iso /mnt/iso

Windows NT ntfs文档系统:ntfs

Mount Windows文档网络共享:smbfs

UNIX(LINUX) 文档网络共享:nfs

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

loop:用来把一个文档当成硬盘分区挂接上系统

ro:采用只读方式挂接设备

rw:采用读写方式挂接设备

iocharset:指定访问文档系统所用字符集

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

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

挂接光盘映像文档

由于近年来磁盘技术的巨大进步,新的电脑系统都配备了大容量的磁盘系统,在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 -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir

注:这条命令将/home/sunky/mydir目录下任何的目录和文档制作成光盘映像文档/home/sunky/mydisk.iso,光盘卷标为:mydisk

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查看系统的硬盘和硬盘分区情况。

[root at pldyrouter /]# 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

在这里能够清楚地看到系统有一块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 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/sdc: 40.0 GB, 40007761920 bytes

255 heads, 63 sectors/track, 4864 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sdc1 1 510 4096543+ 7 HPFS/NTFS

/dev/sdc2 511 4864 34973505 f Win95 Ext'd (LBA)

/dev/sdc5 511 4864 34973473+ 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

注:建立目录用来作挂接点(mount point)

#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

挂接U盘

和USB接口的移动硬盘相同对linux系统而言U盘也是当作SCSI设备对待的。使用方法和移动硬盘完全相同。插入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

插入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。当然也能够到https://www.wendangku.net/doc/9b17024058.html,网站下载......新的版本是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系统磁盘上的文档了。以上操作在redhat as server3、redflag server 4.1、suse server 9连同windows NT 4.0、windows 2000、windowsxp、windows 2003环境下测试通过。

挂接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、Solaris8、Solaris 9 for x86&sparc环境下测试通过。

权限问题:

假設server 端的使用者jack, user id 為1818, gid 為1818, client 端也有一個使用者jack,但是uid 及gid 是1818。client 端的jack 希望能完全讀寫server 端的/home/jack這個目錄。server 端的/etc/exports 是

這樣寫的:

/home/jack *(rw,all_squash,anonuid=1818,anongid=1818)

這個的設定檔的意思是,任何client 端的使用者存取server 端/home/jack 這

目錄時,都會map 成server 端的jack (uid,gid=1818)。我mount的結果是

1. client 端的root 能够完全存取該目錄, 包括讀、寫、殺……等

2. client 端的jack (uid,gid=1818) 我能够做:

rm -rf server_jack/*

cp something server_jack/

mkdir server_jack/a

相关文档