FreeBSD下如何使用移动硬盘

FreeBSD下如何使用移动硬盘

摘要

这个Wiki页面主要介绍如何在FreeBSD系统下面使用USB接口的移动硬盘。

FreeBSD使用移动硬盘的不同方式

严格的说FreeBSD系统只提供了一种使用移动硬盘的方式,但是很多桌面用户都会运行X。

X系统同样提供挂载移动硬盘的方法,比如我用Xorg+GNOME,我也可以使用HALD来挂载移动硬盘。

在这里,我们只介绍如何使用FreeBSD系统提供的方法来挂载移动硬盘。

基本步骤

在FreeBSD系统下面使用移动硬盘并不复杂,只需要几个基本的配置即可实现。

添加内核支持

很显然,不论你使用什么设备,你都需要将其添加进入内核(直接进内核或编译成模块)。

这里我们使用的是USB接口的硬盘,所以就需要添加对USB设备的支持。

简单的说,你需要在内核的配置文件里面添加下述内容:

device scbus
device da
device pass
device uhci
device ohci
device ehci
device usb
device umass

使用默认内核的用户可以无视这个操作,因为默认内核是提供对USB设备的支持。

详细情况可参考FreeBSD Handbook。

完成上述操作之后你的系统就能识别你的移动硬盘了。

对移动硬盘进行分区

如何分区是用户的问题了,这里只介绍如何使用UFS文件系统。

插入移动硬盘,然后用root用户运行sysinstall。
Condigure → Fdisk → 然后设定你喜欢的Slice分区方式,比如我整个移动硬盘都是用UFS,我就直接选择Use Entire Disk;然后,选择Write Changes;然后,选择Do not install a boot manager;然后退出sysinstall。

再次运行sysinstall,注意我说的是再次运行sysinstall。
Condigure → Label → 然后设定你喜欢的Partition分区方式,最后选择Write。

需要注意的是,在这个步骤中,你需要设定新建Partition的挂载位置,你最好选在挂载在/tmp下面,如果你选在挂载在root目录下面,系统就会在root下面创建目录,当然你可以自己删除那个没用的目录。

如果你的rc.conf里面有下述内容,系统开机时会自动清理/tmp目录:

clear_tmp_enable="YES"

我的分区方式是整个移动硬盘只有一个Slice,然后这个Slice里面有3个Partition。

对应/dev目录下面的

da0
da0s1
da0s1d
da0s1e
da0s1f

普通用户挂载

多数情况下,没有人使用root用户进行日常的操作,所以我们必须使用普通用户来挂载以及卸载移动硬盘。

把下述内容添加进入/etc/devfs.rules:
[localrules=5]
add path ‘da*’ mode 0660 group operator

告诉系统operator组可以挂载。

注意是/etc/devfs.rules,不是/etc/devfs.conf。后者用于控制开机就存在的设备,前者用于控制可插拔的设备。

把下述内容添加进入/etc/rc.conf:
devfs_system_ruleset="localrules"

告诉系统使用/etc/devfs.rules中设定的规则。

把下述内容添加进入/etc/sysctl.conf:
vfs.usermount=1

告诉系统普通用户可以挂载。

设定移动硬盘分区的权限
设定权限比较简单,你可以在/mnt目录下面建立自己的文件夹用于挂载自己的移动硬盘,比如我的/mnt目录下面有5个文件夹:

> ls /mnt/
fender_01    fender_02    fender_03    fender_04    fender_05

首先你需要使用root用户来手工挂载移动硬盘分区到fender_01,fender_02,fender_03。

# cd /mnt/
# mount /dev/da0s1d fender_01
# mount /dev/da0s1e fender_02
# mount /dev/da0s1f fender_03

然后你需要设定fender_01,fender_02,fender_03这三个目录的权限。

# cd /mnt/
# chown fender:operator *

注意,fender这个用户在operator组里面。

# pw group mod operator -m fender

完成上述操作你就可以使用fender这个用户来挂载移动硬盘了。

防止HALD挂载移动硬盘

既然本文开始就说明了使用FreeBSD系统提供的基本方法来挂载移动硬盘,我们就需要防止HALD来挂载移动硬盘。

屏蔽方法如下,在/usr/local/share/hal/fdi/preprobe/20thirdparty目录,

建立da.fdi文件并写入:
<?xml version="1.0" encoding="UTF-8"?>

<deviceinfo version="0.2">
  <device>
    <match key="freebsd.driver" string="da">
      <match key="freebsd.unit" int="0">
        <merge key="info.ignore" type="bool">true</merge>
      </match>
    </match>
  </device>
</deviceinfo>

这个文件用于防止HALD挂载移动硬盘。

建立acd.fdi文件并写入:
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
  <device>
    <match key="freebsd.driver" string="acd">
      <match key="freebsd.unit" int="0">
        <merge key="info.ignore" type="bool">true</merge>
      </match>
    </match>
  </device>
</deviceinfo>

这个文件用于防止HALD挂载我的光驱(和移动硬盘关系不大)。

如果你没有按照X,那么你可以直接无视这个步骤。

弄一个自动挂载和卸载的脚本

都弄好了就在弄一个脚本吧,省着天天敲命令,一方面是比较麻烦,另外一方面是周围人看着比较奇怪(你看那个变态,用个移动硬盘还得得瑟着敲半天键盘,真能装,)。

> cd
> cd bin/
> cat mount_rhd.sh
#! /bin/sh
mount /dev/da0s1d /mnt/fender_01;
mount /dev/da0s1e /mnt/fender_02;
mount /dev/da0s1f /mnt/fender_03;
> cat umount_rhd.sh
#! /bin/sh
sync;
umount /mnt/fender_01;
umount /mnt/fender_02;
umount /mnt/fender_03;

当然了这个脚本应该放在你的shell能找到的地方了,比如我就放在自己home下面的bin里面,然后把这个bin加到自己shell程序的搜索目录就行了。

最后开个小玩笑,不要以为最后那段代码里面第一个cd命令是多余的,那个cd命令是用于会到自己home的。

原文链接:http://wiki.freebsdchina.org/doc/b/removable_disk_usage

FreeBSD已测硬件清单

品牌服务器

品牌 型号 状态 已知问题 解决方法
Dell PowerEdge 1435 可用
Dell PowerEdge 1950(RAID) 可用
Dell PowerEdge 1950(SAS无RAID) 可用 某些型号会在启动时出现bce0: watchdog timeout或在检测到acd0之后停止响应 启用或禁用 MSI (消息信号中断) 支持(6.3或更高版本)
Dell PowerEdge 1850 可用 外接SCSI卡时,由于主板设计原因在高负载情况下会出现Interrupt Storm;
尽量避免外接SCSI卡与共享中断的网卡同时出现高负载
Dell PowerEdge 1750 可用
Dell PowerEdge 1650 可用
HP Proliant DL-140G3 可用 1. 仅能从网络安装
2. 安装完成后使用中一直有如下信息:
mpt0: QUEUE FULL EVENT: Bus 0x00 Target 0x02 Depth 65
解决方法:升级硬盘固件,或使用camcontrol降低tag数:
camcontrol tags da0 -N 64
HP Proliant DL380G4 可用
IBM x3250 可用
SUN
Lenovo

品牌笔记本

品牌 型号 状态 已知问题
Lenovo ThinkPad T61 可用 无线网卡目前不支持
Lenovo ThinkPad T60 可用 7.0以下版本无线网卡wpi不支持
Lenovo ThinkPad T43 可用
Lenovo ThinkPad R400 可用 蓝牙未尝试,摄像头可能无法使用,”硬盘安全气囊“可以检测震动但无法控制磁头

主板

品牌 型号 状态 已知问题
华硕 A8N-Sli-Deluxe 可用 N/A
华硕 M2A-VM 可用
华硕 P5B 可用 网卡经常失去响应
技嘉 GA-MA69VM-S2 可用 网卡经常失去响应
任何 intel-845pe 可用

显卡

型号 状态 备注
NV-fx5200 可用 完美

声卡

名字 状态 备注
intel-845pe-集成 可用 完美
ATI SB600 HDA(ASUS M2A-VM 集成) 可用 完美

USB设备

名字 状态 备注
蓝牙耳麦 不可用 仅指耳麦,非蓝牙其他

原文链接:http://wiki.freebsdchina.org/faq/hardware