Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52209
  • 博文数量: 17
  • 博客积分: 1471
  • 博客等级: 上尉
  • 技术积分: 155
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-27 11:44
文章分类

全部博文(17)

文章存档

2012年(1)

2011年(1)

2008年(15)

我的朋友

分类:

2008-06-10 14:14:15

一  挂载基础知识
 在Solaris OE中,可以使用挂载程序将每个独立的文件系统挂载到他们的目录体系中的挂载点。这样就可以使用文件系统被系统和用户访问。
可以使用卸载程序把文件系统从目录体系中的挂载点中拆离出来。这时文件系统对系统或用户不可访问。
在使用newfs命令创建文件系统后,必须将它与Solaris OE目录体系中的一个挂载点关联。挂载点是一个目录,它是到文件系统的连接。文件系统通常以他们的挂载点的名字被访问,如/(root)文件系统,或者/usr文件系统。文件系统本身不包含自己的挂载点。
列出当前挂载的文件系统
使用mount命令与df命令判定当前有哪些文件系统被挂载。
df命令显示由挂载或者未挂载的文件系统占用的硬盘空间,并,根据选项显示本地挂载的文件系统与虚拟文件系统信息。
mount命令,位于/usr/bin目录中,在/etc/mnttab文件中维护一个当前挂载的文件系统列表。当mount不用任何参数运行时,它列出所有/etc/mnttab目录中挂载的文件系统。如果只是使用了部分参数列表,命令将在/etc/vfstab文件中搜索内容补足遗漏的参数。注意:系统管理员使用的是/usr/sbin/mount命令,而系统启动脚本使用的是/sbin/mount命令。
自动挂载文件系统
Solaris OE提供了自动文件系统挂载的方法。
Solaris OE在安装时根据用户选择,提供了一个默认的/etc/vfstab文件。不过可以根据需要编辑/etc/vfstab。
注意:自动挂载进程automounter可以根据需要挂载网络文件系统。
虚拟文件系统表:/etc/vfstab
/etc/vfstab文件列出所有在系统启动时自动遁形的文件系统。除了/etc/mnttab文件系统与/var/run文件系统
该文件的格式每行包括七个字段。默认以制表符(tab键)分隔,但任何空格也可用于分隔。破折号(-)使用当该字段的值不适用时的占位符。注释行以井号(#)号开始。
添加条目时需要提供如下信息:
device to mount 要挂载的设备,例如,本地ufs文件系统/dev/dsk/c#t#d#s#,或伪文件系统/proc。
device to fsck 适用于fsck程序检测的原始或字符设备。伪文件系统此字段值为“-”
mount point Solaris OE目录体系中作为文件系统挂载点的目录名
FS type 要挂载的文件系统的类型
fsck pass 指示系统启动时此文件系统是否由fsck检测。0或非数字值指示no,不检测。1指示fsck在该文件系统上启动并运行结束(检测通过)。大于1的值指定该设备被添加到fsck工具运行的设备列表中。fsck可以同时在8个设备上并行运行。mountall命令忽略此字段。
mount at boot 值为yes时,mountall将在系统启动时挂载此文件系统。值为no则文件系统在启动时不被挂载。
注意:对于/(root),/usr及/var(如果它是独立的文件系统),mount at boot字段值指定为no,内核在mountall命令运行之前,会作为启动过程的一部分挂载这些文件系统。系统启动脚本/etc/rcS.d/S30rootusr.sh明确指定mount命令挂载/ (root)与/usr文件系统,而/var文件系统的挂载由脚本/etc/rcS.d/S70buildmnttab指定。
mount options 以逗号分隔的选项列表,将被传递给mount命令。破折号“-”指示使用默认挂载选项。
注意:因为默认是使用制表符tab分隔/etc/vfstab文件中的字段,字符经常不能对齐他们的列表头,这可能在终端窗口中查看该文件时造成不便。
# more /etc/vfstab
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
#
fd - /dev/fd fd - no -
/proc - /proc proc - no -
/dev/dsk/c0t0d0s1 - - swap - no -
/dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no -
/dev/dsk/c0t0d0s7 /dev/rdsk/c0t0d0s7 /export/home ufs 2 yes -
swap - /tmp tmpfs - yes -
/etc/mnttab文件
/etc/mnttab文件实际上是一个mntfs文件系统,它提供直接来自于内核、关于本地主机挂载的文件系统的只读信息。
每次文件系统被挂载时,mount命令都添加到此文件的一个条目。当文件系统被卸载时,其条目也从/etc/mnttab文件中移除。
Mount point 文件系统在/文件系统上的挂载点或目录名
Device Name 挂载点上挂载的设备名。块设备是文件系统的物理位置。
Mount Options 文件系统上生效的挂载选项列表
dev=number 挂载的文件系统的主从设备号
Date and Time Mounted 文件系统被挂载到目录体系中的日期与时间
Solaris OE中,挂载的/var/run文件系统是tmpfs文件系统。它是在Solaris OE重启过后不再需要的临时操作系统文件的仓库。它是被作为伪文件系统挂载而非基于硬盘的文件系统。
/var/run目录不需要进行管理,出于安全考虑,它属于root用户。
/tmp目录也是Solaris OE中挂载的tmpfs文件系统。它是用户与应用程序的临时文件仓库,这些文件也是系统重启后就失效的文件。它是伪文件系统而非基于硬盘的文件系统。
下面两个例子列出当前挂载的文件系统:
# more /etc/mnttab
(下略)
# mount
(下略)
二  挂载文件系统操作
可以以root用户登入系统后运行mount命令手动挂载文件系统,也可以让系统在启动时查询/etc/vfstab文件自动挂载文件系统。
手动挂载本地文件系统
mount命令不仅可以列出当前挂载上的文件系统,也为root用户提供了挂载文件系统的方法。
mount命令的默认行为
要手动挂载本地文件系统,需要知道文件系统所在的设备名与挂载点目录名。执行如下命令:
# mount /dev/dsk/c0t0d0s7 /export/home
本例中,默认的挂载文件系统的动作选项是:read/write, setuid, intr, nologging, 及largefiles, xattr, 与onerror。
下面表解释mount命令的默认选项:
read/write 指示是否在文件系统上允许读写操作
setuid 允许在文件系统上执行setuid程序
intr/nointr 允许或禁止以键盘中断杀死在锁定的文件系统上等待操作
nologging 指示在ufs文件系统上禁用日志方式
largefiles 允许创建大于2G的文件。以此方式挂载的文件系统可包含大于2G的文件
xattr 支持在标准UNIX属性以外的扩展属性
注意:由于文件系统负载,可创建的最大的文件约为866G。
onerror=action 指定ufs文件系统管理程序当文件系统出现内部不致性错误的时候应当采取的动作。可以指定的值如下:
panic-导致系统强制关闭,这是默认值
lock-使文件系统被锁定
umount-强制卸载文件系统
/etc/vfstab文件还有另外一个重要的功能。因为/etc/vfstab文件包含了文件系统挂载点与实际的设备名的映射,root用户可以通过只指点挂载点就可以手工挂载文件系统。
使用mount命令选项
在命令行上使用mount选项时,选项是以标志-o开始的。使用多个选项时,各选项以逗号分隔,构成一个列表跟在-o标志之后。
注意:Mount选项的详细信息在mount_ufs命令的帮助页中有详细说明。
一些用于挂载本地文件系统的选项包括:ro, nosetuid,noatime, nolargefiles, 与logging。
·ro-以只读方式挂载文件系统。
下面是使用ro选项的例子:
# mount -o ro /dev/dsk/c0t0d0s6 /usr
·nosuid-禁止在文件系统上执行setuid程序。但不限制创建setuid程序。
下面是使用多个选项挂载文件系统的例子:
#mount -o ro,nosuid /dev/dsk/c0t0d0s7 /export/home
·noatime-抑止对inode的最后访问时间修改,这减少在访问时间不重要时文件系统上的硬盘活动。指定此选项一般可缩短文件访问性,提高整体性能,如:
# mount -o noatime /dev/dsk/c0t0d0s7 /export/home
·nolargefiles-防止包含大文件的文件系统被挂载,如:
# mount -o nolargefiles /dev/dsk/c0t0d0s7 /export/home
当挂载的文件系统包含大文件或曾包含大文件时,nolargefile选项失效。
如果当前的文件系统包含大文件,且root用户需要使用此选项挂载此文件系统,那必须搜索文件系统中的大文件并将其删除或移除,然后再手工使用fsck命令更新超级块信息。
mount在文件系统曾经包含大文件的情况下使用此选项也会失败。必须执行fsck命令清除旧的关于大文件的信息,才能让文件系统挂载上。
·logging-支持文件系统的日志运行模式,如:
# mount -o logging /dev/dsk/c0t0d0s7 /export/home
UFS日志进程记录文件系统的存储事务或更新,将完整的文件或目录操作写入日志中,然后再应用日志到文件系统上。在事务被存储以后,完整的事务可以在以后应用到文件系统上。
UFS日志是从文件系统的空闲块中分配的,其大小是每1G使用1M,最大可达64MB。
当UFS日志达其最大时,它就开始将事务记录到文件系统中。文件系统被卸载时,整个UFS日志都被清空,所有事务都被写入文件系统。
UFS日志有两个好处。一,它文件系统的不一致性,也就不再需要长时间运行fsck扫描。二,可以跳过fsck扫描,这就减少了系统在被以非正常的关闭方法关闭时,重启的时间,
手工挂载所有文件系统
系统启动过程中,/usr/sbin/mountall命令读取/etc/vfstab文件,挂载所有mount at boot字段值为yes的文件系统。
root用户可以使用mountall命令手工挂载每个/etc/vfstab文件中mount at boot字段为yes的文件系统,如
#mountall
若只需挂载/etc/vfstab文件中列出的本地文件系统,执行:
#mountall -l
系统启动时,fsck工具检测/etc/vfstab中每个字段device to fsck非空,且fsck pass字段值大于0的本地文件系统。fsck工具判定文件系统是否可用,可被安全挂载。
若fsck工具判定文件系统不可用(如,崩溃等),fsck工具在系统尝试挂载前会修复文件系统。系统会挂载所有fsck pass字段为“-”或“0"的本地文件系统,而不检测该文件系。
新文件系统
执行如下步骤,在系统中添加新的硬盘,在其上使用文件系统,并挂载该文件系统。
1、设备磁盘硬件,可能包括设定地址跳线与连接电缆。
2、执行重配置启动,或运行devfsadm工具,为新的硬盘添加设备支持程序。
3、使用format工具将硬盘分为一个或多个分片。
4、使用newfs命令在分片上创建新的文件系统。
5、使用mkdir命令为文件系统在根目录下创建挂载点。
# mkdir /database
6、使用mount命令手动挂载新文件系统
# mount /dev/dsk/c1t4d0s0 /database
7、使用mount命令查看文件系统是否被挂载上
#mount
8、编辑/etc/vfstab文件为新文件系统添加一行条目:
# vi /etc/vfstab
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
/dev/dsk/c1t4d0s0 /dev/rdsk/c1t4d0s0 /database ufs 1 yes logging
(这里只取了新添加的一行的记录)
文件系统将在系统启动时被自动挂载。
挂载不同类型的文件系统
不同的文件系统类型有其独特的性质,这影响到mount命令的作用。
默认情况下,mount命令假定它是运行在ufs类型的文件系统上。然而,当你挂载不同类型的文件系统时,你必须在命令行上指定其类型。
可以mount的使用-F选项指定被挂载的文件系统的类型。文件系统的类型必须可从/etc/vfstab,/etc/default/fs,或/etc/dfs/fstypes文件中判定。
判定文件系统类型
因为mount命令需要使用文件系统类型才能正常挂载文件系统,文件系统类型必须通过搜索以下文件来指定或判定:
·/etc/vfstab文件的FS type字段
·/etc/default/fs文件用于本地文件类型
·/etc/dfs/fstypes文件用于远程文件系统
如果在命令行上未使用mount -F FStype选项明确指定文件系统类型,mount命令查看/etc/vfstab文件断定文件系统的类型。mount命令通过搜索文件系统的块设备名,原始设备名,或挂载点目录名来进行断定。
如果mount命令不能由搜索/etc/vfstab文件断定文件系统的类型,mount命令使用在/etc/default/fs文件或/etc/dfs/
fstypes文件中指定的默认文件系统类型,搜索哪一个文件,取决于挂载的文件系统是本地的还是远程的。
默认的本地文件系统类型在/etc/default/fs中由行条目LOCAL=fstype指定。
LOCAL=ufs
/etc/dfs/fstypes文件的第一行判定默认的远程文件系统类型。
nfs NFS Utilities
autofs AUTOFS Utilities
cachefs CACHEFS Utilities
使用fstyp命令
也可以使用fstyp命令,以硬盘分片的原始设备名为参数判定文件系统的类型:
# fstyp /dev/rdsk/c0t0d0s7
ufs
指定hsfs文件系统类型
若在卷管理服务停止时,要挂载CDROM上的文件系统,以root身份运行如下命令:
# mount -F hsfs -o ro /dev/dsk/c0t6d0s0 /cdrom
本例中,文件系统类型是hsfs,文件系统所在的硬盘分片是/dev/dsk/c0t6d0s0,挂载点/cdrom是Solaris OE中安装预设定的目录。
指定pcfs文件系统类型
在卷管理服务上停止时挂载在软盘上的文件系统,如root身份执行如下命令:
#mkdir /pcfs
#mount -F pcfs /dev/diskette /pcfs
本例中,文件系统类型是pcfs。文件系统存在于/dev/diskette设备上,挂载点是/pcfs。
第三节  执行卸载
在需要使用fsck命令检测修复文件系统,或需要对文件系统进行完全备份时,需要卸载文件系统。
卸载文件系统
一些文件系统管理任务不能在被挂载的文件系统上执行。
作为文件系统维护的准备,使用umount命令卸载文件系统。
使用umount命令卸载文件系统,即是把它从挂载点上拆除,并从/etc/mnttab文件中删除对应的条目。
注意:在卸载一个正被用户使用的文件系统前,通知用户。
使用挂载点目录为参数手动卸载文件系统:
#umount /export/home
使用逻辑设备名为参数手动卸载文件系统:
#umount /dev/dsk/c0t0d0s7
卸载所有文件系统
系统关闭过程中或从命令行上运行umountall命令时,/usr/sbin/umountall命令读取/etc/mnnttab文件。 umountall命令卸载vfstab文件中指定的所有文件系统,除了/,/usr,/proc,/dev/fd,/var,/var/run和 /tmp。
以root身份运行umountall命令,手动卸载/etc/mnttab文件中列出的所有文件系统,例如:
#umountall
要卸载/etc/mnttab文件中列出的所有本地文件系统,执行如下命令:
#umountall -l
运行mount命令,查看输出,确认所有的文件系统都被卸载。
卸载工作中的文件系统
工作中的文件系统不可卸载。umount与umountall均显示如下出错消息:
umount:file_system_name busy
满足如下条件之一的文件系统被认为处于使用中(即处于busy状态):
·有程序正在访问文件系统中的文件或目录
·用户正在访问文件系统中的目录或文件
·进程在文件系统中打开了一个文件
·文件被共享
有两种方法可以卸载工作中的文件系统
·fuser命令-列出所有正在访问文件系统的进程,并在需要时杀死它们。
·umount -f命令-强行卸载文件系统
注意:fuser命令显示所有下在使用指定的文件系统的进程ID。每个进程ID都跟有一个字符代码,这些字符代码在man手册中说明。(这里具体是什么,以前没有注意,手边也没有实验环境)
使用fuser命令
使用如下步骤停止当前访问文件系统的所有进程:
1、以root身份,列出所有正在访问文件系统的进程。使用如下命令找出需要中止的进程:
#fuser -cu mount_point
此命令显示当前使用文件系统的进程、文件系统名与用户登录名。
2、杀死所有访问文件系统的进程
#fuser -ck mount_point
系统会对所有正在使用文件系统的进程发送SIGKILL消息。
3、确认没有进程在访问文件系统
#fuser-c mount-point
4、卸载文件系统
#umount mount_point
umount -f命令
root用户可以使用umount命令的-f选项卸载文件系统,即便文件系统忙。下面是命令的格式:
#umount -f mount_point
文件系统会被强行卸载,即便其中有被打开的文件。强行卸载会导致数据丢失,及僵死的进程,这些进程会在系统上继续运行。
但此命令在卸载共享的文件系统时有用,如果远程服务器没有呼应时。
启动失败时修复重要的文件
下面的过程描述如何从Solaris OE软件CDROM上启动,编辑配置错误的/etc/vfstab文件。
1、插入Solaris 9 OE两张安装CD中的第一张到CDROM驱动器中。
2、从CDROM上执行一个单用户启动:
ok boot cdrom -s
Boot device: File and args -s
SunOS Release 5.9 Generic 64 bit
(下略)
注意:从该软件CDROM上启动执行单用户启动操作,会在内存中创建一个/var文件系统的内存拷贝,这可以让root用户执行管理任务。
3、在/分区上上运行fsck命令,检测与修复任何可能的文件系统问题。
# fsck /dev/rdsk/c0t0d0s0
4、如果fsck命令成功运行,将/文件系统挂载到/a目录下,就可以访问硬盘上的文件系统。
# mount /dev/dsk/c0t0d0s0 /a
5、设定并输出TERM变量,这使vi编辑器可以正常工作。
# TERM=sun
# export TERM
6、编辑/etc/vfstab文件,更正所有问题,保存退出。
# vi /a/etc/vfstab
(编辑文件操作)
:wq!
7、卸载文件系统
#cd /
#umount /a
8、重启系统
#init 6
第四节  访问挂载上的软盘与CDROM
Solaris OE提供给用户一个标准的接口,称为卷管理器(Volume Management),使用户可以访问位于软盘与CDROM上的文件系统。
注意:Solaris 9 OE包含对其它移动介质如DVD,Jaz驱动器,Zip驱动器,及PCMCIA内存卡的支持。(PCMCIA Personal Conputer Memory Card International Association)。更多信息请参看 Solaris 9 文档CD上的资源。
卷管理器有两个优点:
·自动为root和非root用户挂载可移动存储介质
·可以为网络上的其它系统提供本地系统上的可移动存储介质的访问
卷管理服务由/usr/sbin/vold守护进程控制。服务默认总是运行,这样可以为普通用户自动管理软盘与CDROM。
卷管理器会自动检测CDROM。但它不会检测插入驱动器的软盘,除非运行volcheck命令。此命令会让vold守护进程去检测插入软驱的软盘。卷管理器可以挂载ufs,pcfs,hsfs与udfs文件系统。
使用卷管理器
每个设备都很方便地被挂载并挂载到一个很好记的位置,这样可以让用户方便地使用软盘与CDROM。
如果vold守护进程检测到挂载的设备包含文件系统,该设备将被挂载到指定的目录位置。
表4-1列出了包含文件系统的设备被挂载的目录位置:
表4-1 目录位置
介质设备 访问文件系统位置
第一个软驱 /floppy/floppy0
第一个CDROM或DVD驱动器 /cdrom/cdrom0
第一个Jaz驱动器 /rmdisk/jaz0
第一个Zip驱动器 /rmdrive/zip0
第一张PCMCIA卡 /pcmem0
如果vold守护进程检测到挂载的设备不包含文件系统,设备可以通过路径访问。
表4-2列出了不包含文件系统被挂载的设备的路径
表4-2 访问设备路径
介质设备 访问Raw设备路径
第一个软盘驱动器 /vol/dev/aliases/floppy0
第一个CDROM或DVD驱动器 /vol/dev/aliases/cdrom0
第一个Jaz驱动器 /vol/dev/aliases/jaz0
第一个Zip驱动器 /vol/dev/aliases/zip0
第一张PCMCIA卡 /vol/dev/aliases/pcmem0
卷管理器运行时,普通用户可以很方便的访问软盘或CDROM,使用如下步骤:
1、插入介质
2、如果是使用软盘,运行volcheck命令
3、使用cd命令更改目录到挂载的卷上。(参看前面的设备挂载目录位置表4-1)
4、使用介质上的文件
5、挂载介质
6、弹出介质
表4-3显示卷管理器的配置文件
表4-3 卷管理器配置文件
文件 描述
/etc/vold.conf 卷管理器配置文件,此文件定义条目,如当设备被插入或者弹出时的动作,或卷管理器管理的设备,及不能安全弹出的文件系统
/etc/rmmount.conf rmmount命令配置文件。rmmount命令是可移动介质挂载程序,当有CDROM或者软盘被插入时由卷管理器执行。

第五节  限制对挂载的软盘与CDROM的访问
如要限制普通用户访问系统中的软盘或CDROM,root可以停止卷管理服务。
停止卷管理服务
暂时停止系统中的卷管理器,以root身份执行:
# /etc/init.d/volmgt stop
要重新启动卷管理服务,以root身份运行:
# /etc/init.d/volmgt start
卷管理器问题故障排除
如果CDROM未能从驱动器中弹出,可以以root身份尝试停止卷管理器,如果未成功,可以杀死vold守护进程
# /etc/init.d/volmgt stop
如未能停止,可以使用
# pkill -9 vold
按系统上光驱的弹出键弹出CDROM。取走CDROM后,让CDROM托盘保持弹出状态。然后重新启动卷管理服务:
# /etc/init.d/volmgt start
过几秒后,按CDROM托盘退回驱动器。
第六节  不使用卷管理器访问软盘或CDROM
当卷管理器未运行时,只有root可以挂载并访问软盘或CDROM,操作如下:
1、插入介质设备
2、成为root用户,(su - root)
3、如有必要,创建挂载点
4、判定文件系统类型
5、使用下节列出的挂载选项挂载设备
6、使用介质设备上的文件
7、卸载介质设备
8、弹出介质设备
9、退出root会话
使用mount命令
如当卷管理服务停止时要挂载CDROM上的文件系统,以root身份执行:
# mount -F hsfs -o ro /dev/dsk/c0t6d0s0 /cdrom
本例中,文件类型是hsfs,文件系统位于硬盘分片/dev/dsk/c0t0d0s0,且挂载点在Solaris OE中是已有的目录。
要在卷管理服务停止时,要挂载软盘上的文件系统,以root身份运行
# mkdir /pcfs
# mount -F pcfs /dev/diskette /pcfs
本例中,文件类型是pcfs,文件系统位于/dev/diskette设备上,挂载点是/pcfs。
阅读(3726) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-08-05 12:59:12

SAP99,支持下,也欢迎访问我的博客, SAP资料多多 http://sap99.cublog.cn http://www.sap99.com SAP实施顾问宝典 :http://www.sap99.com/Soft/VIP/200803/182.html