2015年8月4日火曜日

ChromebookにWindowsって必要?

第一部:お話。

機能面のみから判断すれば答えは「NO」です。Chrome Web Storeのアプリはとても充実していて、ワープロ、表計算、プレゼン、メール、カレンダー、時計(世界時計、ストップウォッチ、アラームを含む)、電卓、キンドル、メディアプレーヤーなどなど、大抵のことはChrome OSのみでこなしてくれます。何と、SSHやLaTeXもフルバージョンで使えます。

セキュリティやメンテナンスに難が出るのですが、それを承知の上でしたら、LINUXアプリ、Android Apps、16ビットDOSのアプリ(ゲーム)がChrome OSの下で一通り使えます(Crouton, ARC Welder, DOSbox)。これだけカバーしていればWindowsなんて要るのかなぁって思いません?

ビジネススクールでITを講義すると。。。実は「YES」なんです(-^-)>

幸い、ワード、エクセル、パワポはオンラインバージョンが出ましたので、Chrome OSから使用可能です。全く興味ありませんが、OneNoteもあります。でも、アクセス(パーソナルデータベース)が無いんです。アメリカの学部のデータベースの講義ではアクセスがポピュラーです。最近は、MySQLやORACLE DB Expressなど無料DBMSも用いられるようになってきたのが救いです。

え?なぜそっちを使わないのかですって?使わないのではなくて、大学のIT部門とのやり取りがとても面倒なので、「使えない」、というか講義やラボで使うためにもう少し時間が必要なのです。

というわけで、サブノートを持ちこんで講義をしたければ、Windowsでアクセスを動かす必要性に迫られます。幸い、ここにCroutonのChroot LINUXへVirtualBoxをインストールする方法が詳しく書かれています。


じゃあ問題ないじゃないって?いえいえ。はっきり言います。「おすすめできません。」やる価値はとても低いと思います。

前に述べたように、実用上必要性は低いですし、とにかく面倒くさいんです。単にインストールするだけって話ではありません。興味のある方は第2部をどうぞ^^

ちゃんと動きますし、それなりに使いモノになります。でも、ChromebookでWindowsを本格的に使おうと考えているのであれば、同じ価格帯でWindowsノートPCが買えます。そこにChromeをインストールして使った方が賢明です。

Windows 7上でエクスプローラとアクセスが走っているスナップを少し^^






第2部:技術。

まず、VirtualBoxの話から。これは仮想マシンを動かしてくれる便利なソフトで、あらゆる場面で重宝しています。オラクルが無料で提供しています。LINUX上で他のdistroを動かしたり、Windowsを動かしたりできます。

今回もVirtualBoxのお世話になりました。即ち、CroutonのChroot(UBUNTU 14.04)環境でVirtualBoxを用いて、そこでWindowsを走らせました。私のChromebook (Acer C720)はCeleron CPUに2GB RAMですから、Windowsマシンとしてはちょっと厳しいです。そして、SSDは16GBしかありません。

なので、まず、どのような形でWindowsをChromebookで走らせるにせよ、ディスク容量を増やすことが必要です。Croutonのchrootのように、この16GB内蔵SSDへ環境を構築することは不可能です。

次に、LINUX版(というかUNIX系OS上の)VirtualBoxは専用カーネルモジュール(仮想のデバイスドライバ)を幾つかロードします。でも、Chromebookのカーネルは、主にセキュリティの都合上、外部のカーネルモジュールのロードを許さない仕様になっています。これが、VirtualkBoxをインストーラでインストールするだけでは動かない理由です。アプリ自体は立ち上がりますが、ゲストOSをスタートさせようとするとモデュールがありませんと文句を言われて先へ進みません。

Chrome OSのカーネルのオプションを弄り、モデュールのロードを許す設定にした上で、ヘッダファイルを生成するために、カーネルのソースをダウンロードして、カーネルとモジュールをコンパイルする環境を整える必要があります。そこでヘッダファイル(とカーネルイメージ)を生成して、それをインストールします。その後にようやくVirtualBoxをインストールできます。面倒でしょ^^

更に面倒なのは、OSがアップグレードされる度にヘッダファイルを生成する必要があるということです。

この作業、実はLINUXカーネルコンパイルの作業そのものなので、かなりディスクの容量がいります。勿論、作業終了後はコンパイラーが生成した中間ファイルの類を掃除すればいいのですが、最大で2GB強のスペースが必要です。勿論、コンパイラー、make、gitなど必要なツールのインストールも必要です。さらに、WindowsのゲストOS構築に20GBくらいのディスク容量が必要です。お分かりでしょうか。VirtualBoxとそのWindowsゲストOSだけで22GB強のディスク容量です。

ディスクの増量ですが、大きく2つの方法があります。一つは内蔵SSDを大容量のものへ交換すること。Acer C720については、オンラインで記事が沢山見つかります。この問題点はメーカの保証が無効になることです。当然、ディスクの交換に際してケースを開けなければいけませんが、そのためにネジに貼ってあるシールを剥がす必要があります。そのシールを剥がした時点で保証が無効になるという訳です。もう一つは外付けのディスクを追加すること。幸い、Croutonはchroot環境を任意のパスに構築することをサポートしています。今回はこれを採用しました。

とは言え、私は32GB USBメモリースティックを一つしか持っていませんし、それも使用中です。16GBのスティックは余っているのですが、これでは足りません。chroot環境そのもの、VirtualBoxインストール用カーネルコンパイル環境、そしてWindowsゲストOSに合わせて最低25GBくらい、即ち32GBのスティックが必要です。

暫定的処置として、9年前のラップトップに入っていた60GB HDDをUSBのケースに入れたものを用意しました。USB2.0なので遅いですが、ここは動作確認を行うだけですから、これで十分です。


このディスクの上に新たにchroot環境を構築(Ubuntu 14.04 with LXDE)。そこへカーネルソースをダウンロード、コンパイル。生成したソースとカーネルイメージをChrome OSの環境へインストール。そしてVirtualBoxをインストール。講義を行う教室やラボと同じ環境を整えるために、Wiodows 7を選択。アクセスは少し軽いとの理由で2010を選択。DreamSparkを利用して無料ダウンロード(大学勤務の特権^^)。そして仮想マシンの構築。Windows 7とアクセス2010をインストール。やっぱり。ここまでで既に26GB使用。カーネルコンパイル時は2,3GBは膨らむ。32GBのスティックだとヤバかったかもしれません。

USB2.0、しかも9年前のHDDなので速度を心配していましたが、案外スムースです。初期XP、又は98搭載PCにむりやりWindows 7を入れた感じかそれより少しマシなくらいです。悪くありません。

あとは公費(講義やラボで使うので)で64GBの小さなUSBスティックを買って、それにこのHDDの中身をコピーして使えば、Chromebookの持ち運びに支障をきたさないし、スピードも少し改善されると考えています(こんな感じ)。


2015年8月2日日曜日

Acer Chromebook C720その後、サブノートとして

私の居住区ワシントン州チニーは猛暑で外に出る気になりません。皆様、どうお過ごしでしょうか。

Chromebookについて、以下のブログ記事でご紹介させて頂きました。以来、サブノートとして約一年、とても重宝しています。

http://dri-hitorigoto.blogspot.com/2014/08/acer-c720-chromebook.html

職業柄?どうしてもウェブブラウザーだけでは事足りない状況がありまして、Croutonを用いてフルバージョンLINUX (Ubuntu 14.04 Trusty with LXDE)をインストールして使用しています。使い心地は「とてもいい」ですよ^^

本来のChrome OS (Google Chromeウェブブラウザー)のタブの一つとして使用できますので、フルバージョンLINUXを使っている状態と殆ど代わりありません。こんな感じです


どこがChrome OSでどこがCroutonかお分かりでしょうか(よく見れば自明ですが^^)?

ファイルはDownloadフォルダーを介して共有です。LINUX側へネットドライブアクセス可能なソフトをインストールすることも当然可能ですが、私は必要性を感じなかったのでやっていません。Chrome OSのファイルマネージャで必要なファイルをDownloadフォルダーへ揃えることで対処しています。

Chrome Web Storeのアプリも充実していまして、書類作成、ノート、メディアプレイ、プレゼンスライド、ゲームなどなど、大抵のことはChrome OSのみでこなせます。限定的ではありますが、オフラインでの使用(メールを書いたり、キンドルを読んだり、ビデオを見たり)もそこそここなせます。多くの人にとって懸案事項であるマイクロソフトオフィス(特にワードとパワポ)もマイクロソフト自身がオンラインアプリを無料提供してくれていますので、大きな問題はありません(オンラインのみであることと、OneDriveからのアクセスのみという制約を除けば^^)。

何が足りない?

いろいろです^^簡単に羅列してみますと、私の場合はこんなのを従来のLINUX環境に頼っています。

  • Skype
  • モデリング、プロトタイピング
  • 画像処理、ダイヤグラムやフローチャートなどのお絵かき
  • VLC
  • プログラミング
  • パーソナル関係データベース
え?殆どChrome OSでできるじゃんって?そうなんです。拘りや柵を捨てて機能のみに着目して考えるとChrome OSで殆どできちゃうんですよ。逆に言えば、Chrome OSって「たかが」ブラウザーのみのシステムではなくて「されど」ブラウザーのみのシステムなんですよね^^ 

近未来はこんな感じでクラウドとの融合でシンクライアント化が進んでいくことが実感できます。

しかし、今は今。拘りや柵を無視するわけにはいかない「大人の事情」が。。。。

そんな方にCroutonはとても重宝するアプリ(Chrome OSから見た位置づけ。勿論、Chrooterってことは承知の上でこう呼んでます。)です。インストールは簡単ですし、関連オンライン記事も沢山ありますのでそれら(オリジナルはここ:https://github.com/dnschneid/crouton)を参照してください。今回はこの先の話を少し突っ込んでしたいと思います。

まず最初に。。。。そもそもChromebookとはウェブブラウジング中心のITライフに最適な「サブ」マシンであるということを強く認識する必要があります。それ故に超低価格(250ドル以下)でこれだけの性能(高速レス、長時間バッテリー、軽量など)を手にすることができます(Pixelなどの例外あり)。また、グーグルアカウントと強くひも付けされているが故(即ち、クラウドであるが故)の高セキュリティであり、自動アップデートなどによる低メインテナンスです。

では本題へ。。。。

Croutonについて。これを用いてフルバージョンLINUXを入れるということは本来の高セキュリティ、低メインテナンスの利点を失うことになるということを認識する必要があります。ディベロッパーモードへの変更による直接アクセスの危険性、任意アプリをインストールできることによるマルウェアへの危険性、パスワードなしsudoを許容するshellアクセス(これは簡単に改善できます)、などなど。Chrome OSはCrouton拡張までのバックアップ、アップデートを自動的かつ包括的に行いますが、Chrootそのものはその対象外です。従って、ここは自分で面倒を見なければいけません。自分がサブノートに求める役割において、これが本当に必要かどうか、じっくり検討することをお勧めします。最後に、もしインストールを決定されたなら、Crouton拡張をインストールして「タブ」の一つとしてLINUXを操作できるようにされるべきです。(でないと、恐らくそんなに使いモノにならないでしょう。)

なぜLXDE?Unityなど3D GUIは重いので避けました。それだけです^^ LXDEは原始的ですがよく作り込まれていてなかなかの使い心地ですし、何せとても軽い。なので、サクサク感がChrome OSと同じ(もしくはそれ以上)くらいになります。専有ディスク容量もGnome+Unityと比べて小さくてすみます。

LINUXアプリについて。Chrome OSで困難又は不可能かつ必要最小限のアプリをインストールすべきです。私のChromebookはAcer C720でしてIntel Haswell CelronデュアルスレッドCPU、2GB RAM、16GB SSDしかリソースがありません。現在のPCの基準としては明らかに貧弱です(それ故に超低価格の170ドル^^)。なので、私はLibreOfficeなどの重いアプリもなるべくご遠慮願う方針でアプリを選択しています。

現在のインストールアプリ:Skype4.3, GIMP2.8, Freemat4.0, VLC2.1.6, R3.0.2, dia0.97.2, SQLiteBrowser2.0.  この他にプログラミングツールを少し(LINUXやそのアプリのインストールの一部として付随してきたものばかり)。vi, make, gcc, g++, perl, python, bashなど。

メインのプログラム言語がCやC++で、古典的なvi+makeの開発スタイルでよかった^^

私は研究でRやOctave/Freematを使うことが多く、Chromebookでは主にデモ、講義用として使います。なので、とりあえず動けば問題ありません。

GIMPやdiaは画像作成ツールです。Chrome Web Storeでもいくつかあるのですが、グーグル以外のアプリは(主にセキュリティの観点から)極力使わないようにしていることと、RやFreematで作成したグラフなどをその場で加工したいことからこれらを使用しています。写真の加工もGIMPだときめ細かくできますし^^

VLCはどうしても手放せません^^ 実質、どんなメディアファイルも処理できますし、簡単な録画録音、ネットストリーミングなど、とても重宝します。Chrome OS版アプリもあるのですが、フルバージョンと比べると制約が多すぎます。

パーソナルデータベースは講義準備専用です。MS Accessを使うのですが、準備はChromebook上で行い、これ(データベースファイル)をクラウドに上げて、講義の時は教室のPCからMS Accessで使用しています。SQLiteBrowserはシンプル、軽量ではありますが、とても実用的でこのレベルの講義準備には十分です。本来、開発に用いているMySQLを用いてもいい(べき??)のですが、MySQL WorkbenchをラボのPCにインストールする手続きがとても面倒なのと講義で用いるデータベースサーバの面倒をこちらで独立して(しかも口うるさいITの連中と連絡を密に取りながら)見ないといけなくなるので、今は安直にこれで凌いでいます。

最後にスカイプですが。。。これは暫定的処置と割り切っています。現在、ウェブでメッセージのみ可能となりましたし、近々、通話も可能になるでしょう(でないとHangoutsに敗北してしまいます)。LINUX版のスカイプは本当にボロで、どうしようもありません^^ ハングアウトのみを使用したい(事実、可能な限りそうしてます)のですが、オンライン会議はスカイプという「大人の事情」が簡単に許してくれません^^ やれやれ。

ブラウザーはいいんですか?って質問を受けます。インストールしてません。だって、Chrome OSのいいブラウザーがこんな風に(ブラウザーで画像を取ってGIMPで加工ってシナリオ^^)上手く使えるじゃないですか?


日本語化について。LXDEはX11ベースなので、基本的にXのローカリゼーションと同じです。省力化(サボりとも言います^^)?を理由にパッケージをapt-getを使ってインストールしたのですが、余計なものを沢山入れてくれます。お陰で数百メガのディスクが不要品で埋まってしまいました^^ 現在の感覚でいうとこんなサイズは何でもないのですが、ここでは16ギガのスペースを本体のChrome OSと共存、しかも、向こうさんはリカバリーバックアップなどで本来のサイズの倍(Chrome OSシステム本体が4GBくらいでその倍の8GB)のスペースを取ってますし、アプリデータなどの容量に最低1-2GBは割り当てたいですし、なんだかんだで、Crouton chrootインストールは3GB以下に抑えたい(2,3GBのワークスペースが確保できる^^)のが実情です。今のところ、chroot全体で2.2GBくらいですし、面倒なのでスリム化をやってませんが、必要なフォント、ロケール、FEPなどのみだと100MBも要らないでしょう(つまり、200-300MBくらいディスクを空けることができるということ)。ibus+mozcを使ってます。fcitxは考えたのですが、今回はUbuntu14.04ベースということなのでibusの方が相性がいいかなぁ(というか、新しいことを勉強しなくてすむ^^)と思い、あえて古い技術にとどまりました^^

無駄な数百メガのディスク容量を気にしないならばインストールと設定は比較的簡単に済みます。アプリによっては多少の小細工がいります(例えばdiaはdia-normalをdia-normal-integratedの代わりに立ち上げる必要があるなど)が、それはUNIX系のシステムのオチャメということで大目に見るということで^^

スカイプのメッセージで日本語がXでした(-^-)> しかし、前述のように暫定的インストールと割り切っていまして、ネットには対策が散見されるようですが、特に何もしていません。

使用感。外出用サブノートとしてはとてもいいです。100%満足しています。通常、リソースが必要な大きな仕事はメインマシン(インテルNUC)でやりますし、何より、何かあった場合は低価格サブノートの買い替えのみで対処できるのがいいですね。勿論、大事なデータは全てクラウドに上げているという条件つきですが。