Subsections

2 mount/etc/fstab

这一节里会解释怎样加装一个软盘或一个 Zip 盘,也会讨论关于 /dev 目录,介绍在多个物理设备或分区里较好的分配目录结构。

1 加载文件系统

在 GNU/Linux 系统上,目录结构和物理设备间不一定是完全对应的, 这一点跟 Windows 系统不一样,在 Windows 里,每个驱动器(硬驱,软驱)都有它自己的目录结构,分别以一个字母开头(比如 C:\)。

而在 GNU/Linux 上,每个驱动设备(一个硬盘或一个软盘)上会有一个或多个文件系统。为了方便访问一个文件系统,它被指定成为另外一个文件系统下的一个目录。为了防止死循环,根文件系统(root filesystem,里面含有根目录 /)是不会被放在任何别的文件系统里的,当您启动 Debian 的时候,您可以直接访问它。

存在于一个文件系统中而又包含另外一个文件系统的目录,我们称这个目录为加载点 (mount point)。一个加载点是第一文件系统中的一个目录,而这个目录又“包含”了另外一个文件系统(这个系统可能在另外一个设备上,比如软盘)。只有为把一个文件系统加载到一个加载点以后,您才能访问那个文件系统。

比如您会把一张光盘加载到 /cdrom 这个加载点上。如果您浏览 /cdrom 这个目录,您会看到这张光盘上的内容。/cdrom 这个目录本身其实是在您的硬盘上,而就实际应用来说,这张光盘上的内容成了根文件系统的一部分,当您键入命令或者执行程序的时候,一个文件的具体物理位置在什么地方对于您是没有分别的。您可以在您的硬盘建立一个 /cdrom 目录,放进一些文件,这些文件更如果您加载您的光盘上的文件没有什么区别。当您加载了一个文件系统后,您根本不用考虑物理设备的问题了。

但是,在您加载一个文件系统或者在一个没有文件系统的设备上建立文件系统前,您需要直接使用这些设备。所有的设备都有特定的名字,这些名字是在目录 /dev 下的。如果您现在输入 ls /dev,您会看到一个相当长的名单,里面有您的 Debian 系统里所有可能的设备名称。第 [*] 页,表格 2.1 归纳了其中的一些设备。在您的系统里,文件 /usr/src/linux/Documentation/devices.txt 有更完整的列表。

要加载一个文件系统,我们要让 Linux 把它在指定设备上发现的任何文件系统与一个指定的加载点联系起来,这里,我们可能需要告诉 Linux 去寻找哪种文件系统。

2 例:加载一个光盘

我们在这里演示一下加载光盘的步骤,光可以用您的 Debian 光盘(如果您是用光盘安装的话)。因为您必须是 root 才能加载光盘,所以要尽量小心,做为 root,您拥有操纵整个系统的权力,而不仅仅是您自己的文件,水能载舟,亦能覆舟。以下命令已假定您的光驱里有一张光盘,如果没有,放一个进去。现在可以键入以下命令:

su
如果您还不是 root,您或者以 root 登录或者使用 su(super user 超级用户)命令取得根的特权级。如果使用 su,当问您口令的时候,输入根口令。

ls /cdrom
使用这个命令看一下开始以前 /cdrom 里有什么。如果您没有 /cdrom 目录,您需要用 mkdir /cdrom 建立一个。

mount
只输入 mount 而没有任何参数会列出目前已经加载的文件系统。

mount -t iso9660 CD-device /cdrom
在这行命令里,您需要把您光盘设备的名称代入 CD-device 里,如果您不知道这个设备名称,您的光盘有可能是 /dev/cdrom,因为 Debian 安装过程中应该已经建立了这个符号连接。如果这个命令失败了,试一下不同的 IDE 设备名称:/dev/hdc 等等。您应该看到类似这个的讯息:mount: block device /dev/hdc is write-protected, mounting read-only

参数选项 -t 指定文件系统类型,在这里用的是 iso9660。大多数的光盘是 iso9660。下一个参数是要加载的设备名称,最后的参数是加载点。mount 命令有很多其他的参数可用,详细说明参看手册 (man mount)。

加载好光盘后,您会发现您的光驱盘打不开了,您需要先卸载光盘,才能把光盘拿走。

ls /cdrom
会证实现在 /cdrom 里包含了您的光盘上的内容。

mount
再看一下加载的文件系统,您可以看到现在您的光驱被加载了。

umount /cdrom
这个命令 卸载您的光驱。 现在您可以安全的把您的光盘从光盘机中拿走,注意,命令 umount 中没有 `n',虽然英文中对应的单词应该是 `unmount'。

exit
为安全起见,不要让自己一直以 root 身份登录,立刻出来。

3 /etc/fstab: 自动加载处理

在文件 /etc/fstab(缩写:``filesystem table'' 文件系统表)里有对您经常需要加载的文件系统的描述。这些文件系统就可以用一个比较简短的命令进行加载,比如 mount /cdrom 就可以了。您也可以配置系统使文件系统在系统启动时自动加载。您会想要把所以在硬盘上的文件系统在启动时自动加载,所以 Debian 为您自动在 fstab 里加入相应的条款。

现在输入 more /etc/fstab,让我们看看这个文件。它有两条或以上条款,这些条款是您安装时自动配置的。这个文件会是类似这样的:

# /etc/fstab: static file system information.

#

# <file system> <mount point> <type> <options> #<dump > <pass>

/dev/hda1 / ext2 defaults 0 1

/dev/hda3 none swap sw 0 0

proc /proc proc defaults 0 0

/dev/hda5 /tmp ext2 defaults 0 2

/dev/hda6 /home ext2 defaults 0 2

/dev/hda7 /usr ext2 defaults 0 2

/dev/hdc /cdrom iso9660 ro,noauto 0 0

/dev/fd0 /floppy auto noauto,sync 0 0

第一列给出这些文件系统所在的设备,第二列是加载点的列表,如后是标明文件系统的类型。以 proc 开头的那一行是一个特殊的文件系统。请注意交换分区(swap partition 在这里是 /dev/hda3)是没有加载点的,所以它的加载点那一项是 none

最后三列需要一些注释:

第五列是给倾卸工具 (dump utility) 用来决定什么时候进行备份的,很多情况下,您可以在这儿使用 0

第六列是给命令 fsck 使用的,决定在系统启动时的文件系统检查中,应该以什么次序来进行。根文件系统在这项应该使用 1,不用进行检查的文件系统(比如交换分区 swap partition)应该使用 0,其它所有的文件系统应该使用 2。注意其实交换分区 (swap) 在某种意义上来说不算一个真正的文件系统,因为它不含有文件和目录,它只是 Linux 核心用来做次级内存的。但是,因为历史原因,交换分区还是与真正的文件系统列于同一个文件里。

第四列含有一个或以上的加载时的选项。您可以查看 mount 的手册来了解这些选项,参见第 [*] 页,第 5.1 节。


4 抽取式磁盘(软盘、Zip 碟等等)

把一下几行加入您的 /etc/fstab 文件里:

/dev/sda1 /mnt/zip ext2 noauto,user 0 0 

/dev/sda4 /mnt/dos msdos noauto,user 0 0 

现在开始,您可以使用命令 mount /mnt/dos 来加载 DOS 格式化的 Zip 碟,或者用命令 mount /mnt/zip 来加载 Linux 格式化的 Zip 碟。

如果您的系统里有 SCSI 硬盘,您要把上例中的 sda 改成 sdb 或者 sdc

John Goerzen / Ossama Othman / Debian 中文计划