はじめに
先日、OpenBSD 6.0 で Xfce4 日本語デスクトップ環境の構築 をしました。
この時はデスクトップ環境のみで、その他のソフトを入れていませんでした。そこで GNOME とか KDE4 とか LibreOffice 等々を入れてみようとしたのですが、どうも /usr/local の空き容量が足らなさそうです。
pkg_add でパッケージをインストールするなら /usr/local には大きなディスク容量を割り当てておくべきでした。
そこで新たにディスクを追加して、/usr/local の中身を移してみます。
ディスク操作の公式FAQは http://www.openbsd.org/faq/index.html の Disk Setup を参照
現在のディスクのパーティション状況
8GB のディスクで初期インストールを行ったところ /usr/local には 2GB が割り当てられていました。
以下は disklabel -h で現在のディスク wd0 のパーティション情報を表示した様子です。
# disklabel -h wd0
...
duid: 1234567890abcabc
...
16 partitions:
# size offset fstype [fsize bsize cpg]
a: 131.1M 64 4.2BSD 2048 16384 1 # /
b: 182.1M 268480 swap # none
c: 8192.0M 0 unused
d: 201.7M 641504 4.2BSD 2048 16384 1 # /tmp
e: 212.8M 1054560 4.2BSD 2048 16384 1 # /var
f: 951.1M 1490304 4.2BSD 2048 16384 1 # /usr
g: 542.6M 3438080 4.2BSD 2048 16384 1 # /usr/X11R6
h: 2150.1M 4549376 4.2BSD 2048 16384 1 # /usr/local
i: 1044.4M 8952832 4.2BSD 2048 16384 1 # /usr/src
j: 1340.8M 11091808 4.2BSD 2048 16384 1 # /usr/obj
k: 1432.5M 13837856 4.2BSD 2048 16384 1 # /home
ディスク追加からファイルシステム作成まで
新たに VMWare で 8GB の IDE のディスクを追加し再起動を掛けます。
追加したディスクは wd1 として認識されました。
disklabel -h で見てみるとこんな感じになっています。
# disklabel -h wd1
# /dev/rwd1c:
type: ESDI
...
duid: 0987654321xyzxyz
...
16 partitions:
# size offset fstype [fsize bsize cpg]
c: 8.0G 0 unused
これを disklabel -e wd1
で編集し以下のように d パーティションの行を追加しました。
d にディスク全体を割り当てています。
fstype は 4.2BSD とし、fsize、bsize、cpg は wd0 の情報を真似ました。
...
# size offset fstype [fsize bsize cpg]
c: 16777216 0 unused
d: 16777216 0 4.2BSD 2048 16384 1
パーティション設定できたら newfs でファイルシステムを作成します。
# newfs wd1d
既存ファイルシステムから新ファイルシステムへのファイルの移動
次に /usr/local の中身を新しいディスクにコピーします。
念のためにシングルユーザモードで行いました。
新しいディスクを /mnt に仮マウントしておいて、find と cpio を使って /usr/local の中身をコピーしています。
# shutdown now
...
#
# mount /dev/wd1d /mnt
#
# cd /usr/local
# find . -print -depth | cpio -pdmu /mnt
...
#
# exit
新ディスクのマウント設定
最後に /etc/fstab の中身を書き換えて新しいディスクが /usr/local としてマウントされるようにします。
...
1234567890abcabc.h /usr/local ffs rw,wxallowed,nodev 1 2
...
以下のようにディスクの所は "duid"."パーティション名" で書かれていますので、disklabel -h の時の情報を元に次のように書き換えます。
...
0987654321xyzxyz.d /usr/local ffs rw,wxallowed,nodev 1 2
...
リブートすると新しいディスク /dev/wd1d が /usr/local としてマウントされるようになります。
まとめ
OpenBSD 6.0 でのディスク追加とファイルシステムの移動について説明しました。
ファイルシステムの引越しは面倒ですが上記の方法で完了しました。
こんなことなら最初からもっと大きなサイズのディスクを使えばよかったかもしれません。
OpenBSD プロジェクトは寄付を募ってます。
詳しくはこちら: http://www.openbsd.org/donations.html