- 论坛徽章:
- 0
|
FreeBSD 5.x 中 gbfs 的修正,及安装方法
因为freebsd启动的时候,mount /etc/fstab 中的分区是在加载gbfs的cd9660和msdosfs模块之前的,所以mount 分区的时候就会调用原source code的msdosfsmodule,请看下面的解决方法。
你弄张中文目录的cd,mount一下看看,能不能正常。
- 汉化的XFree86和KDE后,下一个要解决的问题就是FreeBSD的中文文件名问题。这才是真正的FreeBSD汉化。不过操作起来很简单。在FreeBSD中,当你用ls中文文件名的时候,看到的不是各种乱码,而是多个?号或者-号。这时候,需要安装gnuls和gbfs包。使用上面的Ports操作,可以很容易安装他们。安装后reboot系统。你会在启动信息里看到一些错误信息:
- module_register: module cd9660 already exists!
- linker_file_sysinit "cd9660.ko" failed to register! 17
- 如果你没有看清楚,查看/var/log/message。查看/usr/local/etc/rc.d看到里面多了一个启动脚本gbfs.sh。其内容是用kldload加载/usr/local/modules下的模块。到/usr/local/modules/下看看,看到里面有两个模块文件cd9660.ko和msdos.ko。使用kldload来手动加载cd9660.ko。依然显示上面的错误。上网查资料才知道,需要修改kernel配置文件注释掉以下几行:
- options MSDOSFS #MSDOS Filesystem
- options CD9660 #ISO 9660 Filesystem
- options CD9660_ROOT #CD-ROM usable as root, CD9660 required
- 然后重新编译并安装内核。ok先试试,反正FreeBSD编译内核的速度奇快。编译、安装内核后,reboot。但错误依然。这是怎么回事?这时,我在想为什么要注释掉上面呢三行,难道说要让FreeBSD不支持msdos和cd文件系统?显然不是,因为我还是可以mount上fat分区。我想,这可能是要强制FreeBSD对msdos和cd文件系统的支持在module模式下运行。而我在/etc/fstab中添加了在启动时mount我的fat分区的内容。因此FreeBSD先使用了原来的msdos.ko。当gbfs.sh加载自己的msdos.ko时,当然回出现错误了。ok,试试看。把/modules/cd9660.ko和/modules/msdos.ko备份一下。然后把/usr/local/modules/msdos.ko和/usr/local/modules/cd9660.ko拷贝到/modules下,删除/usr/local/etc/rc.d/gbfs.sh。reboot系统。在~/.cshrc下增加如下内容:
- alias ls 'gnuls --show-control-chars'
- 这回看看msdos下的中文文件名。哈哈,OK了。
复制代码 |
|