FreeBSD で USB ディスクの増設

【要点】

USB ディスクを増設するときは,gpart でパーティションテーブルとパーティションを作成し,newfs で UFS ファイルシステムを作成し,マウントする。

パーティション方式は GPT,パーティションタイプは freebsd-ufs を用いる。 従来の MBR 方式で用いた fdiskbsdlabel(MBR のパーティションタイプ 165 の設定)は非推奨であり,FreeBSD 16 以降のベースシステムには含まれない。

以下の操作は,すべて管理者(root)権限で行う。

  1. 接続した USB ディスクの装置名の確認
    geom disk list
    

    または次のコマンドでも確認できる。

    camcontrol devlist
    dmesg | tail
    
    【行うべきこと】 いまから設定したい USB ディスクの装置名(da0 など)をよく確認すること(別の名前になっている可能性がある。特に複数台の USB ディスクをつないでいる場合など)。 以降の手順では,指定した装置のデータはすべて消去される。 装置名の確認には,容量と型番の表示される「geom disk list」の結果を用いる。

    以降の説明では装置名を da0 とする。自身の環境の装置名に読み替えて実行する。

  2. パーティションテーブルとパーティションの作成

    管理者(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
    
  3. ファイルシステムの作成

    管理者(root)権限で次のコマンドを実行する。

    newfs -U /dev/gpt/usbdisk
    

    「-U」はソフトアップデートを有効にする指定である。 ブロックサイズ,フラグメントサイズ等は既定値(ブロックサイズ 32768 バイト,フラグメントサイズ 4096 バイト)を用いる。

  4. マウント

    管理者(root)権限で次のコマンドを実行する。

    mkdir -p /mnt/usbdisk
    mount /dev/gpt/usbdisk /mnt/usbdisk
    df -h /mnt/usbdisk
    
  5. 起動時の自動マウントの設定(必要な場合)

    管理者(root)権限で /etc/fstab に次の 1 行を追加する。

    /dev/gpt/usbdisk	/mnt/usbdisk	ufs	rw,late	0	2
    

    「late」は,ネットワークや他のサービスの開始後にマウントする指定である。 USB ディスクが接続されていないときの起動失敗を避けるには,「late」に代えて「noauto」を指定し,必要時に「mount /mnt/usbdisk」でマウントする。