解决solaris /home无法创建目录问题

来源:互联网 发布:提问的软件 编辑:程序博客网 时间:2024/04/30 12:26
 

Q:为什么我不能在/home目录下创建子目录?
A:
如果/etc/rc2.d/S74autofs脚本中automount(1M)守护进程已经mount了/home,就是
这种现象,而这还是缺省安装后的情形。可以

# /etc/init.d/autofs stop
# umount /home

然后你就可以用root身份在/home下创建子目录,增加文件了。为了永久取消autofs
特性,可以将/etc/rc2.d/S74autofs脚本改名,并注释掉/etc/auto_home、
/etc/auto_master两个文件中的入口点。

摘要:

  automount 和 autofs是易于使用的文件系统管理工具,功能强大。它允许同一台机器上的所有用户在他们需要的时候去安装不同的文件系统。

  简介:

  对于不同的物理设备(硬盘、软盘、cdrom等等)和/或操作系统,数据的写入过程也是不同的:这就是我们所称的文件系统。/etc/fstab文件决定了启动时安装的硬盘安装点。每个安装点对应一块区域或一个文件系统(例如,一个硬盘分区)。然后,如果你想存取其它的分区,只有root用户能使用mount命令(除非特定的选项“user”包含在/etc/fstab中)。作为超级用户root,你要指明安装位置,被安装的分区,有时还包括文件系统和其他一些选项。幸运的是,普通用户没有这种权限,不能存取所有的数据。

  Mount 和 fstab 的man pages提供了有关这些命令和概念的更详细的描述。

  Automount和autofs允许系统管理员配置机器能够访问的所有的文件系统,他同样要用到mount。用户可以用一种完全透明的方式来访问这些系统,完全不必关心内核是如何回答这些请求的。

  描述:

  这一对命令(automount,autofs)可以看作是网络系统中的客户机/服务器模式。服务器正在运行,等待发出的请求。请求到来时,服务器将自动复制,这边用来回应系统的请求,那边继续等待请求。

  现在,autofs扮演了等待服务器的角色,automount则扮演了另一个角色。请求将背保存在配置文件中。

  autofs

  通常,autofs在系统启动时被运行,关机或重新启动时被关闭。然而,系统管理员能够手工启动或停止它的运行。

  1.Start:含义很明显,启动进程。启动时,autofs将在配置文件/etc/auto.master中查询“maps”(maps指明了安装位置)。然后,他为每个安装位置启动automount。接着,autofs查询NIS maps(关于这一点,这篇文章不作过多涉及)。

  2.Stop: 停止autofs和所有automounts的运行。

  3.Status:显示当前的配置和所有正在运行的automount。

  4.Reload:重新读取auto.master map,杀掉当前的automount,然后重新运行。注意,maps中的变化在重新启动后将被体现出来。另一方面,auto.master的变化也要求autofs重新启动。

  总之,autofs只是一个脚本,它在运行于每一个安装点的automount之前要访问auto.master。

  automount

  Automount运行时,要用到初始安装目录(启动automount时被autofs找到的),还有描述初始安装目录特性的新的map文件。与automount相关的map文件包含自动安装文件系统所需的所有信息。当有人试图访问开始于安装点的目录树时,自动安装过程就会自动完成。

  然后,当经过非活动期之后(缺省是5分钟),文件系统就会被自动卸载。

  Configuration

  配置将在2个文件的帮助下完成。Auto.master文件,包含安装点,以及为特定安装点提供安装选项的安装点文件。

/etc/auto.master file

  这里,我们描述一下Sun格式的maps文件。另一种格式(hesiod)不适合下面讲到的语法。

  /etc/auto.master是autofs的主要文件。每一行描述一个安装点,指向包含文件系统描述的文件,该文件系统将被安装到这个安装点目录。

  每一行的语法如下:

mount-point map-for-the-associated-automount[ -mount-options-separated-by-comma ]Example :/home /etc/auto.home/misc /etc/auto.misc --timeout 60/mnt yp:mnt.map -intr,nosuid,nodev

  这里设置了3个安装点,/home,/misc和/mnt。为了访问/misc目录下的文件,automount将会读取/etc/auto.misc文件,以便找到安装选项和与文件系统相关的关键字(the key)。

  最后2行包含可选项。他们在mount的man page中有描述,而且是标准的。就象例子中最后一行所显示的那样,autofs和automount与黄页maps(NIS或其他)是全兼容的。

The key represents an identifier for the file system under the mount point .The place is the true physical location. 

  这个文件的语法同auto.master基本相同(两者都是map文件嘛):

key [ -mount-options-separated-by-comma ] place

  我们回头看一下使用/etc/auto.misc文件的那个例子:

kernel -ro,soft,intr ftp.kernel.org:/pub/linuxcdrom -fstype=iso9660,ro :/dev/cdromfloppy -fstype=auto :/dev/fd0windoz -fstype=vfat :/dev/hda1 

  文件的绝对路径如下:

/mount-point/key/path/file

  现在,为了读取我的windows文件config.sys,我只要运行一下“cat /misc/windoz/config.sys”,就能存取到/dev/hda1设备。

  我们注意到这个文件的第一行指向了一个NFS的出口目录(这也正显示了automount和autofs的灵活应用)。

  关于细节:

  首先,我们必须注意到:当我们想找到maps文件中的一个文件时,完整的路径是不需要的。为了避免键入全路径名,我们经常使用<TAB>键自动完成。如果map还没有被加载,key字段就不会起作用。看一下前一个例子,如果我想访问同一个config.sys文件,我会这样做:
%1 > cat /misc/ <TAB >

  我只会得到一个令人失望的“beep”声,因为这个命令无法完成任何功能。(为了能听到令人愉快的“beep”声,可以有几种选择—为了建立完整的命令,你必须键入<CTRL+D>,你将会看到所有可用的选择,当然如果他们存在的话)。

  事实上,这种做法很普遍。显然,当你试图使用完整的路径时,这个目录的内容将被检查,然后你就可以看一下什么才是你所需要的符号。在那种情况下,/misc目录是空的,因为系统要做的是只有在存取某个文件系统时才安装它。另一方面, 只有当安装点被自动取消后,你才能使用全路径名。(例如,当没有对一个文件系统的资源存取时,而且系统已超时。)

  让我们看一下存取map前后的安装结果,回顾一下/etc/auto.master的作用。

/dev/hda6 on / type ext2 (rw)none on /proc type proc (rw)/dev/hda9 on /home type ext2 (rw)none on /dev/pts type devpts (rw,gid=5,mode=620)automount(pid362) on /home type autofs (rw,fd=5,pgrp=362,minproto=2,maxproto=3)automount(pid364) on /misc type autofs (rw,fd=5,pgrp=364,minproto=2,maxproto=3)automount(pid366) on /mnt type autofs (rw,fd=5,pgrp=366,minproto=2,maxproto=3)

  我们注意到每一个安装点都对应一个daemon进程(一个系统进程)。进一步说,每一个相关类型都是“autofs”的。在访问了我的/misc/windoz/config.sys文件后,下面是安装后的结果:

/dev/hda6 on / type ext2 (rw)none on /proc type proc (rw)/dev/hda9 on /home type ext2 (rw)none on /dev/pts type devpts (rw,gid=5,mode=620)automount(pid362) on /home type autofs (rw,fd=5,pgrp=362,minproto=2,maxproto=3)automount(pid364) on /misc type autofs (rw,fd=5,pgrp=364,minproto=2,maxproto=3)automount(pid366) on /mnt type autofs (rw,fd=5,pgrp=366,minproto=2,maxproto=3)/dev/hda1 on /misc/windoz type vfat (rw)

  最后一行正是我们所期望的结果。:) 如果60秒钟内没有访问安装点目录,在下一次安装时这一行就会消失。

  总结

  在一台运行Linux或者Windows的个人计算机上,automount和autofs几乎没用,除非不想频繁的使用root注册(事实上,情况远没有这么怀)。我们可以为FAT和FAT32的分区定义一个map文件,然后就可以访问它。

  在网络环境中,将有更大的灵活性,与黄页(yellow pages)和NFS相接合,不管我们的物理位置在哪,我们都能轻松的访问任何地方。

  当一台访问失败的服务器只影响与它相连的客户机时,automount就变得非常有用。通常这会减少大公司(拥有10个或者更多的nfs服务器)的当机时间。

原创粉丝点击