2016-10-07

FreeBSD-10.3-RELEASE-i386-memstick.imgの構造

dynabook SS SX/15AがUSBメモリから起動できることが分かりましたが、そうであるならFreeBSD/i386のイメージをUSBメモリに書いたものが起動できないのは何故なのでしょうか。FreeBSD-10.3-RELEASE-i386-memstick.imgの構造を著名なバイナリエディタであるHxDで調べてみました。

このイメージはGPTでパーティションを切ったディスクイメージになっていることが分かりました。
  • 最初のセクタはMBRとの互換性があります。MBRの4つのパーティションのうちGPTでは1つだけ使って残りを未使用としておくのが流儀のようです。
  • パーティションタイプにEE(GPT protective MBR)が入っており、パーティションのセクタ数は1,350,917だったので659MBという事になります。
  • セクタ1はGPTヘッダ情報です。パーティションの1エントリあたりのバイト数は128でした。ということは、1セクタには4エントリが格納できます。よく言われているのが「GPTでは128エントリまで扱える(だからMBRの4エントリよりも圧倒的に多い)」 ということですが、このディスクイメージは汎用性を求める必要はないと割り切っており、パーティションエントリ数には4が指定されていました。これによりパーティションエントリに必要なセクタ数は1つだけで済みます。
  • セクタ2にパーティションエントリが格納されいて、実際に使われているのは3つでした。
  • 最初にエントリはFreeBSD Boot partitionのGUIDが指定されていて、割り当てられている容量は16Kでした。
  • 2番目のエントリはFreeBSD UFS partitionで、容量は674,416Kでした。
  • 3番目のエントリはFreeBSD Swap partitionで、容量は1,024Kとなっていました。

従来のMBRを使った場合のFreeBSDのブートプロセスでは、MBRにあるboot0がboot1を呼び出し、さらにboot2からloaderへと制御が移っていきます。ところがGPTを使うとMBRにはpmbrが格納されます。pmbrはFreeBSD Boot partitionを探し、そこに入っているファイルを(内容の確認をせず)メモリにロードして制御を移そうとします。インストールができていれば、そこにはgptboot(8)があるはずですが、細かいことを言うとpmbrではその確認をしていません。

FreeBSD Handbookでは「12.2. FreeBSD Boot Process」で次のように書かれています。
 Note:  FreeBSD provides for booting from both the older MBR standard, and the newer GUID Partition Table (GPT). GPT partitioning is often found on computers with the Unified Extensible Firmware Interface (UEFI). However, FreeBSD can boot from GPT partitions even on machines with only a legacy BIOS with gptboot(8). Work is under way to provide direct UEFI booting.
将来的にはUEFIなマシンでGPT起動をおこなう方向のようですが、現時点ではBIOSしかない旧いPCの存在を無視できないと思うので、そのようなマシンでもGPTで起動できるような仕組みにしているようです。

以上の調査により、このイメージをUSBメモリに書き込めばdynabook SS SX/15AでもFreeBSD/i386が起動できるはずだと思います。ところが起動できずエラーになってしまうわけなので、何が障害になっているのか調べてみようと思います。

調査してみれば、その過程の中で多くの知見が得られるでしょう。そしてFreeBSD/i386のインストールができるようになれば万々歳です。反対に意外に手強く解決には至らなかったとしたら、従来どおりMBRでパーティションを切ってbsdlabelでディスクを構成すれば良いでしょう。

2016-10-06

USBメモリから起動したUbuntu 16.04

dynabook SS SX/15Aの環境をWindows VistaからFreeBSD/i386に入れ換えるための準備作業を続けています。内蔵HDDを壊さないようにするため、USBメモリとかUSB-HDDにOSを入れてブートできるようにしたいと思っています。

しかし根本的な問題ですが、果たしてdynabook SS SX/15AはUSBメモリやUSB-HDDから起動できるのでしょうか。Webで検索してみても一般論としては出来そうだとされているようですが、具体的にdynabook SS SX/15Aで出来るのか出来ないのか確実な情報は見つけられていません。

状況から推測するしかありませんが、USBメモリからはブートできるようです。
  • Paragon Backup & Recovery 2011 (Advanced) Freeで作成した起動用USBメモリは、dynabook SS SX/15Aで使えました。
  • UNetbootinを利用してUbuntu 16.04_Liveを入れたUSBメモリを作成してみましたが、きちんとブートできました。
  • ただしUNetbootinでFreeBSD 8.0のUSBメモリを作成しましたが、起動しようとはするものの、いきなりレジスタダンプが表示されて「BTX halted」というメッセージが出てしまいます。OSは立ち上がりませんでしたが、起動はするようですから、dynabook SS SX/15AがUSBメモリから起動できると思っておいて良いでしょう。
これに対してUSB-HDDからブートできるのかは今のところ実績がありません。そもそも出来ないのか、何か手順が足りないから起動しないのか、分からない状態です。少なくともFreeBSD/i386 10.3-RELEASEをUSB-HDDにインストールすることまでは出来ています。

試行錯誤を続けていますが、闇雲に歩き回るだけだと、目標(dynabook SS SX/15AにFreeBSD/i386を入れる)に向かって進んでいるのか、脇道にそれてしまっているのか分からなくなるので、注意しておきたいと自戒しています。

調査の一環としてUSBメモリ入れたUbuntu 16.04を使ってみました。あまりにも簡単にUSBメモリに入り、しかもあっさり起動してUbuntuが使える状態になったことに驚きました。Ubuntuを使ったのは初めてなので、どのように操作したら良いのか経験値が足りませんが、勘で操作してみました。試しに無線LANの設定をおこなってみたところ、ほとんんど何の苦労もなく無線LAN接続ができてしまったことには驚きを禁じ得ません。

約1年前にSONY vaioに入れたNetBSD/i386を使って同じく無線LAN接続を試みましたが、かなり苦労した挙句に結局接続できませんでした。このvaioはdynabookよりも古いモデルなので、それが悪かったのか、それともNetBSDだからなのか、理由はわかりません。

この事例をもって、NetBSDよりもUbuntu(もしくはLinux)の方が優れていると即断するわけにはいかないでしょう。「使うために無用な苦労がない」という意味では優れていますが、「技術的」に優れているかどうかは別問題です。そうであったとしても、一般利用者が無用な苦労をしなくてすむように作られているという点では、開発者コミュニティやユーザ・コミュイニティのありかたには学ぶべき点が多いと感じます。

2016-10-05

Windows 10 Anniversary Updateが来た

ずいぶん長く待たされましたが、ようやくWindows 10 Anniversary UpdateがWindows Updateで配信されました。さっそく更新を適用しましたが、シャットダウンを始めてから再びログイン画面に戻ってくるまで1時間半ほどかかりました。そしてログインした後で、何故か画面が固まってしまい20分ほど待ってみたものの反応がありませんでした。無闇に電源を落とすのは良くないのですが、ディスクアクセスもしていなさそうだったので強制的に電源を落として、立ち上げ直しました。とりあえず無事に更新されたようです。

この更新は1607版というようですが、去年の1511版の時と同じく、自分の使い勝手を考えて微調整してあった設定の一部が初期化されていました。おそらく今後リリースされる更新でも同様だと思うので、更新終了後におこなった設定をメモして残すようにしています。

 今回のリリースの目玉は何といってもWindows Subsystem for Linuxです。まだベータ版扱いですが、利用するには次の手順を踏みます。
  1. 「開発者向け機能を使う」にある「開発者モード」を有効にする。
  2. 「Windowsの機能の有効化または無効化」にある「Windows Subsystem for Linux (Beta)」を有効にする。
  3. コマンドラインからbashを起動させて個人環境を設定する。

個人環境の設定をおこなうと620M程度のディスク領域を消費するようです。この時のメッセージは以下のようになりましたが、途中で文字化けがおこりました。
C:\Users\FURUSAWA>bash
-- ベータ機能 --
これにより Windows に Ubuntu がインストールされます。Ubuntu は Canonical によって配布される製品であり、
次のサイトに示される条件に基づいてライセンスされています。
https://aka.ms/uowterms

続行するには、"y" を入力してください: y
Windows ストアからダウンロードしています... 100%
ファイル システムを展開しています。この処理には数分かかります...
既定の UNIX ユーザー アカウントを作成してください。ユーザー名は、Windows のユーザー名と一致する必要はありません。
詳細: https://aka.ms/wslusers を参照してください
新しい UNIX ユーザー名を入力してください: furusawa
新しい UNIX パスワードを入力してください:
新しい UNIX パスワードを再入力してください:
passwd: password updated successfully
インストールが正常に終了しました
環境が間もなく開始されます...
ドキュメントを参照できる場所: https://aka.ms/wsldocs
furusawa@TABATA:/mnt/c/Users/FURUSAWA$ exit
exit

C:\Users\FURUSAWA>
WSLは今のところベータ扱いですが、早く正式扱いになって欲しいと思います。

「気象庁が発表する長期予報における確率表現」の続き

8月26日付の記事で気象庁が発表する長期予報で使われている確率表現について考えてみました。その時に一例として使ったのが「平成28年8月24日発表の関東甲信地方3か月予報」です。そこでは9月の気温は、平年より低い確率が10%、平年並である確率が30%、平年よりも高い確率が60%とされていました。それから時が過ぎて10月になり、9月の実際の気温がどうであったのか統計値が発表されています。それを確認してみましょう。

気象庁のWebにある情報を参照すると、東京の2016年9月の平均気温は24.4℃だったことがわかります。また平年並とされるのは「東京 9月 平年値(日ごとの値) 主な要素」 によると21.9~23.8℃です。先日の記事では23.2~24.4℃と書きましたが統計値の求め方に誤りがあったようです。

9月の平均気温24.4℃は、平年並21.9~23.8℃よりも高くなりました。この結果は長期予報があたったという意味なのでしょうか。

長期予報では「平年より低い確率が10%、平年並である確率が30%、平年よりも高い確率が60%」とされたのであって、「9月は平年よりも高くなるでしょう」と予報されたわけではありません。もしこのように予報されたのであれば、実際に9月の平均気温は平年並よりも高かったのですから、予報があたったと言えると思います。

「9月は平年よりも高い確率が60%でしょう」という長期予報に対して、実際に9月の平均気温が平年並よりも高かったときに、これは予報があたったと言ってよいものなのか判断がつきません。確率表現で表された予報をどのように評価したらよいのか、勉強しようと思います。

2016-10-02

Windows UpdateにKB890830が何度も現れる

dynabook SS SX/15AのWindows Vistaを起動してWindows Updateを確認すると「重要な更新が1つある」と表示されます。月次更新のように延々と待たされたりはしません。その更新をインストールすると、無事に成功します。

ところが、その直後に再び「重要な更新が1つある」と表示されます。それをインストールすると、無事に成功します。そして更に「重要な更新が1つある」と表示されるという謎の状況に陥ります。インストール履歴をみると、この状況を引き起こしているのはKB890830です。Webで検索してみると何かと問題を引き起こしているようです。

KB890830というのは「悪意のあるソフトウェアの削除ツール」とのことで、ディスク内を検索して悪意のあるソフトウェアが「あれば削除する」そうです。

もしかすると月次更新で気が遠くなるほど時間がかかっていた原因は、このツールがディスクをひたすら検索していたせいなのかもしれません。

2016-10-01

dynabook SS SX/15Aのハードウェア情報を記録

Windows Vistaが入っているdynabook SS SX/15AをFreeBSD/i386に入れ換えようと細々と作業を続けています。Vistaのサポートが終了するまで約半年となりました。OSやアプリケーションのインストールは一気呵成に片付けてしまうべきだとは思いますが、闇雲にインストールすると失敗した場合にリカバリ出来なくなりますし、仮に成功したとしても何が上手くいった要因だったのか評価できないでしょう。迂遠かもしれませんが事前の準備をしっかり整えておこうと思います。

基礎的な情報としてdynabook SS SX/15Aのハードウェア情報を記録しておこうと思います。FreeBSD/i386をインストールしたらXも入れようと思っていますが、ハードウェアがXで認識されなかったり、誤認識されたりした場合に、Windowsではどうだったかが貴重な情報源になるはずです。

ハードウェア情報を取得するためにWindowsで利用できるツールは3種類あるようです。
  • systeminfo
  • msinfo32
  • DxDiag
同じハードウェアに対して実行するわけなので似たような情報が得られます。それぞれツールごとに特徴があるとは思いますが、その差異は気にせず、3種類のツールの結果を保存しておこうと思います。

「カー・SOS 蘇れ!思い出の名車4」番組進行の定型パターン

National Geographic Channelで放送中の「カー・SOS 蘇れ!思い出の名車4」を視ていると、以前にも指摘しましたが、番組進行が一定のパターンに則っているような気がしています。まるでTVで人気番組だった水戸黄門では印籠を出す時間が決まっていたのではないかと疑われていたのを彷彿させます。

過去の放送でも似たようなシーンはありましたが、今回ほど定型的ではなかったように思います。今回(シーズン4)の番組進行の雛形は、こんな感じです。
  1. 整備の達人:ファズ・タウンゼントとパーツ集めの天才:ティム・ショーがSOSを発した依頼者のところに向かう車の中のシーンから番組が始まる。車中で二人は引き取りに向かう車が如何に素晴らしいかを語り合う。
  2. SOSを発した依頼者(車の所有者の妻、または息子か娘) と落ち合い、修復する車を見せてもらう。ここでファズは車の状態を確認し、ティムは依頼者から車と所有者の関わりを聞き出す。ここで依頼者は所有者が重い病に侵されていることを語る。また番組スタッフが偽物の番組をでっちあげて所有者と接触し、所有者と車との関わりを聞き出す。
  3. 車を工場に持ち帰り修復を開始する。たいていは錆びだらけで、内装も傷んでいるので、外せるパーツを全て外し骨組み状態になる。
  4. ティムは足りないパーツを探して、業者や知人を訪ねまわる(放映されていることが台本なしの真実であるとしたら相当阿漕な手段を弄しているようにみえるが、実際には打ち合わせ済みではないだろうか)。
  5. 依頼者が途中経過を見るため工場を訪問する。バラバラに分解されている車を見て激しく驚く(依頼された車は錆びだらけだったのだから、板金作業をするためにはバラバラにしないと無理なんじゃないだろうか。それとも魔法で綺麗になると考えているのだろうか)。ここで修復した車を所有者に返却する「サプライズ」の相談が行われる。
  6. 短い修復期間にもかかわらず問題が次から次へとおこるが、なんとか予定された日までに完了する。
  7. サプライズで所有者に返す前に、依頼者と友人たちに修復された車を内覧させる。新車同様に修復された車を見て依頼者は感謝の言葉を告げる。
  8. 所有者にサプライズで車を返却すると、見違えるように綺麗になった自分の愛車を見て涙をこぼす。そしてカーSOSのタグがつけられたキーが所有者に渡される。
  9. 修復された車に所有者と依頼者が同乗し、昔を懐かしみながら運転を楽しんでいるシーンで番組が終わる。
このパターンで番組が進行するので、視ていて次にどうなるのか予想がつきます。今回はシーズン4ですから、過去の番組制作を通して進行の展開が決まってきたのかもしれませんが、新鮮味のないワンパターン番組になってしまう危険性もあります。

このシリーズのシーズン5があるのか分かりませんが、もしあるなら、どんな番組になるのか期待と不安で待ちたいと思います。