星期一, 三月 02, 2009

ubuntu 8.10 intrepid ibex 开机自动挂载windows分区的解决

ubuntu 8.10默认开机不会自动挂载windows分区,只有当点击该分区的时候才会挂载

解决方法如下:
1. 升级nautilus,从1:2.24.1-0ubuntu1升级到1:2.24.1-0ubuntu2
$ sudo apt-get install nautilus
老版本有bug,这个问题害我查遍了google的结果,费了好几个小时(22:00-2:00)!
2. 修改/etc/hal/fdi/policy/preferences.fdi
    <merge key="storage.automount_enabled_hint" type="bool">false</merge>
修改为:
    <merge key="storage.automount_enabled_hint" type="bool">true</merge>

原理解释:
1. ubuntu下挂载硬盘有两种途径:一是旧式的/etc/fstab,二是hal(硬件抽象层)
2. hal挂载的分区要注意:
    a) 挂载分区不能出现在/etc/fstab中
    b) 目标挂载目录不能存在(hal会自动创建)
3. ubuntu的自动挂载是通过 gnome nautilus启动 --> 调用gnome_mount --> hal --> 完成挂载
4. hal的配置是/etc/hal/fdi/policy/下面的fdi文件

5. 实验了一下不修改preferences.fdi,而是创建新的fdi规则,但是却没有生效。(有待继续研究)
liuqingy@ubuntu:/etc/hal/fdi/policy$ cat 20-HDD.fdi
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
    <device>
        <match key="block.device" string="/dev/sda5">
            <merge key="volume.ignore" type="bool">false</merge>
            <merge key="volume.label" type="string">DATA</merge>
            <merge key="storage.automount_enabled_hint" type="bool">true</merge>
        </match>
    </device>
</deviceinfo>

6. gnome-volume-manager没用,别装。disk-manager更改的是/etc/fstab,没用,别装。

参考文献:
1. http://people.freedesktop.org/~david/hal-spec/hal-spec.html#device-properties-volume
2. http://wiki.archlinux.org/index.php/HAL#Auto-mount_only_removable_media


没有评论: