ディスクの全般に関する作業をまとめます。
新しいディスクを追加した場合、自動的にデバイスが認識されてデバイスノード(ada2とかda0とか)が作成されているところまでは行きます。その後の作業です。デバイスノードは仮にada2とします。
まずは、パーティショニングスキームを作成します。
# gpart create -s GPT ada2[ENTER]
gpart createは、パーティショニングスキームを作成します。オプションフラグ-sには、パーティショニングスキームの種類を指定します。APM, BSD, BSD64, LDM, GPT, MBR, PC98, VTOC8といった選択肢があるようですが、バードウェアにあうように選択します。CPUがIntel(またはその互換)であれば、GPTかと。その後の引数はプロバイダ(記憶ボリュームを供給するものという意味かと)を指定しますが、通常ハードディスクのデバイスノードを指定します。
次に作成したパーティショニングスキームの上にパーティションを作成します。パーティションの作成とそのパーティションの中のファイルシステムの作成は別なので、二つのコマンドが必要です。
# gpart add -t freebsd-ufs ada2[ENTER]
# newfs -U ada2p1[ENTER]
gpart addは、パーティションを作成します。オプションフラグ-tには、パーティションタイプを指定します。ここで指定するfreebsd-ufsは、FreeBSDの一般的なファイルシステムで、ZFSを使用する場合は、freebsd-zfsになります。newfsの-Uオプションは、FreeBSDで有効にすることを推奨されているソフトアップデートを有効にするものです(「FreeBSDハンドブック 11.8.2. ソフトアップデート」参照)。
このコマンドでada2全体に一つのパーティションが作られます。オプションフラグ-sを使うと作成するパーティションのサイズを指定できます。
# gpart add -s 80G -t freebsd-ufs ada2[ENTER]
# newfs -U ada2p1[ENTER]
とすると80GBのパーティションが作成されます。
gpartによりパーティションについて、以下の操作ができます。
以下のコマンドでパーティションの設定・内容(開始アドレス、容量、インデックス、パーティションタイプ)の確認ができます。
# gpart show -l ada2[ENTER]
パーティションの指定を省略すると全てのディスクのパーティションの情報が表示されます。オプションにpを追加して-lpにすると、パーティションがインデックス番号ではなく、ada2p1のようなデバイスノードで表示されます。
以下のコマンドで既存のパーティションのタイプ、ラベルの変更ができます。
# gpart modify -i 1 -l datadisk -t freebsd-zfs ada2[ENTER]
ada2p1パーティションのラベルを「datadisk」に、タイプを「zfs」に変更します。-iオプションで指定するインデックスは、gpart showで確認します。
以下のコマンドで既存のパーティションのサイズの変更ができます。
# gpart resize -i 1 -s 80G ada2[ENTER]
これでada2p1パーティションの容量を80GBに変更します。-iオプションで指定するインデックスは、gpart showで確認します。
以下のコマンドでパーティションの削除ができます。
# gpart delete -i 1 ada2[ENTER]
これで、ada2のインデックス1のパーティション(ada2p1)が削除できます。
以下のコマンドでパーティションスキームの削除ができます。
# gpart destroy -F ada2[ENTER]
-Fは、ada2にまだ作成したパーティションが残っていても強制的に削除するフラグです。
追加したディスク、パーティションを仕えるようにします。
作成したパーティションは、以下のコマンドでマウントします。
# mount /dev/ada2p1 /home/disk1[ENTER]
「mount (マウントするパーティション) (マウント先のディレクトリ)」です。ディレクトリは、既に作成されている必要があります。パーティションタイプがufsでない場合は、(マウントするパーティション)の前に「-t (パーティションタイプ)」で指示します。
手動で問題なくマウントできたら、起動時に自動でマウントされるよう/etc/fstabに以下の記載をします。
/dev/ada2p1 /home/disk1 ufs rw 0 2
「(マウントするパーティション) (マウント先のディレクトリ) (パーティションタイプ) (マウントオプション) (dumpの要否) (ファイルシステムのチェックの順番)」という内容になるようです。この場合、・読み書き可能な設定にするので、マウントオプションはrw、・ダンプはしないので0、・ファイルシステムのチェックの順番は/(ルートファイルシステム)が1なので、その後にするため2以上に設定します。
ユーザーの追加、削除、内容の変更は、以下の要領で行います。スーパーユーザーで作業します。
ディスク全体の使用状況を確認するにはdf -hコマンドを使用します。
# df -h[ENTER]
これで、画面に「(デバイスノード) (全体の容量) (使用している容量 (空き容量) (空き容量の割合) (マウントポイント)」が全てのディスクについて表示されます。
# ncdu /[ENTER]
これで、画面に「(使用している容量) (ディレクトリ)」が全てのディレクトリについて表示されます。矢印キーでサブディレクトリの情報も見れます。引数を省略するとカレントディレクトリ以下の情報が表示されます。
あまりにも基礎的すぎますが、まとめておきます。コピー、移動、削除のコマンドがぞれぞれ別とか、引数の属性が変わると動作が変わるとか、結構わかりにくいんですよ。
ファイルの操作には以下のコマンドを使用します。
# cp (コピーするファイルのフルパス名) (コピーする先のディレクトリのフルパス名)[ENTER]
これで、ファイルがコピーされます。
# cp (コピーするファイルのフルパス名) (コピーする先のファイルのフルパス名)[ENTER]
とすると(1)コピー、(2)コピー先ファイルの名称変更の二つの作業が一度にできます。
# mv (移動するファイルのフルパス名) (移動する先のディレクトリのフルパス名)[ENTER]
これで、ファイルが移動されます。
# mv (名称変更するファイルのフルパス名) (新しいファイルのフルパス名)[ENTER]
で名称変更できます。ファイルのディレクトリは同じでなくても構わないので、(1)移動、(2)名称変更の二つの作業を一度にすることも可能です。
# rm (削除するファイルのフルパス名)[ENTER]
これで、ファイルが削除されます。
ファイルの操作には以下のコマンドを使用します。
# mkdir -p (作成するディレクトリのフルパス名)[ENTER]
これで、ディレクトリが作成されます。-pオプションで途中のサブディレクトリも作ってくれるので、便利だと思います。-m 0755といったオプションを指定するとアクセス権限も同時に指定できます。
# rm -rf (削除するディレクトリのフルパス名)[ENTER]
これで、ディレクトリが削除されます。確認なしに全部ばっさり削除されます。-rfを-riにすると、アイテムごとに削除する前に都度「消すかどうか」確認を求められます。rmdirは、空のディレクトリしか消してくれないので、使える機会は少ないと思います。
# cp -R (コピーするディレクトリのフルパス名) (コピーする先のディレクトリのフルパス名)[ENTER]
これで、指定したディレクトリがコピー先のディレクトリにサブディレクトリやファイルごとコピーされます。
# mv (移動するディレクトリのフルパス名) (移動する先のディレクトリのフルパス名)[ENTER]
これで、ディレクトリが移動されます。なお、移動先のディレクトリが存在しない場合は、名称変更(移動元のディレクトリの内容が移動先のディレクトリに移動して元のディレクトリは削除される)になるので、注意が必要です。
# mv (名称変更するディレクトリのフルパス名) (新しいディレクトリのフルパス名)[ENTER]
これで、ディレクトリ名が変更されます。なお、変更後の名前のディレクトリが存在する場合は、そのディレクトリの下への移動になるので、注意が必要です。
# ls -l (内容を表示するディレクトリのフルパス名)[ENTER]
これで、ディレクトリの内容が表示されます。
# cd (変更先のディレクトリのフルパス名)[ENTER]
これで、カレントディレクトリが変更されます。
# pwd[ENTER]
これで、カレントディレクトリが表示されます。
なお、このページを書くに当たって、以下の記事を参考にしました。
(2018年 9月15日 記)