- 1. 概要
- 2. dmesg 確認
- 3. ports
- 4. fuse 有効化
- 5. マウント
1. 概要
ちょっとやる機会があったので、記録を残しておきます。
「USB」へのアクセスの仕方は、「FreeBSD 4.0 RELEASE」あたりとずいぶん変わっているようで・・・。
本ページは、下記のサイトを参考にさせていただきました。
「FreeBSD 10 で ntfs-g3 を使って NTFS を mount」
「Mounting NTFS on FreeBSD」 ← リンク切れになりました
2. dmesg 確認
USB を認識させるには、カーネルに定義しておく必要があるのですが、特にコメントアウトしていなければ、FreeBSD 11.1 RELEASE ではデフォルトで有効になっています。
確認するならば
/usr/src/sys/アーキテクチャ/conf/カーネルソース名
のファイルで(下記は amd64 のものですが)下記が有効になっていることを確認します。
# USB support
options USB_DEBUG # enable debug msgs
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device xhci # XHCI PCI->USB interface (USB 3.0)
device usb # USB Bus (required)
device ukbd # Keyboard
device umass # Disks/Mass storage - Requires scbus and da
次に USB デバイスのポートが有効になっているかを下記のコマンドで確認します。
> cat /var/run/dmesg.boot | grep usb
わたしが実際にマウントの確認を行った、VirtualBox 上の環境では、以下のように出力されました。
usbus0 on xhci0
usbus0: 5.0Gbps Super Speed USB v3.0
ugen0.1: <0x8086 XHCI root HUB> at usbus0
uhub0: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
マウントはしていませんが、持っている実機では、以下のように出力されました。
ugen0.2: <vendor 0x056e TK-FCP025 Series> at usbus0
ukbd0: <vendor 0x056e TK-FCP025 Series, class 0/0, rev 1.10/1.03, addr 1> on usbus0
ugen2.2: <vendor 0x8087 product 0x0024> at usbus2
uhub3: <vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr 2> on usbus2
ugen1.2: <vendor 0x8087 product 0x0024> at usbus1
uhub4: <vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr 2> on usbus1
uhid0: <vendor 0x056e TK-FCP025 Series, class 0/0, rev 1.10/1.03, addr 1> on usbus0
usbus0 on xhci0
usbus0: 5.0Gbps Super Speed USB v3.0
usbus1: EHCI version 1.0
usbus1 on ehci0
usbus1: 480Mbps High Speed USB v2.0
usbus2: EHCI version 1.0
usbus2 on ehci1
usbus2: 480Mbps High Speed USB v2.0
ugen1.1: <Intel EHCI root HUB> at usbus1
ugen0.1: <0x8086 XHCI root HUB> at usbus0
ugen2.1: <Intel EHCI root HUB> at usbus2
uhub0: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1
uhub1: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2
uhub2: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
ugen0.2: <vendor 0x056e TK-FCP025 Series> at usbus0
ukbd0: <vendor 0x056e TK-FCP025 Series, class 0/0, rev 1.10/1.03, addr 1> on usbus0
ugen2.2: <vendor 0x8087 product 0x0024> at usbus2
uhub3: <vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr 2> on usbus2
ugen1.2: <vendor 0x8087 product 0x0024> at usbus1
uhub4: <vendor 0x8087 product 0x0024, class 9/0, rev 2.00/0.00, addr 2> on usbus1
uhid0: <vendor 0x056e TK-FCP025 Series, class 0/0, rev 1.10/1.03, addr 1> on usbus0
usbusx がミソのようで、USB 用のバスが何のバージョンの USB をサポートしているかが出力されているようです。
3. ports
NTFS フォーマットを認識させるには、ports が必要なようで。
cd /usr/ports/sysutils/fusefs-ntfs
make
make install
4. fuse 有効化
fuse が何なのかをわたしは知らないのですが・・・。
以下のいずれかの方法で fuse のカーネルモジュールをロードする必要があるそうです。
テンポラリにロードしたいなら(わたしはこれを使用しました)
> kldload fuse
/boot/loader.conf に書くなら、以下の行を追加します。(未確認)
fuse_load="YES"
/etc/rc.conf に書くなら、以下の行を追加します。(未確認)
fusefs_enable="YES"
5. マウント
さて、いよいよマウントですが。
まず、USB デバイスをぶっ指します。
今回使用したのは SONY の USB メモリです。
ぶっ指した時点で、コンソールと /var/log/message に以下が出力されます。
ugen0.2: <Sony Storage Media> at usbus0
umass0 on uhub0
umass0: <Sony Storage Media, class 0/0, rev 2.00/1.00, addr 1> on usbus0
umass0: SCSI over Bulk-Only; quirks = 0x8100
umass0:2:0: Attached to scbus2
da0 at umass-sim0 bus 0 scbus2 target 0 lun 0
da0: <Sony Storage Media 0100> Removable Direct Access SCSI device
da0: Serial Number 5A08100900139
da0: 40.000MB/s transfers
da0: 15296MB (31326208 512 byte sectors)
da0: quirks=0x2<NO_6_BYTE>
6行目でデバイス名が da0 らしいことが分かります。
確認してみます。
> ls /dev/da0*
/dev/da0 /dev/da0s1
実際にマウントするのは /dev/da0s1 になります。
マウント用のディレクトリを作成しておきます。
> mkdir -pv /mnt/ntfs
いよいよマウント・・・。
> ntfs-3g -oro /dev/da0s1 /mnt/ntfs
エラーも警告もなく次の行になれば、マウント成功です。
> mount
/dev/ada0s1a on / (ufs, local, journaled soft-updates)
devfs on /dev (devfs, local, multilabel)
/dev/fuse on /mnt/ntfs (fusefs, local, read-only, synchronous)
> ls /mnt/ntfs
. .. 'Age of King' key Manjaro 'System Volume Information' カタログ 仮想環境Vagrant
日本語まで綺麗に表示されるので、ある意味、びっくりです。
満足してアンマウントして USB メモリをはずします。
umount /mnt/ntfs
|