FreeBSD で USB ディスクの増設
【要点】
USB ディスクを増設するときは,gpart でパーティションテーブルとパーティションを作成し,newfs で UFS ファイルシステムを作成し,マウントする。
パーティション方式は GPT,パーティションタイプは freebsd-ufs を用いる。 従来の MBR 方式で用いた fdisk,bsdlabel(MBR のパーティションタイプ 165 の設定)は非推奨であり,FreeBSD 16 以降のベースシステムには含まれない。
以下の操作は,すべて管理者(root)権限で行う。
- 接続した USB ディスクの装置名の確認
geom disk list
または次のコマンドでも確認できる。
camcontrol devlist dmesg | tail
【行うべきこと】 いまから設定したい USB ディスクの装置名(da0 など)をよく確認すること(別の名前になっている可能性がある。特に複数台の USB ディスクをつないでいる場合など)。 以降の手順では,指定した装置のデータはすべて消去される。 装置名の確認には,容量と型番の表示される「geom disk list」の結果を用いる。以降の説明では装置名を da0 とする。自身の環境の装置名に読み替えて実行する。
- パーティションテーブルとパーティションの作成
管理者(root)権限で次のコマンドを実行する。 既存のパーティションテーブルがある場合は,1 行目で削除する。
gpart destroy -F da0 gpart create -s GPT da0 gpart add -t freebsd-ufs -a 1M -l usbdisk da0
「-a 1M」はパーティションの開始位置を 1M バイト境界に整列させる指定である。 「-l usbdisk」はラベルの指定であり,このラベルにより /dev/gpt/usbdisk でもアクセスできる。 USB ディスクの装置名(da0 など)は接続順序により変化するため,マウントにはラベルを用いる。
作成結果は次のコマンドで確認する。
gpart show -l da0
- ファイルシステムの作成
管理者(root)権限で次のコマンドを実行する。
newfs -U /dev/gpt/usbdisk
「-U」はソフトアップデートを有効にする指定である。 ブロックサイズ,フラグメントサイズ等は既定値(ブロックサイズ 32768 バイト,フラグメントサイズ 4096 バイト)を用いる。
- マウント
管理者(root)権限で次のコマンドを実行する。
mkdir -p /mnt/usbdisk mount /dev/gpt/usbdisk /mnt/usbdisk df -h /mnt/usbdisk
- 起動時の自動マウントの設定(必要な場合)
管理者(root)権限で /etc/fstab に次の 1 行を追加する。
/dev/gpt/usbdisk /mnt/usbdisk ufs rw,late 0 2
「late」は,ネットワークや他のサービスの開始後にマウントする指定である。 USB ディスクが接続されていないときの起動失敗を避けるには,「late」に代えて「noauto」を指定し,必要時に「mount /mnt/usbdisk」でマウントする。