Linux操作系统下挂载硬盘分区的几种方法

来源:赛迪网 作者:korn
   

方法一、使用Autofs

1、Autofs的特点:Autofs与Mount/Umount的不同之处在于,它是一种看守程序(deamon)。如果它检测到用户正试图访问一个尚未挂接的文件系统,它就会自动检测该文件系 统,如果该文件系统存在,那么Autofs会自动将其挂接。另一方面,如果它检测到某个已挂接的文件系统在一段时间内没有被使用,那么Autofs会自动 将其卸载。因此一旦运行了Autofs后,用户就不在需要手动完成文件系统的挂接和卸载。

 

2、Autofs的安装: 只需执行以下一条命令:rpm -ivh autofs-3.1.3-10.i386.rpm。安装完成后,以后每次启动Linux,Autofs都会自动运行。

 

3、Autofs的配置:首先, Autofs需要从/etc/auto.master这个文件中读取配置信息。该文件中 可以同时指定多个挂接点,每个挂接点单独用一行来定义,每一行可包括3个部分,分别用于指定挂接点位置,挂接时需使用的配置文件(即:所谓的map file)及所挂接文件系统在空闲多长时间后自动被卸载。例如,auto.master文件中包括如下一行: /auto /etc/auto.misc --timeout 60。 其中第一部分指定一个安装点为/auto,第二部分指定/auto的map文件为/etc/auto.misc,第三部分指定文件系统在其空闲60秒后自动 被卸载。其次,从/etc/auto.misc这个文件读取挂接时需要使用的配置信息。例如,auto.misc文件包括如下内容

 

cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

Windows_C -fstype=auto,iocharset=cp936 :/dev/hda1

Windows_D -fstype=auto,iocharset=cp936 :/dev/hda5

Windows_E -fstype=auto,iocharset=cp936 :/dev/hda6

 

其中第一行指定将设备/dev/cdrom挂接在/auto的cd子目录中,第二行指定 将硬盘的Windows分区挂接在/auto的Windows_*子目录中。每一行的第二个值-fstype是一个可选项,用来表明所挂接的文件系统的类型和挂接选项,在 mount命令能使用挂接选项同样适用于-fstype。 修改了配置文件后,可通过执行命令“/etc/init.d/autofs restart”,使新的配置生效。 现在输入命令“ls /auto/cd”,Autofs会自动检测光驱中是否有光盘,如果有,它会自动将其挂接在/auto/cd中,这样ls就会列出其中的内容。如果我们在 60秒内没有再次访问/auto/cd时,Autofs会自动将其卸载掉。

 

方法二、修改/etc/fstab

 

1、fstab文件的作用

文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过"mount  /directoryname"命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsck、 mount、umount的等命令都利用该程序。

 

2、下面是/etc/fstab文件的一个示例行:

fs_spec fs_file fs_type fs_options fs_dump fs_pass 

/dev/hda1   /   ext2     defaults    1    1 

 

fs_spec  - 该字段定义希望加载的文件系统所在的设备或远程文件系统,对于一般的本地块设备情况来说:IDE设备一般描述为 /dev/hdaXN,X是IDE 设备通道(a, b, or c),N代表分区号;SCSI设备一描述为/dev/sdaXN。对于NFS情况,格式一般为:,例如: `knuth.aeb.nl:/'。对于procfs,使用`proc'来定义。

 

fs_file - 该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为none;对于加载目录名包含空格的情况,用40来表示空格。

 

fs_type - 定义了该设备上的文件系统,一般常见的文件类型为ext2 (Linux设备的常用文件类型)、vfat(Windows系统的fat32格式)、NTFS、iso9600等。

 

fs_options - 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对于大多数系统使用"defaults"就可以满足需要。其他常见的选项包括:

 

选项              含义

ro      以只读模式加载该文件系统

sync    不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低了计算机速度

user    允许普通用户加载该文件系统

quota   强制在该文件系统上进行磁盘定额限制

noauto  不再使用mount -a命令(例如系统启动时)加载该文件系统

 

fs_dump - 该选项被"dump"命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为0

 

fs_pass - 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统"/"对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0

 

3、修改/etc/fstab实现自动挂载Windows分区,并显示中文目录

LABEL=/ / ext3 defaults 1 1

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

none /proc proc defaults 0 0

none /dev/shm tmpfs defaults 0 0

LABEL=/usr /usr ext3 defaults 1 2

/dev/hda9 swap swap defaults 0 0

#添加如下几行

/dev/hda1 /mnt/win_c vfat codepage=936,iocharset=cp936 0 0

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

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

 

4、对部分分区格式的支持需要编译相关的支持到内核了来实现,如NTFS。

 

方法三、编写shell脚本,开机自动运行mount命令

 

首先,以root身份登陆,在/mnt下,你要有win_c win_d win_e这几个目录,如果没有可以通过在虚拟终端分别输入mkdir /mnt/win_c,mkdir /mnt/win_d,mkdir /mnt/win_e来建立。接着打开虚拟终端,输入 vi mymount,然后按insert输入如下代码:

 

#!/bin/bash

case $1 in

m)

mount -o iocharset=cp936 -t vfat /dev/hda1 /mnt/win_c

mount -o iocharset=cp936 -t vfat /dev/hda5 /mnt/win_d

mount -o iocharset=cp936 -t vfat /dev/hdc6 /mnt/win_e

;;

u)

umount -o iocharset=cp936 -t vfat /dev/hda1 /mnt/win_c

umount -o iocharset=cp936 -t vfat /dev/hda5 /mnt/win_d

umount -o iocharset=cp936 -t vfat /dev/hda6 /mnt/win_e

;;

esac

 

然后按Esc输入:wq回车就可以了.第一行#!/bin/bash指定以bash shell执行此文件.case $1 in 为取的命令行参数.若为m则开始挂载,若为u则卸载.其中-o iocharset=cp936能够显示中文名.-t vfat 为指定文件系统类型为WINDOWS下的VFAT文件系统.win_c win_d win_e为目录/mnt下的子目录.

 

到这里,该程序已经写好了.但是它还没有执行权利.我们只要输入下面这个命令就可以了.

 

chmod u+x mymount

 

到这步你只要输入./mymount m,就可以挂载windows分区了.如果在/etc/rc.d/rc.local 文件中添加这一行:

 

sh ./root/mymount m

 

重启后linux会自动挂载windows分区。

(责任编辑:A6)


时间:2007-12-03 13:06 来源:赛迪网 作者:korn 原文链接

好文,顶一下
(1)
100%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量