当前位置:  首页  >  服务器技术  >  Linux/unix  >  Linux教程

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

文章标题:Linux操作系统下挂载硬盘分区的几种方法。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类
    方法一、使用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分区。
吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | 凯发国际娱乐 | 凯发国际娱乐下载 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有