filesystem - 文件系统组织
/
文件系统是由后代文件系统和目录组成的分层结构,用于组织 Oracle Solaris OS 中与系统相关的组件和二进制文件以及与系统不相关的组件和起始目录。缺省情况下,根系统文件安装在 ZFS 根池中,具体而言,该文件系统是一个 ZFS 文件系统,其中包括由与系统相关的组件组成的各个目录,例如,etc、usr 和 var,要使系统正常运行,这些目录必须可用。安装系统后,将挂载 Solaris 文件系统的根目录,这意味着可以访问文件和目录。
Oracle Solaris OS 中根文件系统的所有子目录(除 /var 之外)必须包含在与根文件系统相同的文件系统中。此外,所有打包软件都必须驻留在根池中,但交换设备和转储设备除外。安装系统后,在根池中会自动创建缺省交换设备和转储设备,并将其作为 ZFS 卷。
以下文件系统内容说明会使用“平台”、“与平台相关”、“与平台不相关”以及“特定于平台”这几种术语。“平台”是指由 uname -i 命令返回的系统指令集体系结构或处理器类型。“与平台相关”是指安装在所有平台上而内容会随平台不同而不同的文件。与此类似,与平台不相关的文件也会安装在所有平台上。然而,与平台不相关的文件的内容在所有平台上都相同。例如,经过编译的可执行程序就是与平台相关的文件。标准配置文件则是与平台不相关的文件的一个示例,例如 /etc/hosts。而特定于平台的文件仅安装在所支持的一部分平台上,这一点与前两种类型的文件不同。大部分特定于平台的文件都集中在 /platform 和 /usr/platform 下。
根文件系统包含对系统操作至关重要的目录和文件,如内核、设备驱动程序和用于引导系统的程序。下面介绍了这些组件。根 (/) 目录还包含挂载点目录,可以在这些目录中将本地文件系统和远程文件系统附加到文件系统分层结构。
整个文件系统名称空间的根目录。该目录是在系统引导时由内核挂载的特殊文件系统。
该目录包含引导系统所需的文件和可执行程序。
一种符号链接,指向包含系统可执行文件和脚本的 /usr/bin 目录。
该目录包含特殊设备文件。通常,构建设备文件的目的是为了与系统的内核和硬件配置相匹配。
devfs 文件系统的挂载点目录,用于管理设备名称空间。
该目录包含与平台相关的管理和配置文件及数据库,这些文件和数据库不会在系统之间共享。该目录用于定义系统标识。经过批准的随附 Solaris 软件安装位置。
用户起始目录的目录或文件系统挂载点,用于存储用户文件。缺省情况下,/home 目录是自动挂载的文件系统。
由与平台相关的可装入内核模块组成的目录,这些模块在引导过程中是必需的。其中包括与平台不相关的核心内核的通用部分 /kernel/genunix 。请参见 kernel(8)。经过批准的随附 Solaris 软件和附加系统软件安装位置。
包含核心系统库的目录。以前,该目录包含系统启动时的重要库组件。
该目录用于访问自动挂载的可移除介质。
文件系统的缺省临时挂载点目录。此空目录用于临时挂载文件系统。
由自动挂载程序挂载的文件系统的临时挂载点目录。
非随附应用程序软件包的目录。
该目录包含需要驻留在根文件系统中的特定于平台的对象。其中包含一系列目录,每个受支持的平台对应一个目录。该系列目录的语义等同于 /(根)。
进程文件系统的挂载点目录。
root 用户的起始目录。
与 ZFS 引导相关的组件的挂载点目录。缺省情况下,根池在安装过程中会命名为 rpool。
指向 /usr/sbin 目录的符号链接。
合同 (CTFS) 和对象 (OBJFS) 文件系统的挂载点目录。
该目录可在多个引导环境之间共享,并驻留在包含引导环境的 zpool 下的单独数据集中。这是 zonepath 的缺省父项。
该目录包含引导操作期间删除的临时文件。
该目录包含与平台相关和与平台不相关的二进制程序和文件。/usr/share 子目录包含与平台不相关的文件。/usr 目录的其余部分包含与平台相关的文件。
该目录包含用户调用的且与平台相关的可执行文件。这些命令是用户预计会在常规 $PATH 中运行的命令。经过批准的随附 Oracle Solaris 软件安装位置。非随附系统软件或应用程序的类似位置为 /opt/packagename/bin 。
该目录扩充了 /lib 的内容,其中包含更多系统库以及程序在运行时所需的其他支持文件。
Directory that contains GNU versions of commands that are not used as the default Solaris implementation but which are provided for familiarity with other platforms.可执行文件位于 /usr/gnu/bin 中,如果希望使用 GNU 版本,可以在 $PATH 中将该路径置于 /usr/bin 之前。In addition, all the commands in this directory tree are accessible by default from /usr/bin through symlinks which are the command name prefixed by the 'g' character.例如:
/usr/bin/ggrep -> ../gnu/bin/grep
If the GNU compatibility facet (compat.gnu-links) is set to False by pkg(1), all of the g* symlinks will be removed from /usr/bin.If this has been done, the links can be restored by running pkg change-facet compat.gnu-links=True as a user with all privileges.
该目录包含 Java 文件和可执行程序。
包含引导过程中以及手动系统恢复过程中使用的重要可执行文件。以前,在挂载 /usr 文件系统之前,需要使用该目录来恢复系统。在此 Oracle Solaris 发行版中,/usr 是一个目录,而不是一个单独的文件系统,该目录会在挂载根文件系统后可用。
Directory that contains versions of /usr/bin commands that have been kept for compatibility with older releases of Solaris.可执行文件位于 /usr/sunos/bin 中,如果希望使用较旧的版本,可以在 $PATH 中将该路径置于 /usr/bin 之前。
该目录或文件系统包含各种文件,这些文件对于某个系统来说是唯一的,但其大小可以任意增大。例如,日志文件。经过批准的随附 Oracle Solaris 软件安装位置。
logadm 服务的状态信息,特别是上次轮转的时间戳。
该目录可在多个引导环境之间共享,并驻留在包含引导环境的 zpool 下的单独数据集中。软件包不应在此处提供内容,因为给定引导环境中的软件包元数据可能并不反映 /var/share 的最新内容。
软件包可以向 /var/.migrate 中提供目录,该目录会在引导期间自动创建在 /var/share 下。有关如何在引导环境之间共享数据的说明,请参见 pkg(7) 和 IPS 开发者指南。
缺省情况下会共享以下目录:
/var/share/audit /var/share/cores /var/share/crash /var/share/mail
在 /var 中会提供符号链接以指向每个共享目录。
如果现有数据集尝试挂载在其中的一个符号链接上(例如,用户具有一个现有数据集,而该数据集通常挂载在 /var/mail 上),则这些数据集将挂载在 /var/share 下,因为文件系统挂载会遍历符号链接。该数据集仍可通过原始挂载点访问。
A persistent per host local file system directory for per user content.Not to be confused with the users home directory which may or may not be on a local filesystem.
Directories under here are named with the uid with a symlink named using the username pointing to the uid.
All content in here is assumed to be private to the creating application and the user must not manually manipulate the files even though they may be owned by the user themsevles.
The per user directories are created by useradd(8) and by the pam_sm_setcred(3PAM) method of pam_unix_auth(7).
Similar to /var/share/user but does not persist over reboot.
Unlike /var/share/user the /tmp/volatile-user only has uid directories, there is no symlink or other use of the username.
该目录包含常规系统操作期间大小或存在状态会发生变化的文件。此目录中的内容不会在引导操作期间被删除。通过设置 rmtmpfiles 服务的 clean_vartmp 属性值,可以更改 /var/tmp 的缺省行为,以清除编辑器临时文件以外的所有文件。可通过以下命令执行此操作:
# svccfg -s svc:/system/rmtmpfiles setprop\ options/clean_vartmp = "true" # svcadm refresh svc:/system/rmtmpfiles:default
需要 solaris.smf.value.rmtmpfiles 授权才能修改此属性。
在多个引导环境和一个单独的文件系统之间共享的目录。
isainfo(1), svcs(1), uname(1), mount(2), pam_sm_setcred(3PAM), ctfs(4FS), devfs(4FS), objfs(4FS), Intro(5), proc(5), pam_unix_auth(7), automount(8), automountd(8), boot(8), init(8), kernel(8), mount(8), svcadm(8), svccfg(8), useradd(8), zfs(8), zpool(8)