気の向くままに辿るIT/ICT
webzoit.netウェブサイトホームページ
システム開発

古いパソコンの再利用/SOTEC e-one/NetBSDとBSDパーティション

ウェブ造ホーム前へ次へ
サイト内検索
カスタム検索
古いパソコンの活用方法は?

古いパソコンの再利用/SOTEC e-one/NetBSDとBSDパーティション

INDEX

BSDパーティションの作成

$ sudo disklabel wd0

 BSD用にスライスを割り当てたら、次に[disklabel]コマンドを使ってそのスライス内にBSD用のルートパーティションや必要に応じてスワップパーティション、(/usrや/var、/homeなど)各種ディレクトリ用のパーティションを作成することになります。

 インストール時のデフォルト設定では、ルートパーティション及び自動的に計算されたスワップ用パーティションが既に確保された状態になっています。

 このスクリーンショットは、インストール後に[sudo disklabel wd0]を実行したところで、ディスクラベルの作成・編集についてはインストール時にもできますが、インストール後に手動で編集を行う場合には、[sudo disklabel -e wd0]などとしますが、デフォルトでは標準出力への表示、オプション付きでディスクの状態に合わせて自動でdisklabelを更新してくれるmbrlabelコマンドを使うこともできます。

 以下、必要かどうかは別として手作業で編集する場合のヒントを記しますが、実際のところ、disklabelを編集するにあたり必要な情報は、fdisk wd0などとすることで(当該パーティションのプリセット値やサイズ情報を)得ることができます。

 ちなみにeオプション付きで[disklabel]コマンドを実行するとデフォルトでは、環境変数EDITORに登録されたテキストエディタ、未設定であれば、テキストエディタ viでファイルを編集することになります。

 ボリュームラベル(パーティション用のラベル)がaからdまでありますが、

  • aがルートパーティション
  • bがswapパーティション
  • cがパーティションサイズ
  • dがディスク全体のサイズ

 i386(x86)以外の環境では、多くの場合、cがディスクサイズ。

を表わしており、NetBSDパーティションは、以前は、全部で8つ(aからdの使い道は予約済みなのであと4つ)まで作成可能となっており、他にパーティションを作成する場合には、eから順にf,g,hまでを使っていましたが、後に16個(予約済みのaからdの4つを除く12個)まで作成可能となっています。

 仮にボリュームラベルeを使う場合で空き領域がない場合には、必要に応じて

  • ラベルbのsizeを減らして割り当てるか、
  • ラベルbのsizeをそのままにラベルaのsizeを減らして割り当てるなら、その分、ラベルbのoffset位置を(ラベルaで減らした分と)同量減らす方向にズラすか、
  • ラベルaとラベルbの両方のsizeを増減させるなら、ラベルaのsize変更、これに伴うラベルbのoffset位置変更及びsize変更をするか

してラベルbのoffset値+size値をラベルeのoffset値とし、dのsize値までの範囲でサイズを適量割り当てます。

 言い換えると

  • ラベルcのoffset値+size値(パーティションサイズ)の合計値が、ラベルeのoffset値となり、
  • ラベルd(ディスク総容量)の値が、そのラベルeのoffset値よりも大きければ、ラベルdの値が、ラベルeに割り当てられるsize値の最大容量であり、
  • ラベルeの容量は、ラベルeのsize値

となります。

 つまり、offset値とは、各々のパーティションの開始位置であり、size値は、そのままの意味で各々のパーティションの容量を表わしているということです。

 よってラベルaのoffset値+size値の合計値とラベルbのoffset値が同じ値であれば、正常ですが、仮にラベルbのoffset値の方が大きいとなるとラベルaとラベルbの間に無駄な領域がある状態、仮にラベルbのoffset値の方が小さいとなると、それは、ラベルaとラベルbの領域が、重複した(かぶった)状態になっているということになり、そういった状態になっている場合、終了自体はできるものの、disklabelコマンドを終了させる際に重複している旨のWarning/警告が出ます。

 ドライブ名については、IDE/ATAハードディスクの場合、BSD系では、/dev/wd[0-9](Linuxでは、/dev/hd[a-z])、SCSIハードディスクの場合、BSD系では、/dev/sd[0-9](Linuxでは、/dev/sd[a-z])とするのが慣例となっているようです。

 NetBSDでは、IDE/ATAハードディスクを表わすのが、wd、1番目のディスクを表わすのが、0(ゼロ)、よって1番目のIDE/ATAディスク全体は、wd0、また、BSDパーティションにおいてディスク全体を表わすのが、d、デバイスとしては、/dev/wd0d(ブロックデバイス)、[fdisk]実行時の[Disk:]欄にも表示されているように接頭辞rが付いた/dev/rwd0d(キャラクタデバイス)が1番目のIDE/ATAハードディスクのディスク名となっています。

 これは、[dmesg | more]、[dmesg | less]などで探せば、実際にどのように割り当てられているかを確認することもできます。

 尚、/etc/fstab上は、ルートパーティションである/dev/wd0aとスワップパーティションである/dev/wd0bがマウントされるべく登録されています。

ウェブ造ホーム前へ次へ