新学期である。入学、
本特集の最終回を飾る今回、
USBデバイスでFreeBSDを使う
フラッシュメモリやハードディスクなど、
ここで、
- 「Minimal」
でインストールした直後は257Mバイト - 「X-user」
でインストールした直後は596Mバイト - 筆者の最低限のLaTeX環境
(OpenOffice含まず) で1. 8Gバイト - 筆者のFreeBSD常用環境で6.
8Gバイト
などと、
これらと比較して、
- ソフトウェアの追加が可能
といった
- まったく普通の使い方でデータの書き込みができる※3
- 自分が常用している
「俺的環境」 を他人に丸ごとコピーしてあげられる
といった
USBメモリでFreeBSD[インストール編]
!警告!
本記事で紹介するやり方は、
「あとで泣くのはあなたですから」
今回試したUSBストレージデバイスは、
- Transcend 4Gバイト USBフラッシュメモリ
- Kingmax 4Gバイト USBフラッシュメモリ
- Kingston 4Gバイト MicroSDカード + MicroSD USB2.
0アダプタ
と、
- Seagate 500Gバイト 2.
5" SATA HDD + センチュリーマイクロ USB 2. 0 アダプタ
である。

テストの母艦は筆者手持ちの2台のノートパソコン、F2
を押してBIOS設定画面を表示したところである。起動順位2番目に、

このように、
インストールは
図3は

市販されているUSBメモリは、D
キーを1回押して一旦パーティションを削除した後、A
キーを1回押して全領域をFreeBSDで使うことにする。Q
キーで抜けるときに、


次に、
- ディスクの無駄を無くしたいという意味では全ての領域をルートパーティション
(da0s1a) に取りたい
ところだが、
- ルートパーティション
(/) にはSoft Updates※7がかからないため、 全てをルートパーティションに割り当ててしまうと、 スピードが低下する
のだ。そこで、
インストール後は、
- 「Time Zone」
: UTC以外にセット) No)→Japan (JST) - 「ネットワーク
(特にホスト名) の設定」 : 「DHCP」 を試してみるのが妥当だろう。 - 「マウス」
: PCの内蔵マウスの場合、 「Options」 に 「-3」 をセットしておいて 「Enable」 でマウスカーソルが動くはずである。
USBメモリでFreeBSD[使用編]
まず、
# X -configure
と入力して生成される /root/
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbLayout" "jp"
Option "XkbModel" "jp106"
Option "XkbOptions" "ctrl:ctrl_ac"
EndSection
また、
Driver "intel"
を、
Driver "vesa"
に変更することで動くようになる。このように、
図6が、
#!/bin/sh
kterm -sb -km euc &
exec fvwm2

インストールをしてみた感想として、
これは、
# rm -rf /var/tmp
# mkdir /usr/tmp
# chmod 777 /usr/tmp
# ln -s /usr/tmp /var/tmp
USBハードディスクでFreeBSD
(問題なく使えるものの、)
…と思いきや、
umass0: <JMicron USB to ATA/ATAPI Bridge, class 0/0, rev 2.00/1.00, addr 2> on uhub6 da0 at umass-sim0 bus 0 target 0 lun 0 da0: <ST950032 5AS SDM1> Fixed Direct Access SCSI-2 device da0: 40.000MB/s transfers da0: 476940MB (976773168 512 byte sectors: 255H 63S/T 60801C)
この現象をよく観察してみると、
- ハードディスクが回転しはじめるまでに、
8秒 - 認識結果が表示されるまでに、
さらに4秒
と、
単純に待ち時間だけの問題なので、

ところが、
そこで一計を案じて、
- USBフラッシュメモリと、
USBハードディスクとを2枚挿し、 - フラッシュメモリからkernelを起動して、
- 認識するまで十分
(15秒とか) 待って/usr、 /var、 /tmp (と/homeと) はハードディスクのものを利用する
という戦略を試したところ、

具体的な手順は以下のとおりである。
1. USBフラッシュメモリに、「Minimal」で7.1-RELEASEをインストールする
2. USBハードディスクに、通常使用する(「X-Kern-Developer」等)7.1-RELEASEをインストールする。パッケージもフルインストールする
筆者は、
USBフラッシュメモリ | |
/dev/ |
512Mバイト |
/dev/ |
3. |
USBハードディスク | |
/dev/ |
16Gバイト |
/dev/ |
2Gバイト |
/dev/ |
2Gバイト |
/dev/ |
440Gバイト |
3. USBフラッシュメモリのfstabを書き換える
動いているFreeBSDマシンを用意して、
# mount /dev/da0s1a /mnt (フラッシュメモリ) # mount /dev/da1s1a /mnt/mnt (ハードディスク)
続いて、
# cat /mnt/mnt/etc/fstab >> /mnt/etc/fstab # ee /mnt/etc/fstab
フラッシュメモリとハードディスクと、
- フラッシュメモリー(da0s1)からは、
/をマウント - ハードディスク(da1s1)からは、
/home、 /tmp、 /usr、 /varをマウント
するように書き換える※12。
# Device Mountpoint FStype Options Dump Pass#
/dev/da0s1a / ufs rw 1 1
/dev/da0s1d /usr ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
# Device Mountpoint FStype Options Dump Pass#
/dev/da0s1b none swap sw 0 0
/dev/da0s1a / ufs rw 1 1
/dev/da0s1g /home ufs rw 2 2
/dev/da0s1e /tmp ufs rw 2 2
/dev/da0s1f /usr ufs rw 2 2
/dev/da0s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
# Device Mountpoint FStype Options Dump Pass#
# at USB memory (da0s1)
/dev/da0s1a / ufs rw 1 1
# at USB HDD (da1s1)
/dev/da1s1g /home ufs rw 2 2
/dev/da1s1e /tmp ufs rw 2 2
/dev/da1s1f /usr ufs rw 2 2
/dev/da1s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
4. フラッシュメモリの/etc/rcに、時間待ち命令を追加
ファイルシステムをマウントする前に、
# ee /mnt/etc/rc
システムが起動を待っている間にハードディスクが反応して、
# Run these after determining whether we are booting diskless in order
# to minimize the number of files that are needed on a diskless system,
# and to make the configuration file variables available to rc itself.
#
echo "Waiting for 15 seconds."
sleep 15
. /etc/rc.subr
echo "Loading configuration files."
load_rc_config 'XXX'
5. 再起動
一応礼儀として、
# umount /mnt/mnt # umount /mnt # shutdown -r now

図9のように、
[おまけ]携帯電話でFreeBSDを起動する
ハードディスク上のFreeBSDを呼び出すために使ったメモリはMicro SDカードなので、
FOMAは
umass0:on uhub3 da0 at umass-sim0 bus 0 target 0 lun 0 da0: Removable Direct Access SCSI-4 device da0: 1.000MB/s transfers da0: 3780MB (7741440 512 byte sectors: 255H 63S/T 481C)
この状態でFreeBSDを再起動すると、


おわりに
今、
普通、
活用方法も知恵次第で無限である。たとえばチューンナップしたFreeBSD携帯環境を用意して、
無限の可能性を秘めたFreeBSDの世界へ、