HAL

注: 这些内容只适用於 CentOS 5。

1. 摘要

由第 5 版开始,CentOS 不再使用 hotplug 守护程序:

# cat /proc/sys/kernel/hotplug 

#

现有的辅助系统是:

截至 CentOS 4,假如你将一支笔式存储器接驳到你的计算机,它会自动被挂载在 /media 上,就算你在 runlevel 3(文字模式)中运作也没关系。然而由於新辅助系统的布局,这个情况在 CentOS 5 已不再发生。

2. 如何在 Gnome/KDE 以外自动挂载

gnome-volume-manager 正是问题的关键。你只须引导它便可以了:

$ gnome-volume-manager --sm-disable

你不必在后台引导它("&"),因为它会自动分叉执行。我们亦推荐以将要使用设备的用户身份来引导 gnome-volume-manager,因为 gnome-mount 会采用现有的 gnome-volume-manager 进程的 uid 作为挂载文件系统时使用的 uid/user 选项。

因此,如果你使用的是 IceWM(举例说),你只需在工作阶段开始时(.Xclients-default、.Xclients 等)引导 "gnome-volume-manager --sm-disable"。

请不要忘记利用 gnome-volume-properties 来设置 gnome-volume-manager。

3. 如何告诉 gnome-mount 以你的方式来挂载东西

有一件关於 gnome-mount(由 gnome-volume-manager 调用它来挂载)的事情,就是它有很多缺省值,与及一个讨厌的错误。为了免得你有意外惊喜 —— 它有一个麻烦的错误,导致你不能利用 gconftool-2 来作设置。gnome-mount 会将它的挂载选项放在你用 gconftool-2 的选项后面,这样会令到某些选项不能被应用。

注:你可以先使用 gnome-mount 的 --write-settings 选项,然后用 gconf-edit 来修改个别文件系统的 gconf 值。这样做便不必直接使用 gconftool-2

最棘手的部份就是 gnome-mount 会在挂载时加入 "user" 文件系统选项。这个选项意味了 noexec,nodev,nosuid。由於它是增加在你所提供的选项后面,即使你在 volume/UUID/mount_options 这个 gconf 索引键内指定 exec,你的文件系统仍然会以 noexec 挂载。

另外你可能会想修改挂载点。gnome-mount 缺省会挂载在 /media/标签 上。

修改这些设置的方法是使用 /etc/fstab。在 /etc/fstab 内的挂载选项是在 gnome-mount 的选项后面加插的,这样你便能重获控制权。

为了让事情更浅白,现在假设你有一支笔型存储器,上面藏有一个被标签为 MYPENDRIVE 的 ext3 文件系统。假若你单单将它插入,你会得到这个结果:

/dev/sda1 on /media/MYPENDRIVE type ext3 (rw,noexec,nosuid,nodev,user=myusername)

现在假设你想以 exec 来挂载它。你只须要在 /etc/fstab 内加入下面这行:

LABEL=MYPENDRIVE  /media/MYPENDRIVE   ext3    defaults,user,exec,noauto   0   0

切记要在 user 或 users 选项后面加入 exec,否则它不会生效

另一个棘手之处,就是当你采用 fstab,gnome-mount 便不会再自动为你创建挂载点。因此,请确定你已亲自创建它。

按照同一个道理,你可以告诉 gnome-mount 使用另一个挂载点。如果你使用了一些删除式磁盘(好像:Del RD1000),这个会特别有用:

LABEL=RD1000disk    /backup    ext2    defaults,users,noauto   0   0

这个 noauto 选项是针对 "mount -a" 而应用的。gnome-volume-manager 依旧会自动挂载它,所以不用担心。

4. 如何测试你对 gnome-mount 的改动(诊断)

一个简易测试你对 gnome-mount 的改动的方法就是手动式调用它。

首先,你必须停止/终止 gnome-volume-manager,因为你不会想它碍事。接著,你可以为一个特定设备直接执行 gnome-mount:

gnome-mount -vbd /dev/sda1

这个 -v 选项代表「显示细节」,好让你能得到一些可以帮助你作诊断的信息。之后你可以卸下那个设备,然后再调用 gnome-mount,直至你得到所需的。

完成后,你应该卸下那个文件系统、删除设备、然后才重新引导 gnome-volume-manager,否则你会弄到一团槽。

如何所有方法都行不通:

  1. 停止/终止 gnome-volume-manager
  2. 停止 hal 守护程序(service haldaemon stop)
  3. 删除设备
  4. 引导 hal 守护程序(service haldaemon start)
  5. 引导 gnome-volume-manager(gnome-volume-manager --sm-disable)
  6. 插入设备

Translation of revision 4

zh/TipsAndTricks/HAL (last edited 2010-01-18 04:02:28 by TimothyLee)