FreeBSD UNIX基础

2024-09-27 23

以下命令和功能适用于FreeBSD操作系统。同时这里许多内容也与其他类-UNIX®操作系统相关。如果已经熟悉这些内容,可以选择跳过不阅读。如果是FreeBSD的新手,建议认真详细地从头到尾阅读这些章节。

通过阅读这些内容,将了解到:

  • 怎样在FreeBSD使用 “虚拟控制台”;
  • 在 UNIX® 中文件权限如何运作, 以及理解 FreeBSD 中的文件标志;
  • FreeBSD 默认文件系统的架构;
  • FreeBSD磁盘架构。

一、虚拟控制台和终端

可以使用多种不同的方式使用FreeBSD,在文本终端输入命令是其中之一。通过这种方式,可以容易地利用FreeBSD来获得UNIX®操作系统的灵活而强大的功能。这一节将介绍“终端”和“控制台”,以及如何在FreeBSD中使用它们。

二、控制台

如果没有设置FreeBSD在启动期间开启图形登录界面,那么系统将在引导和启动脚本正确运行完成后,给一个登录提示。会看到类似以下的界面:

Additional ABI support:.
Local package initialization:.
Additional TCP options:.
Fri Sep 20 13:01:06 EEST 2002
FreeBSD/i386 (pc3.example.org) (ttyv0)
login:

这些信息可能与系统略有不同,但不会有太大差别。最后两行是我们感兴趣的,理解这一行:

FreeBSD/i386 (pc3.example.org) (ttyv0)

这一行是刚才启动的系统信息的一部分,所看到的是一个”FreeBSD”控制台,运行在一个Intel或兼容的x86体系结构上。这台计算机的名字(每台UNIX®计算机都有自己的名字)叫pc3.example.org,就是现在这个系统控制台-这个ttyv0终端的样子。

在最后,最后一行一直保持这样:

login:

在这里,可以输入用户名“username”并登录到FreeBSD系统中。接下来的一节将介绍如何登录系统。

三、进入FreeBSD

FreeBSD是一个多用户多任务的系统,换句话说就是一个系统中可以容纳许多不同的用户,而这些用户都可以同时在这台机器中运行大量的程序。

每个多用户系统都必须在某方面区分“user”,在FreeBSD里(以及类-UNIX®操作系统),完成这方面工作是有必要的,因此,每位使用者在运行程序之前都必须首先“登录”,而每位用户都有与之对应的用户名(“username”)和密码(“password”)。FreeBSD会在用户进入之前询问这两项信息。

当FreeBSD引导并运行完启动脚本之后,它会给出一个提示,并要求输入有效的用户名:

login:

举个例子更容易理解,我们假设用户名叫john。在提示符下输入john并按Enter键,此时应该看到这个提示“password”:

login: john
Password:

现在输入john的密码并按下Enter键。输入密码时是不会回显的!不必为此担心,这样做是出于安全考虑。如果输入的密码是正确的,这时应该已经进入了FreeBSD,并可以开始尝试可用的命令了。然后应该会看见MOTD或者出现一个命令提示符(#、$或%字符)。这表明已成功登录进入FreeBSD。

四、多个控制台

在一个控制台上运行UNIX®命令虽然很好,但FreeBSD具有一次运行多个程序的能力。仅使用一个控制台只会浪费FreeBSD同时运行多任务的能力。而“虚拟控制台”在这方面发挥了强大的功能。

FreeBSD能够配置出满足不同需求的虚拟控制台,在键盘上用一组键就能从各个虚拟控制台之间切换。各个控制台有自己的传输通道,当在各个控制台切换时FreeBSD会切换到合适的键盘传输通道和显示器传输通道。

FreeBSD各个控制台之间可以利用特殊组键切换并保留原有控制台状态,可以这样做:Alt+F1、Alt+F2,一直到Alt+F8在FreeBSD里切换到其中一个虚拟控制台。

当从其中某个控制台切换到另一个控制台的时候,FreeBSD会保存正在使用和恢复将要使用的屏幕传输通道。这种结果形成了一种“错觉”,即拥有许多“虚拟”屏幕和键盘可以输入很多命令。这些程序需要在一个虚拟控制台上不能停止运行而又不需要观察它时,它可以继续运行而可以切换到其他的虚拟控制台。

五、/etc/ttys文件

FreeBSD虚拟控制台的默认配置为8个,但并不是硬性设置,可以很容易地设置虚拟控制台的数量增加或减少。虚拟控制台的编号和设置在/etc/ttys文件中。

可以使用/etc/ttys文件在FreeBSD下配置虚拟控制台。文件里每一未加注释的行都能设置一个终端或虚拟控制台(当行中含有#这个字符时不能使用)。FreeBSD默认配置是配置出9个虚拟控制台而只能启动8个,以下是ttyv一起启动的行:

# name getty type status comments
#
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure

六、单用户模式的控制台

关于“单用户模式”的详细介绍可以在单用户模式这里找到。当运行单用户模式时只能使用一个控制台,没有多个虚拟控制台可使用。单用户模式的控制台也可以在/etc/ttys文件中设置,可以在以下这行找到要启动的控制台:

# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off secure

这个console已经被注释掉,可以编辑这行把secure改为insecure。这样,当用单用户进入FreeBSD时,它仍然要求提供root用户的密码。在把这个选项改为insecure的时候一定要小心,如果忘记了root用户的密码,进入单用户模式会有点麻烦。尽管仍然能进入单用户模式,但如果不熟悉它就会非常令人头疼。

七、改变控制台的显示模式

FreeBSD控制台默认的显示模式可以被调整为1024×768、1280×1024或任何显卡芯片和显示器所支持的其他尺寸。要使用一个不同的显示模式,必须首先重新编译内核并包含以下两个选项:

options VESA
options SC_PIXEL_MODE

在内核用这两个选项编译完成后,可以使用vidcontrol(1)工具来测定硬件支持何种显示模式。以root身份在控制台键入以下命令来获得一份所支持的显示模式列表:

# vidcontrol -i mode

这个命令的输出是一份硬件所支持的显示模式列表。可以在以root身份在控制台上键入vidcontrol(1)命令来改变显示模式:

# vidcontrol MODE_279

如果对新的显示模式满意,那么可以把它加入到/etc/rc.conf使机器在每次启动的时候都能生效,我们使用了上一个例子中的模式:

allscreens_flags="MODE_279"

八、权限

在FreeBSD中,文件和目录的权限决定了哪些用户可以读取、写入或执行它们。这些权限分为三类:文件所有者(u)、文件所属组(g)和其他用户(o)。每类用户都有三种权限:读(r)、写(w)和执行(x)。

因为系统有能力支持多用户, 在每一方面系统都会作出谁能读、 写和执行的资源权力限制。 这点权限以三个八位元的方式储存着, 一个是表示文件所属者, 一个是表示文件所属群组, 一个是表示其他人。 这些数字以下列方式表示:

FreeBSD UNIX基础

使用命令的 -l (ls(1)) 参数可以显示出文件的所属者、 所属组和其他人等属性。 请看以下的例子:

% ls -l
total 530
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile
-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt

使用 ls -l 在每行的开始出现了:

-rw-r--r--

从左边起的第一个字,告诉我们这个文件是一怎样的文件: 普通文件?目录?特殊设备?socket?或是设备文件? 在这个例子, – 表示一个普通文件。 接下来三个字是 rw- 是文件拥有者的权限。 再接下来的三个字是 r– 是文件所属群组的权限。 最後三个字是 r– 是其他人的权限。 以这一个文件为例,他的权限设定是拥有者可以读写这个文件、群组可以读取、 其他使用者也能读取这个文件。 根据上面的表格, 用数字表示这个文件其三部分的权限应该是 644。

这样很好,但系统怎样对设备进行权限控制的? 事实上 FreeBSD 将大部份硬件设备当作一个文件看待, 用程序能打开、读取、写入数据就如其他的文件一样。 而设备文件放在 /dev 目录。

目录也视为一种文件,也有读取、写入、执行的权限。 但目录的执行权限意义并不与普通文件相同, 实际上执行权限是进入权限。 当一个目录是被标示可以执行的时, 表示可以进入它, 或者换言之, 利用 “cd” (改变当前目录) 进入它。 此外, 这也表示有权进入目录的用户, 可以访问其下的已知名字的文件 (当然目录下的文件也受到访问限制)。

详细方面,想读取一个目录的列表就必须设为可读权限, 同时想删除一个已知的文件,就必须把目录下这个文件设为可写 和 执行权限。

九、权限的符号化表示

权限符号,某些时候就是指符号表达式, 使用八进制的字符给目录或文件分配权限。 权限符号的使用语法是 (谁) (作用) (权限)。 看看下列数值的在那些地方所起什么样的作用:

FreeBSD UNIX基础

这些数值 chmod(1) 以习惯标定的。 举个例子,用以下命令阻止其他人访问 FILE文件:

% chmod go= FILE

如果需要对文件一次进行多项变动, 则可用逗号分开, 在下面的例子中, 将去掉 FILE 文件的群体和 “全体其他用户” 可写权限, 并为所有人增加可执行权限:

% chmod go-w,a+x FILE

十、FreeBSD文件标志

在前面所介绍的文件权限的基础之上, FreeBSD 还支持使用 “文件标志”。 这些标志为文件提供了进一步的安全控制机制, 但这些控制并不适用于目录。

这些文件标志提供了针对文件的进一步控制, 帮助确保即使是 root 用户也无法删除或修改文件。

文件标志可以通过使用 chflags(1) 工具来修改, 其用户界面很简单。 例如, 要在文件 file1 上应用系统禁删标志, 应使用下述命令:

# chflags sunlink file1

要禁用系统禁删标志, 只需在前述命令中的 sunlink 标志前加 “no”。 例如:

# chflags nosunlink file1

要显示文件上的标志, 应使用命令 ls(1) 的 -lo 参数:

# ls -lo file1

输出结果应类似于:

-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1

十一、setuid、setgid和sticky权限

除了前面已经讨论过的那些权限之外, 还有三个管理员应该知道的权限配置。 它们是 setuid、 setgid 和 sticky。这些配置对于一些 UNIX® 操作而言很重要, 因为它们能提供一些一般情况下不会授予普通用户的功能。 为了便于理解, 我们首先介绍真实用户 ID (real user ID) 和生效用户 ID (effective user ID)。

真实用户 ID 是拥有或启动进程的用户 UID。 生效 UID 是进程以其身份运行的用户 ID。 举例来说, passwd(1) 工具通常是以发起修改密码的用户身份启动, 也就是说其进程的真实用户 ID 是那个用户的 ID; 但是, 由于需要修改密码数据库, 它会以 root 用户作为生效用户 ID 的身份运行。 这样普通的非特权用户就可以修改口令, 而不是看到 Permission Denied 错误了。

mount(8) 的 nosuid 选项可以令系统在不给出任何错误提示的情况下不执行这些程序。 另一方面, 这个选项并不是万无一失的, 正如 mount(8) 联机手册所提到的那样, 如果系统中安装了绕过 nosuid 的封装程序, 那么这种保护就可以被绕过了。

setuid 权限可以通过在普通权限前面加上一个数字四 (4) 来设置, 如下面的例子所示:

# chmod 4755 suidexample.sh

这样一来, suidexample.sh 的权限应该如下面这样:

-rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh

会注意到, 在原先的属主执行权限的位置变成了 s。 这样, 需要提升特权的可执行文件, 例如 passwd 就可以正常运行了。

可以打开两个终端来观察这一情形。 在其中一个终端里面, 以普通用户身份启动 passwd 进程。 在它等待输入新口令时, 在另一个终端中查看进程表中关于 passwd 命令的信息。

在终端 A 中:

Changing local password for trhodes
Old Password:

在终端 B 中:

# ps aux | grep passwd
trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd
root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd

正如前面所说的那样, passwd 是以普通用户的身份启动的, 但其生效 UID 是 root。

与此对应, setgid 权限的作用, 与 setuid 权限类似, 只是当应用程序配合这一设定运行时, 它会被授予拥有文件的那个组的权限。

如果需要在文件上配置 setgid 权限, 可以在权限数值前面增加数字二 (2) 来运行 chmod 命令, 如下面的例子所示:

# chmod 2755 sgidexample.sh

可以用与前面类似的方法来检视新设定的生效情况, 在组权限的地方的 s 表示这一配置已经生效:

-rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidexample.sh

在这些例子中, 尽管 shell 脚本也属于可执行文件的一种, 但它们不会以配置的 EUID 或生效用户 ID 的身份运行。 这是因为 shell 脚本可能无法直接呼叫 setuid(2) 调用。

我们已经讨论了两个特殊权限位 (setuid 和 setgid 权限位), 它们让用户在使用程序时能够用到更高的权限, 有时这会削弱系统的安全性。 除了这两个之外, 还有第三个特殊权限位: sticky bit, 它能够增强安全性。

当在目录上设置了 sticky bit 之后, 其下的文件就只能由文件的所有者删除了。 这个权限设置能够防止用户删除类似 /tmp 这样的公共目录中不属于他们的文件。 要应用这种权限, 可以在权限设置前面加上数字一 (1)。 例如:

# chmod 1777 /tmp

现在, 可以用 ls 命令来查看效果:

# ls -al / | grep tmp
drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp

这里的结尾的 t 表示了 sticky bit 权限。

十二、目录架构

理解 FreeBSD 的目录层次结构对于建立对系统整体的理解十分重要的基础。 其中, 最重要的概念是根目录, “/”。 这个目录是系统引导时挂接的第一个目录, 它包含了用以准备多用户操作所需的操作系统基础组件。 根目录中也包含了用于在启动时转换到多用户模式之前挂接其他文件系统所需的挂接点。

挂接点 (mount point) 是新增的文件系统在接入现有系统时的起点位置 (通常是根目录)。 在 磁盘组织 对此进行了详细的阐述。 标准的挂接点包括 /usr、 /var、 /tmp、 /mnt, 以及 /cdrom。 这些目录通常会在 /etc/fstab 文件中提及。 /etc/fstab 是一张包含系统中各个文件系统及挂接点的表。 在 /etc/fstab 中的绝大多数文件系统都会在启动时由 rc(8) 脚本自动挂接, 除非特别指定了 noauto 选项。

先来看一看绝大多数的常见的目录以供参考。

目录 介绍

/

文件系统的根目录。

/bin/

在单个用户和多用户环境下的基本工具目录。

/boot/

在操作系统在启动加载期间所用的程序和配置。

/boot/defaults/

默认每步引导启动的配置内容。

/dev/

设备节点。

/etc/

系统启动的配置和脚本。

/etc/defaults/

系统默认的启动配置和脚本。

/etc/mail/

关系到邮件系统运作的配置。

/etc/namedb/

named 配置文件。

/etc/periodic/

每天、每星期和每月周期性地运行的脚本。

/etc/ppp/

ppp配置文件。

/mnt/

由管理员习惯使用挂接点的临时空目录。

/proc/

运行中的文件系统。

/rescue/

用于紧急恢复的一组静态联编的程序。

/root/

root用户的Home(主)目录。

/sbin/

在单个用户和多用户环境下的存放系统程序和管理所需的基本实用目录。

/tmp/

临时文件。 /tmp 目录中的内容, 一般不会在系统重新启动之后保留。 通常会将基于内存的文件系统挂在 /tmp 上。 这一工作可以用一系列 tmpmfs 相关的 rc.conf(5) 变量来自动完成。 (或者, 也可以在 /etc/fstab 增加对应项; 参见 mdmfs(8))。

/usr/

存放大多数用户的应用软件。

/usr/bin/

存放实用命令,程序设计工具,和应用软件。

/usr/include/

存放标准 C include 文件.

/usr/lib/

存放库文件。

/usr/libdata/

存放各种实用工具的数据文件。

/usr/libexec/

存放系统实用或后台程序 (从另外的程序启动执行)。

/usr/local/

存放本地执行文件, 库文件等等, 同时也是 FreeBSD ports 安装的默认安装目录。 /usr/local 在 /usr 中的目录布局大体相同。 但 man 目录例外, 它们是直接放在 /usr/local 而不是 /usr/local/share 下的, 而 ports 说明文档在 share/doc/port

/usr/obj/

通过联编 /usr/src 得到的目标文件。

/usr/ports/

存放 FreeBSD 的 Ports Collection (可选)。

/usr/sbin/

存放系统后台程序 和 系统工具 (由用户执行)。

/usr/shared/

存放架构独立的文件。

/usr/src/

存放 BSD 或者本地源码文件。

/usr/X11R6/

存放 X11R6 可执行文件、 库文件、 配置文件等的目录(可选)。

/var/

多用途日志、 临时或短期存放的, 以及打印假脱机系统文件。 有时会将基于内存的文件系统挂在 /var 上。 这一工作可以通过在 rc.conf(5) 中设置一系列 varmfs 变量 (或在 /etc/fstab 中加入一行配置;

/var/log/

存放各种的系统记录文件。

/var/mail/

存放用户mailbox(一种邮件存放格式)文件。

/var/spool/

各种打印机和邮件系统spooling(回环)的目录。

/var/tmp/

临时文件。 这些文件在系统重新启动时通常会保留, 除非 /var 是一个内存中的文件系统。

/var/yp/

NIS 映射。

十三、磁盘组织

FreeBSD 查找文件的最小单位是文件名。 而文件名区分大小写,这就意味着 readme.txt 和 README.TXT 是两个不相同的文件。 FreeBSD 不凭文件扩展名 (.txt) 去识别这个文件是 程序、 文档, 或是其他格式的数据。

各种文件存放在目录里。 一个目录可以为空, 也可以含有多个的文件。一个目录同样可以包含其他的目录, 允许在一个目录里建立多个不同层次的目录。 这将帮助轻松地组织数据。

文件或目录是由文件名或目录名,加上斜线符号 /, 再根据需要在目录名后面加上其他目录的名称。 如果有一个名为 foo 的目录, 它包含另一个目录 bar, 后者包括一个叫 readme.txt 的文件, 则全名, 或者说到文件的 路径 就是 foo/bar/readme.txt。

在文件系统里目录和文件的作用是存储数据。 每一个文件系统都有且只有一个顶级目录 根目录, 这个根目录则可以容纳其他目录。也许在其他的一些操作系统碰到类似这里的情况, 当然也有不同的情况。 举些例子, MS-DOS® 是用 \ 分隔文件名或目录名, 而 Mac OS® 则使用:。FreeBSD在路径方面不使用驱动器名符号或驱动器名称, 在FreeBSD里不能这样使用: c:/foo/bar/readme.txt。

为了代替(驱动器名符号), 一个文件系统会指定 根 文件系统, 根文件系统的根目录是 /。 其他每一个文件系统 挂接在根文件系统下。 无论有多少磁盘在FreeBSD 系统里, 每个磁盘都会以目录的方式加上。假设有三个文件系统, 名为 A、 B 和 C。 每个文件系统有一个根目录, 而各自含有两个其他的目录, 名为 A1, A2 ( B1, B2 和 C1, C2)。看看 A 这个根文件系统。 假如用 ls 命令来查看这个目录会见到两个子目录: A1 和 A2。 这个目录树是这个样子:

FreeBSD UNIX基础

一个文件系统必须挂到另一个文件系统的某一目录, 所以现在假设把 B 文件系统挂到 A1目录, 那 B 根目录因此代替 了 A1,而显示出 B 目录(的内容):

FreeBSD UNIX基础

无论B1 或 B2 目录在那里而延伸出来的路径必须为 /A1/B1 或 /A1/B2。 而在 /A1 里原有的文件会临时隐藏。 想这些文件再出现把 B 从 A 挂接释放。

所有在B1 或 B2 目录里的文件都可以通过 /A1/B1 或 /A1/B2 访问。而在 /A1 中原有的文件会被临时隐藏,直到 B 从 A 上被卸载 (unmout) 为止。

把 B 挂接在 A2 那图表的样子就是这样子:

FreeBSD UNIX基础

这个路径分别是 /A2/B1 和 /A2/B2 。

文件系统能把顶部挂接在另一个文件系统上。 继续这个例子, 把 C 文件系统挂接在 B 文件系统里的 B1 目录, 排列如下:

FreeBSD UNIX基础

或者把 C 文件系统挂接在 A 文件系统里的A1目录:

FreeBSD UNIX基础

假如熟悉 MS-DOS® 并知道 join 命令, 尽管不相同,其实功能是相似的。

这方面不是普通知识而且涉及到自己所关心的, 当安装FreeBSD并在以后添加新磁盘时, 必须知到该如何新建文件系统和挂接上。(FreeBSD系统)它有一个主要的根文件系统, 不需要另外新建立, 但当需要手工处理时,这是一个有用的知识。

多个文件系统的益处:

1、不同的文件系统可用不同的 挂接参数。 举些例子, 仔细想一下, 根文件系统能用只读的方式挂接上, 防止不经意删除或编辑到一个危险的文件。 把各用户能写入的文件系统分开, 像/home这样, 由另外的文件系统分别用 nosuid 参数挂接,这个参数防止 suid/guid 在执行这个文件系统中的文件时生效, 从而缓解了一些安全问题。

2、FreeBSD 能根据一个文件系统使用的情况自动优化 这个文件系统上的文件布局。 所以对一个存储了大量小文件并会被频繁写入文件系统的优化与一个存储了少量大文件的优化是不同的。 而在一个大的单一文件系统上则无法体现这样的优化。

3、FreeBSD 的文件系统能够在断电时尽可能避免损失。 然而, 在关键点时的电源失效仍然可能会破坏文件系统的结构。 将文件系统分成多个有助于分散风险, 并方便备份和恢复。

单一文件系统的益处:

1、文件系统是固定大小的。 当安装FreeBSD时新建一个文件系统并设定一个大小, 会在稍后发觉到必须去建一个大的分区。 如果配置不当, 则需要备份、 重新创建文件系统, 然后再恢复数据。

2、FreeBSD 提供了 growfs(8) 命令。 这使得能够实时地调整文件系统的大小, 因而不再受其限制。

3、文件系统是和分区一一对应的。 这里的分区和常用的术语分区 (例如, MS-DOS® 分区) 的意思并不一样, 这是由于 FreeBSD 的 UNIX® 传统造成的。 每一个分区使用一个从 a 到 h 的字母来表示。 每个分区只能包含一个文件系统, 这意味着文件系统通常可以由它们在文件系统目录结构中的挂接点, 或对应的分区字母来表示。

4、FreeBSD 的 交换分区 也需要使用磁盘空间。 交换分区是给 FreeBSD 作 虚拟内存 使用的, 这样能令计算机有更多的内存可使用, 当FreeBSD在运行而内存不够的时候, 它会把其他一些可转移的数据转移到交换分区, 空出内存的位置以供使用。

某些 partitions 的用途是确定的。

FreeBSD UNIX基础

每一个包含了文件系统的分区被保存在 FreeBSD 称为 slice 的部分上。 Slice 是一个 FreeBSD 术语, 通常被叫做分区, 再次强调, 这是由于 FreeBSD 的 UNIX® 背景。 Slices 有其编号, 从1到4。

Slice 编号在设备名后面, 并有一个 s 前缀, 从 1 开始。 因此 “da0s1” 是第一个 SCSI 驱动器的第一个 slice。 每个磁盘上只能有四个物理的 slices, 但可以在物理 slice 中使用适当的类型来创建逻辑 slice。 这些扩展 slice 编号从 5 开始, 因此 “ad0s5” 是第一个 IDE 磁盘中的第一个 扩展 slice。 文件系统所使用的设备应该占满 slice。

Slices, “专用指定” 物理驱动器, 和其他驱动器都包含 partitions, 那几个的 partitions 都是用字母从 a 到 h 来标定的, 而这些字母都在驱动器名字之后,所以 “da0a” 是指首个da设备的 a partition, 而那个就是 “专项指定”。 “ad1s3e” 是指IDE磁盘上第三个slice的第五个partition。

最终每个磁盘都被系统识别。 一个磁盘名字是用磁盘类型代码和编号来标识的, 它不像slices,磁盘的编号是由0开始的。 对应代码请看这里所列出的磁盘设备的代码。

当在 FreeBSD 中指定 partition 名字时, 必须同时包含这个分区的 slice 和磁盘的名字; 类似地, 在指定 slice 时, 也应该给出包含该 slice 的磁盘名字。 可这样列出: 磁盘名称,s,slice 编号,和partition标定字母。 例子请看 样例磁盘, Slice, 和 Partition 它们的命名。

一个磁盘的布局 这里显示了一个磁盘的布局,有更清楚的帮助。

在安装FreeBSD时,首先要配置好磁盘slices, 然后在FreeBSD使用的slice上建立partitions。 并在每个partition上建立一个文件系统(或交换分区), 和指定文件系统的挂接位置。

磁盘设备的代码:

FreeBSD UNIX基础

  • 广告合作

  • QQ群号:707632017

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。