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-tw/TipsAndTricks/HAL (last edited 2009-09-07 07:46:44 by TimothyLee)