お気に入りで使っているDellのInspiron mini 12のバッテリの持ちが悪い問題だが、どうもバッテリ初期不良の疑いが濃厚となってきた。ただ、それが単純に表示だけの問題なのか、それとも実際に性能に影響しているのかはまだわからない。けっこう厄介な問題を背負い込んでしまった。
この問題は前のエントリでも書いたわけだが、電源管理の表示をよく見ると、いっぱいに充電しても工場出荷時の66%しか充電されない。これが一般的な問題かどうかわからなかったので、以前ブログでわたしと同じようにVista版mini 12にUbuntuを入れて使っておられることを拝見したNeoさんに、お使いのマシンで確認していただけるようお願いした。すると、私の66%に対して93%とのこと。やっぱり工場出荷時より小さいことに変わりはないが、しかし数字が大幅にちがうので、個体の問題であって共通の問題ではなさそうだと考えた。
いろいろ検索していると、mini 12ではないのだが、mini 9で似たような問題が発生しているらしく、それに対する対処方法がDirect2Dellのサイトで書いてあるのを発見した。 それによると、「BIOSをアップデートすること」「最初の使用前に12時間の充電をすること」が推奨されている。そんな話は聞いていない。購入後、最初に開梱したら、誰だって電源ボタンを入れるだろう。バッテリを装着して12時間充電しておいてから使えなんて、(いま初めて開いた)セットアップガイドには書いていない。バッテリを装着し、ACアダプタをつないだら次の手順は「電源ボタンを押す」になっているではないか。
ともかくも、いまさら使い始めの状態に戻るわけにはいかないので、もうひとつの推奨であるBIOSのアップデートをやってみることにした。BIOSは、Dellのサポートページにドライバのダウンロードがあるから、そこから機種を選択すれば入手できる。実に簡単なはずなのだが、ここで提供されているのはWindows版かDOS版。Linuxで使えるものはない。では方法はないのかといえば、Direct2DellのこちらのページにUbuntuでの方法が書いてある。けっこう面倒そうな感じがするが、実はここに書いてあるfirmware-toolsとfirmware-addon-delの2つのプログラムはJauntyのリポジトリに収録済み。ということでSynapticから簡単に関連パッケージとともにインストールできる。
と、ここまではいいのだが、さて、この(端末内で実行する)ツールを使ってみても(update_firmwareと入力)「アップデートするパッケージがありません」みたいなことを言われて何も起こらない。別途BIOSのイメージをダウンロードする必要があるのかと思ってWindows版から取り出したりしてみるが、どうもちがうようだ。
いろいろ調べてこんなページをみていると、 どうもBIOSのアップデートにはLibsmbiosが働いているらしい。これは(libsmbios2となっていたが、たぶん同じだろう)上記のパッケージをインストールしたときに既に入っている。そこで、記述にしたがってgetSystemIdと端末に入力してやると、確かに情報は出てきた。BIOSのバージョンも書いてあって、A01とのこと(まあ、これは起動時にBIOSに入って確認済みだったが)。あとはこのSystem IDをもとにDellのサイトに行ってbios.hdrをダウンロードするだけ。
ところが、大量のファイルがアップロードされているにもかかわらず、該当のSystem IDを付したファイルが存在しない。ようやくここにきてわかった。 firmware-toolsとfirmware-addon-delでBIOSのアップデートができなかったのは、単純にここにアップデート用のファイルが用意されていなかったからなのだ。なぜだかはわからない。ともかく、現在のところ、Inspiron mini 12のBIOSアップデートはWindowsかDOSから行うしかないらしい。
そこでしかたなしに、DOSからのアップデートを行おうとした。FreeDOSというのがあるので、これで実行しようというわけだ。起動ディスクをUSBにすればいいのだが、その方法はかなり面倒に見えた。Live CDの方がずっと簡単。そこでLive CDを旧マシンで焼いて、ついでに旧マシンで起動テスト。うまく起動する。起動後にUSBスティックメモリを突っ込んでも認識する。ならば、Live CDで起動して、BIOSアップデートプログラムはUSBから実行すればいいと思った。
ところがこのInspiron mini 12は難物で、USB接続の外付けCDドライブからの起動には成功したのだが、起動後にUSB端子を認識しないということをやってくれた。ということで、USBスティックメモリのプログラムどころか、FreeDOS自身のコマンドさえ受け付けてくれない。これではどうしようもない。
やはりUSBスティックメモリを起動ディスクとして作成すべきなのだろうが、根性が尽きた。そうやっても、また認識しないでは同じだろうと思ったし。ならば、もう、Windowsしかない。Ubuntuのバックアップをとってパーティションを空け、Windowsをインストール。
といっても、Vistaがうまくインストールできるのかどうか、自信がない。時間のあるときにやってみるのはいいけれど、いまここでドツボにはまりたくはない。XPなら後からインストールすることができるのはわかっている。じゃあXPをインストールしたいが、余っているライセンスなどない。
結局、明確なライセンス違反ではあるが、旧マシンのXPを使うことにした。わずか5分間、たったひとつのプログラムを走らせるだけなのだ。そのぐらい大目に見てもらってもいいではないか。それがいけないというのなら、UbuntuからBIOSのアップデートができないようにしているDellのせいだ。私のせいじゃないよと勝手な言い訳をして、インストール。
なお、このとき、事前にGpartedで作ったFAT32パーティションにそのままインストールしたら、再起動でエラーになってしまった。NFTSでフォーマットしなおしたら問題なし。しかし、Windowsのインストールって時間のかかることかかること。
Windowsが動くようになって、早速Dellのサイトからドライバをダウンロード。あっさりとBIOSはA01からA04にアップデート。次に面倒なのは、Ubuntuに戻ること。これには、Live CD(というか、USB起動ディスク)が必要。起動時のF12でUSBの起動を選び、ブートオプションでboot=casperとなっているところをroot=/dev/sda1と書き換えて(sda1がUbuntuのパーティションというのは事前にGpartedか何かで確認しておくべき。私は忘れたので、曖昧な記憶でやったらどうにかなった)、起動。これでUbuntuに入れるので、GRUbの再インストール。
とまあ、大騒ぎしてBIOSのアップデートができたのだが(もちろん直後にWindowsは消した)、さて、 その後、念のためケーブルにつないで12時間放置し、起動してみたが、やっぱりバッテリの「容量66%」というのは改善せず。大山鳴動して鼠一匹もでなかったという顛末。
ということで、結論は、やっぱり初期不良かなというところ。やれやれ。
お疲れさまでした。
ところで、パーティションのバックアップなどは、どのようにやったのですか?
ちょっと寡聞にして、この辺Ubuntuでどうやったものなのか知らないので、なにかうまい手があるなら、ご教示願えると。
かおりんさん、いや、実際疲れました。このあと最後の顛末があるので、別エントリに書きます。
で、バックアップですが、デフォルトで入っているrsyncです。ただ、コマンドから使うのはオプションの付加などがややこしくて私の手に余るので、grsyncをインストールしました。これをそのまま使ってもパーミッションの問題が出るので、端末からsudo grsyncとやって(もしくはランチャにgksu grsyncを仕込んで)管理者権限で実行します。
ただ、これも一度はバカな失敗をしています。というのは、起動中のパーティションからパーティション全体のバックアップをはじめたら、やたらと時間がかかる。容量も思ったより大きい。ふと見ると、/media内のファイルのコピーを始めているのですが、これはつい今しがたバックアップを始めた外付けハードディスクの内容。鏡に鏡を写しているようなもので、無限に終わらないループに落ち込むところでした。
まるごとバックアップをこの方法でやるには、別パーティションから起動する必要があるようです。実行中のパーティションからだと(曖昧な記憶ですが)/sysディレクトリのコピーにも問題があったような気がしますし。
まあ、適当なオプションで回避できるのかもしれませんけれど。
ああ、そういうコマンドもあるんですか。知らなかった。(笑)
奥が深い。
失敗の手順に関しても、参考にさせていただきます。
ワタクシ、なんかで紹介されていた、SBackupのみを使用していて、これだと、全体はバックアップ出来ないので、なんかないのかな、と思ってました。
まあ、頻繁に使うもんでもないので、少々時間がかかってもいいんですが、使い方の簡単なものを、ってことで。
rsyncは、Macでも使えるので、Mac時代にお世話になりました。私はGUIでないとどうもダメなので以前は敬遠してきたのですが、いいGUIを見つけて楽になりました。これからは、これで定期的にバックアップしようと思っています。(たぶん、日常的にバックアップするプロユーザーなら、スクリプトで使う方が効率がいいんでしょうね)