Old: Ver.1 - 3: Casperカートリッジの利点と解説
English /
Casper Cartridges,
kameda-lab.org
2010/11/24f, (2012/10/10)
最新版について
Ver.3シリーズより新しいCasper Cartridgeがあります。
下記からアクセスしてください。
概要
USBメモリスティックを使って、Ubuntu10.04LTS/Desktop/日本語Remix環境をディスクレスで構築します。
このとき、Unified File SystemのPersistent fileを導入するので、作業記録を取ることができます。
また、このPersistent fileが入れ替えられることを利用して、様々な「カセットポン」な環境切り替えを実現します。
この置き換えることを前提としたPersistent file(実際にはcasper-rwというファイル名です)のことを、
ここではCasperカートリッジと呼称します。
本プロジェクトは筑波大学大学院システム情報工学研究科知能機能システム専攻の、
「知能機能システム実験II」
その他の講義の受講環境構築の一環として2010/09以降、亀田能成が手がけています。
詳細
CasperカートリッジでOSをブートさせる利点
- USBメモリスティック自体はFAT32にしておくことで、Windowsからの操作性も確保してます。
- USBメモリスティック上にUbuntu実行時のデータ保存領域(casper-rwというファイル名のpersisten file)を確保することで、パソコンを起動・終了しても継続して作業可能です。
構築されるUbuntu10.04LTS/Desktop環境は、通常のHDDインストールと使い勝手が変わりません。
(4GB総容量のUSBメモリスティックの場合、ユーザが保存に使える領域は初期状態で3GBです。)
- USBメモリスティックさえ持ち歩けば、USBブート可能なマシンがあればどこでも作業を継続できます。
様々なCasperカートリッジの利点
- 様々なアプリケーションをソフトウェア的に完全に動作するはずの環境で提供することができます。
(あとはハードウェアさえ同一なら隅から隅までまったく同一です。)
- 例:OpenCV 2.1.0のコンパイルや実行、さらに様々なサンプルプログラムをコンパイルして実行できる環境を提供します。
- 例:ARToolKit (Ver 2.7.21)をコンパイルして、あとは標準的なUSBカメラさえあれば実行できる環境を提供します。
- 例:PTAM (r144)をコンパイルして、あとは標準的なUSBカメラさえあれば実行できる環境を提供します。
想定される環境
Casperカートリッジを導入すると便利になると想定される用途としては、以下のようなものが挙げられるでしょう。
- Ubuntu10.04LTS/Desktopの勉強と試用。
使用感は通常のUbuntu10.04LTS/Desktopと同じです。
USBメモリスティックだけで動かせる環境構築はこれからの標準になると思われます。
(正確には、これからはリムーバブルメディアだけで計算機を動作させ利用する環境が普及していくと考えています。)
(このWebページの作成や、2010/9以降の授業用のプログラミングなどは全て実際にこの環境で書いてます)
(2年前ぐらいからまともに使えるようになりつつはありましたが、、いろいろといよいよ機が熟したかな、と。)
- 快適なユビキタス動作
必要なのはUSBブータブルなPCだけ。HDDには触りません。
大学・研究所・自宅・Internet Cafe・他人のPC、どこででも使えます。
起動もLive CD系に比べると高速です。
2GB以上(4GB以上推奨)のUSBメモリスティックなら、データ保存領域も確保可能。
USBブートでUbuntu実行中にUSBメモリスティックの元のFAT32エリアのファイル群を参照することも可能です(書き込みはできませんが)。
(私はCF-Y5, CF-Y8, Dynabook-SS-RX2, Fujitsu Desktopパソコンなど行く先々でハードウェアを乗り換えつつ作業継続中。)
- 研究成果のデモ・ベンチマーク
ソフトウェア環境に関して、頒布時にライブラリ・OS込みで同一条件を保証できます。
(必要なライブラリやパッチが導入出来なくて動かなかった、なんて言わせません。)
(bashのヒストリやウェブブラウザの履歴とかも残せるので、「居抜き」感覚ですね)
ソースを開示しなくてもバイナリ+実行環境を確実に一般に提供できます。
今をときめく(?)アプリも、この形でなら提供が簡単。
- OpenCV 2.1.0 の勉強
OpenCV向けに、dc1394(IEEE1394-cameera), ffmpeg, V4L/V4L2など導入済。
OpenCV 2.1.0 で顕在化しているSURFのバグ(2010/09/20現在)にも対応。
また、svnでのダウンロード・コンパイルにも対応(やり方のみ、インストールはOpenCV 2.1.0)。
- Eclipse IDE, ARToolKit, PTAM!
ディスクイメージをカートリッジ感覚で取り替えれば、インストール作業なんか一般ユーザには必要ありません!
(もちろん最初に誰かが試して準備する必要はありますが。今回は私がいくつか準備してみました)
利点と欠点
[利点]
- vmwareなどのバーチャルPCと違って、ハードウェア上で直接動作します。
- OS・デバイスドライバ・ライブラリに強く依存するようなプログラムでもソフトウェア的には端から端まで全く同じ実行環境を保証できます。
- ありがちなバーチャルPCと違って、実行に当たって他に何も必要としません。
- hardwareを乗り換えていくのも簡単で、単にUSBメモリを持ち歩くだけで環境を全て移動できます。
- マシンをシャットダウンした時点でcasper-rwのコピーを取っておけば、OS・デバイスドライバ・ライブラリからユーザ設定・シェルのヒストリ・ブラウザの履歴に至るまでの完全なバックアップを保存できます。
[欠点]
- バーチャルPC一般に言えることですが、スパイウェアなどが仕込まれている危険性があります。
(ここでは偽造防止にmd5チェックサムを用意してます)。
(もちろん私から故意にそういうのを仕込むことはありませんが、ご注意ください。)
- バーチャルPCと違って、起動にUSBメモリスティックという実体を使うので、同時に複数稼働させるにはその分だけUSBメモリスティックを用意する必要があります。
- USBメディアからブートできるように、ターゲットPCのBIOSの設定を変更する必要があるかもしれません。
(BIOSが出す起動画面で boot menu が選べるようなPCならおそらく設定をいじる必要はありません。単にそこからUSBメモリスティックを選んで起動してください)
- 用意できるOSはUbuntu 10.04 LTSのみです。
(原理的にはUSB書き込みソフトウェアが対応していて、かつcasper(persistent file)に対応しているOSなら同じことができます。私は面倒なのでUbuntu以外はごめんなさい。)
USBメモリスティックの内部構成
ここで作成しているUSB-bootableなUbuntu linuxでは、USBメモリスティック上のcasper-rwという巨大ファイルが、実際にはOSのルートファイルシステムになります。
(casperに関してこれは正確な表現ではないのですが、面倒なので詳細はunified file systemとかaufsとか各自で勉強してください)
ここでは、このcasper-rwを「Casperカートリッジファイル」と呼んでいます。
このcasper-rwを入れ替えるだけで、様々な作業状態を実際にすぐ体験することができるわけですね。
以下では4GBのUSBメモリスティックを利用した場合の説明をします。
大別して、Ubuntu distributionのCDROMイメージに相当する多数のファイル・ディレクトリ群(合計716MB)と、巨大な単一ファイル("casper-rw")とに分けることができます。
この casper-rw が、persistent fileで、Ubuntu linux起動後のルートファイルシステムに相当します。
なお、一見普通のFAT32構造に見えますが、ブート可能にするために、実際の書込には(最初だけ)特別なソフトウェアを使います。
4GBでの例
USB 4GB (FAT32)
| Ubuntu linux利用時(1層目)
| Ubuntu linux利用時(2層目)
|
README.diskdefines
Uni-USB-Installer-Copying.txt
Uni-USB-Installer-Readme.txt
autorun.inf
casper/
dists/
install/
ldlinux.sys
md5sum.txt
pics/
pool/
preseed/
syslinux/
ubuntu
wubi.exe
|
716MB
|
Ubuntuディストリビューションの
CDROMイメージ(iso)から展開されたファイル・ディレクトリ群
(Ubuntu linux稼働中はリードオンリーとしてなら参照可能)
|
/cdrom/ で参照可能
|
-無-
|
casper-rw
|
3GB
|
Persistent file
(これをカートリッジ感覚で差し替え)
(Ubuntuの / に相当する)
|
/ に化けて読み書き両方可能
|
他
kameda.txt
|
残り
|
ユーザが好きにファイルなど置いてよい
(空きが3GB以上あれば予備のcasper-rwをrenameして保存など)
(この例では"kameda.txt"は他と関係ないファイル)
(Ubuntu linux稼働中はリードオンリーとしてなら参照可能)
|
-無-
|
その他
私が直接書いた分についての再配布は自由に行っていただいて構いません。
ただ、サンプルコードなどはそれぞれに権利関係者がおられますので、そちらのほうを遵守してください。
【USBメモリスティックによる運用の注意点】
- データ保存領域を設定してUbuntu linuxを使用する場合、
間違っても途中でいきなり電源切ったりUSBメモリを抜いたりしてはいけません!
- Live CD系と違って、逐一作業をcasper-rwに書き込んでます。
USBメモリスティックが途中で抜けちゃったりするとかなりの確率でダメになります。
ダメになると、サルベージはまずできません。
(なんで知ってるかって? USBカメラ抜こうとしたら手が当たって隣の…)
- それでもUSBメモリスティックがたまに抜けちゃうの…という人は、もう1本USBメモリスティックを買って、
そっちにext4(ジャーナリング!)でファイルシステムを作ってそちらで作業するようにしましょう。
その上で、作業の途中で端末上から
と時々打つようにしましょう。
- さらにクラッシュの確率を下げるには、例えばUSBメモリスティックが /dev/sdc1 に来てるのなら、作業開始前に
(mount コマンドとかで確認してね)
$ sudo mount -o remount,sync /dev/sdc1
|
とかすると若干は幸せかも。
亀田能成 (KAMEDA, Yoshinari) kameda[at]iit.tsukuba.ac.jp, kameda[at]ieee.org