2016/11/26

Ubuntu  電源が入らなくなったときのトラブル対策

突然1号機の電源が入らなくなった。先週までは何事もなく稼働していたのに、スイッチを押しても何の反応もない。

電源が入らなくなったときのトラブル対策

ここでは
  • 買ってきたばかりのPCが起動しない、
  • PCを組み上げたが起動しない、または
  • パーツの交換後に起動しなくなった
という場合は想定していない。ここではあくまで、
  • 正常に稼働していたPCの電源がある日突然入らなくなった
場合の対処法についてまとめた。


1. ケアレスミス
電源が入らない原因が故障ではなく単なる不注意であることが多い。まず、以下の確認をしておこう。
  • 電源ケーブルはしっかりと接続されているか
  • ケーブルが十分に刺さっていなかったり、ぬけかかっていると通電しないことがある。または、電源ケーブルがコンセントに刺さっていない事もある。
  • コンセントには通電しているか
  • コンセントが故障して通電しない事がある。また、延長コードをつかっている場合にはコンセントのスイッチがOFFになっている事もある。
  • 電源ユニットのスイッチはONになっているか
  • ”ー” がON で、”○” がOFF。スイッチの場所によっては何かが当たってスイッチがOFFになってしまう事がある。

2. 各種パーツの点検
ケアレスミスが無いならば、各種パーツの点検にはいる。電源が入らない場合には電源ユニットかマザーボードが故障している場合が多い。ATX仕様の電源はスタンバイ・サスペンド用の5Vを常時給電する仕組みになっているので、マザーボード上に通電ランプがある場合はそれを手がかりに問題を切り分ける目安になる。
通電ランプ(赤)が点灯している例。色はマザーボードによって異なる。

  • 通電ランプは点灯しているか 
  • 通電ランプが
    • 点灯していない → 電源ユニットマザーボードに問題がある可能性
    • 点灯している  → それ以外のパーツに問題がある可能性
    に問題がある可能性が高い。しかし、この通電ランプは5Vの給電にのみ反応するので、それ以外の給電に問題があるかどうかはこのランプからは判断できない。そこで以下のような確認作業を行う。なお、この先パーツをはずしたり接続したりするが、その時には必ず電源ユニットのスイッチを切ってから行うことを忘れずに。

    点灯していない
    電源ユニットとマザーボードのみの状態にして通電ランプは点灯するかしないかを確認する。点灯しなければ電源ユニットかマザーボードに問題があるといえる。もし点灯したら、その他のパーツを一つずつ接続していって通電ランプが点灯するか確認する。これによって問題のあるパーツを特定できる。
    点灯している
    電源ユニットとマザーボード以外のパーツを一つはずすごとに電源が入るか確認する。電源が入いれば直前にはずしたパーツ以外をを一つ接続するごとに電源がはいるか確認する。この作業を繰り返すことによって問題のあるパーツを特定できる。もし電源ユニットとマザーボード以外のパーツをすべてはずしても電源が入らないなら、この二つのいずれかに問題があることになる。

電源ユニットかマザーボード (またはCPUも含めて) に問題がある場合、代替のパーツが無ければ原因の特定は難しい。しかし、電源ユニットかマザーボードの場合については以下の方法で特定できる場合がある。

  • 電源ユニットの点検(ATX電源)
  • まず、電源ユニットのすべてのコネクターを抜いておく。
    ATX20ピンの場合
    PS_ON(14番:グリーン)とCOM(13番:ブラック もしくはそれ以外のCOM,3,5,7,15,16,17番:ブラック)を直結して電源ユニットの電源を入れる。これで電源ユニットのファンが回らなければ電源の故障、回れば電源ユニット以のの故障の可能性が高い。

    ATX20pin のアサイン
     
     
     
     
     
     
     
     
     
     
     
    ATX24ピンの場合
    PS_ON(16番:グリーン)とCOM(15番:ブラック もしくはそれ以外のCOM,3,5,7,17,18,19番:ブラック)を直結して電源ユニットの電源を入れる。これで電源ユニットのファンが回らなければ電源の故障、回れば電源ユニット以外のの故障の可能性が高い。

    ATX24pin のアサイン

ATX20ピンの PS_ON(14番)と COM(13番)を直結した例


  • マザーボードの点検
  • マザーボード上の電解コンデンサーの液漏れや破裂、パーツの焼損がないか目視で確認する。これらのうちのどれかが当てはまれば、それが故障の原因と考えていい。電解コンデンサーの液漏れや破裂が故障の原因であることは多い。

それらのコンデンサーを取り替えるだけでなおる事もある。

今回の1号機の故障について

1号機は前に一度電源が故障しており、新しいものと交感している。その時には故障する数週間前からスイッチを押しても電源が入ったり入らなかったりという前兆があった。しかし今回は
  • 電源ランプは点灯していた
  • 使用中にフリーズすることもなかった (よくあるマザーボード故障の前兆)
  • 電源故障の前兆はなかった
ので、電源やマザーボードの故障でもないだろうと推測した。そこでマザーボードに接続している増設カードから点検を始めた。その結果、ネットワークカードを取り外して電源スイッチを押したら正常に起動した。
故障したネットワークカード AT-2701FTX


参考

1. 電源投入時のトラブル対策編1 ~電源が入らない場合~
2. ATX/EPS電源のピンアサイン
3. パソコンが起動しない場合の確認方法
4. パソコンのメイン基板故障
5. マザーボードの故障の前兆


2016/09/23

BIOS更新失敗は CMOSクリアでは修復出来ない

最近 BIOS のアップデートをしていて、アップデートに失敗した時のことが気になったので調べてみた。その時、CMOSクリアを勧めるページを多く見かけた。しかし、CMOSクリアでは BIOSアップデート失敗の修復は出来ない。その理由をまとめてみた。

CMOSクリアとは



CMOSクリアとはその中に保存されているデータを全て消去することだ。したがって、CMOSクリアをすると、BIOSの設定も消去され、CMOS-RAM は工場出荷時の状態に戻る (初期化される)。CMOSクリアをする一般的な方法は
  1. PC をシャットダウンする。
  2. 電源ケーブルをコンセントから抜く。
  3. マザーボード上の CMOS 保存用の電池 (リチウムイオン電池) を外す。
  4. 電池を外したままで約10分ほど放置する。
これで CMOS-RAM は工場出荷時の状態に戻るので、電池を元に戻して、ケーブルをコンセントにつなげばよい。


BIOS とその設定の保存


BIOS は PC に電源が入るとすぐに起動し、接続されているハードウェアの情報を集める。そして OS をロードし、集めたハードウェアの情報を OS に渡す。BIOS はその性格上、初めのうちは書き換え (アップデート) を想定しておらず、ROM (読み出し専用不揮発性メモリー) に保存されていた。これがその後、Flash Memory (読み出し書き込み可能な不揮発性メモリー) に記憶されるようになった。また、80286 CPU 登場以降は BIOS の設定は不揮発性BIOSメモリー (CMOS-RAM) に保存されるようになった。(参照:1,2) 80386 CPU 登場以降は CMOS-RAM に RTC (real-time clock) が統合され、現在の時刻も保存されるようになった。(参照:7) 現在ではこの CMOS-RAM はマザーボード上の Southbridge (サウスブリッジ) に組み込まれており、ほとんど単体で見ることは無いだろう。(参照:2) 


なぜ CMOSクリアで BIOSアップデート失敗の修復が出来ないのか


CMOSクリアを実行すると CMOS-RAM に保存したデータは消去され、CMOS-RAM は工場出荷時の状態に戻る (初期化される)。これによって CMOS-RAM に保存されている BIOS の設定も消去される。つまり、CMOSクリアによって、BIOS の設定が消去されるのであって、BIOS が初期化される分けではない。そもそも BIOS は COMS-RAM とは別の不揮発性メモリーに保存されているので、CMOSクリアでこのメモリーは初期化出来ない。


ではなぜこの様な誤解が生じるのか。


”BIOS の設定の初期化” のことをしばしば ”BIOS の初期化” と表現している事があるが、これは上記のとおり正しくない。(参照:8) ”BIOS の初期化” という表現を見た人たちが

  BIOS の初期化 → BIOS を工場出荷時の状態に戻す → BIOS 書き換え失敗の修復
  
と誤解したのではないか。


参照

1. BIOS (jap.)
2. BIOS (en)
3. ROM (Read only Memory)
4. Flash Memory
5. 不揮発性メモリー
6. 不揮発性BIOSメモリー
7. CMOS-RAM
8. 設定初期化 (CMOSクリア) 

2016/09/17

HP nx7300  BIOSアップデート(Boot-Image使用)

FreeDOS を使ってアップデート

HP nx7300 の BIOS は FreeDOS を CD, USBスティックまたはフロッピーディスクから起動してのアップデートできる。CDを使ってアップデートする場合には FreeDOS に BIOS が内包されているので、起動後すぐにインストール出来る。この方法はインストールされている OS によらずにアップデートできる。(USBスティック,フロッピーディスク似ついては未確認だが同様と考えられる。)

準備

  1. ここからアップデートファイル sp40746.exe をダウンロードする(ROMPaq for HP Notebook System BIOS (68YGU) – FreeDOS Bootable Media F.0E をクリック)。
  2. sp40746.exe を展開する。
  3. 展開すると3つのフォルダ6つのファイル
    • FreeDOS
    • ISO
    • Rompaq
    • HPUSBFW.exe
    • floppy.exe
    • FirmwareUpdate.exe
    • KERNELS.ZIP
    • cd.html
    • WSSP40746.rtf
     が出てくるので、フォルダ ISO の中にあるファイル rom.iso をCDに焼く。

アップデート

  1. BIOSの設定で HD より先に CD をブートする(起動する)ようにしておく。
  2. rom.iso を焼いた CD をドライブに挿入して nx7300 を再起動する。
  3. 現れた画面から ↑,↓ を使って Update を選択して Enterキーを押す。
  4. 画面の指示にしたがう。
  5. アップデートが終わったら Exit を選択して Enterキーを押す。
  6. 画面の指示にしたがって Power off。

2016/09/13

AMILO L7300T  BIOS のアップデート (Boot-Image 使用)

AMILO L7300T のアップデートについて

AMILO L7300T のアップデートファイルは
  • DISC Image (フロッピーディスク用)
  • ISO CD-Image (CD-ROM用)
の2種類があり、その両方共に FreeDOS が含まれている。したがって
  • フロッピーディスク、または CD から FreeDOS を起動してアップデートする
ことになる。この方法は AMILO L7300T に Windows系以外の OS がインストールされている場合にも通用する。DISC Image を使ったアップデートのやり方はダウンロードページに記されている。ここでは ISO CD-Image を使ったアップデートのやり方について書いた。(補足2) アップデートの手順は以下のとおり。分かりにくいところは青の太字で書いてある。

準備

  1. ここからアップデートファイルのうち、
    • Title: BIOS Flash (ISO CD-Image) - AMILO L7300     Version: 1.0G
    を ダウンロードしてくる。 
  2. ダウンロードしたファイルをCD-ROMに焼く。(ISOイメージの書き込み方)
    • 注意 OS から CD の中身は確認できないCDを焼くことに成功していれば、CDを入れたまま再起動すればアップデートできる。 
  3. BIOS からCDドライブのブート順位ががハードディスクドライブより高いことを確認する。

 

アップデート

  1. 焼いたCDをCDドライブに入れて再起動する。
  2. 起動して画面に A:\> と出たら flash.bat と入力して Enterキーを押す
  3. アップデートが終了したら画面の指示にしたがって、任意のキーを押す。


補足

  1. フロッピーディスク用の Image を展開して CD に焼いてもアップデートは出来ない。この場合、FreeDOS は立ち上がるが、コマンドを入力しても ”bad command” とエラーがでてしまう。
  2. ISO CD-Image の説明がない。ISO CD-Image の説明を見てもフロッピーディスク用の Image を使う場合についての説明が書かれていた。これではコマンドや拡張子の知識が無いと戸惑うだろう。何をすればいいか分かったのはDC から FreeDOS を立ち上てからだった。dir コマンドで中身を確認すると、以下の8つのファイルがあることが確認できる。それらをまとめると、
    1. kernel.sys, comanndo.com, autoexec.bat
    2. phlash16.exe, flash.bat, flashabl.rom
    3. readme.bat, readme.txt 
    の3つのグループに分けられる。このうち 1. に属するファイルは FreeDOS に関係するもの、3. は説明。つまり、アップデートに関係するファイルは 2. に属する3つのファイルということになる。ここから CD からアップデートする場合も flash.bat を実行すればよいであろうと推測できる。

2016/09/12

AMILO M1425  BIOSのアップデート

AMILO M1425 のアップデートについて

アップデートは OS が Windows系かそれ以外かで多少違ってくる。OS が Windows系以外の場合は AMILO L7300T の BIOS のアップデートで紹介します。

準備

  1. ここからアップデートファイル、FTS_BIOSWindowsFlashEXEAMILOM1425M7425_108c_1002800.exe,を ダウンロードしてくる。 
  2. (OS が Windows系の場合) Windows を起動し、新しいフォルダを作る。そこにダウンロードしたファイルのみをコピーする。
  3. (OS が Windows系以外の場合) ダウンロードしたファイルをFAT32にフォーマットしたUSBスティックにコピーする。FreeDOS 1.0 を焼いた Live-CD を用意する。

 アップデート


OS が Windows系の場合
- AMILO M1425 を起動する。
- FTS_BIOSWindowsFlashEXEAMILOM1425M7425_108c_1002800.exe をクリック。

OS が Windows系以外の場合
- ダウンロードしたファイルコピーしたをUSBスティックを AMILO M1425 にさす。 
- AMILO M1425 を FreeDOS 1.0 を焼いた Live-CD から起動する。
- 起動したら c: (私の場合) と入力して Enterキーを押す。
- FTS_BIOSWindowsFlashEXEAMILOM1425M7425_108c_1002800.exe をクリック。

注意


BIOSアップデート用のファイルは
  1. FTS_BIOSDOSFlashDISCImageAMILOM1425M7425_108c_1002798.exe
  2. FTS_BIOSFlashISOCDImageAMILOM1425M7425_108c_1002799.iso
  3. FTS_BIOSWindowsFlashEXEAMILOM1425M7425_108c_1002800.exe
の3種類がある。
このうち 3. を使用する必要がある。 1. はフロッピーディスク用のイメージファイルで、2. は CD-ROM用のイメージファイルだ。1. を展開してUSBスティックにコピーしても ”Bad commando” とメッセージが出てインストール出来ない。 (たわしは誤って 1. をダウンロードしたためにどつぼにはまった。) 2. は FreeDOS を起動するのに CD-ROMドライブを使用しているので利用出来ない。

2016/09/07

Acer Aspire 3623  BIOSのアップデート (FreeDOS 使用)

freeDOS 1.0 を使ってAcer Aspire 3623 のBIOSをアップデートする。

用意

  1. CDに焼いた freeDOS 1.0 (Acer Aspire 3623 にはFDD(フロッピーディスクドライブ)がない。)
  2. ここからBIOSをダウンロードして展開しておく。(製品モデルは Acer Aspire 3620)
  3. Cドライブの直下に”BIOS”と言う名前のフォルダをつくり、展開したファイルをコピーしておく。(フォルダ名は任意でいい。まt、展開したファイルをUSBスティックにコピーしても freeDOS 1.0 からは認識されなかった。)

BIOSのアップデート

  1. Acer Aspire 3623 を起動する。CDに焼いた freeDOS 1.0を挿入し、再起動。(参照1)
  2. ここの "BIOS のアップデート" の1~4 を参考に freeDOS 1.0 を起動する。
  3. c: と入力してenterキーをおす。(Cドライブに移動)
  4. cd BIOS と入力してenterキーをおす。(BIOSフォルダ内に移動)
  5. AG1A106.bat と入力enterキーをおす。(アップデートが終了するのを待つ。)
  6. Acer Aspire 3623 を再起動する。

備考


既にお気づきの方のいるとは思うが、この Acer Aspire 3623 には Windows XP がインストールされたままだ。Windows XP は既にサポートを終了しているので、使用するべきではない。どうしても使用しなければならないときには Internet との接続は切断しておくべきだ。私の場合は Linux 上で作動しないデバイスをいじり倒すためにあえて Windows XP をそのままにしている。今回の目的はUSBスティックもFDも使えない環境でのBIOSのアップデートの方法を確かめることだった。しかし、Windows があるならセーフモードで管理者としてログインし、コマンドプロンプトから Batch File を実行してもいいのだろう。

参考


1. Ubuntu  BIOSのアップデート(K7S5A)
2. Acer ドライバとマニュアル

 


2016/07/04

モニタ-(BenQ FP91G+)の修理

PCの電源を入れたらモニターが映らない。モニターのスイッチを押し直しても反応なし。スイッチの所にあるLEDも点灯しない。


接続と通電の確認

  •  電源ケーブルがきちんと差し込まれていることを確認。 
    • 電源ケーブルがコンセントから抜けかかっていたり、モニタなどの機器に十分差し込まれていないために機能しないことはよくある。
  •  電源ケーブルを交換してみる
    • ケーブルが断線している事もある。”LANケーブルが断線してインターネットに接続出来ない。”なんて事もあった。
  •  別の電通しているコンセントに差し替える。  
    • コンセントに電気が来ていない事もある。”別のコンセントに差したら動いた。”なんて事もめずらしくない。
接続と通電には問題なかった。 LEDも消えているので、故障は電源部周辺と考えられる。 


モニターの分解

  1. 全てのケーブルを外す。                            
  2. 背面のカバーのを外す。
    1. モニターのスタンドを取り付けているネジ2本
    2. そのスタンドの下にあるモニターのネジ1本とその他のネジ4本(2本は隠しネジ。)
    3. モニター下部の凹みからマイナスドライバーを使ってカバーを外す。
  3. 基盤類を被っているアルミカバーを外す。
    1. 液晶ディスプレイと基盤を接続しているケーブルを抜く
    2. VGA端子とDVI端子の両脇にあるスペーサーを外す。
やはり電解コンデンサーのうち2つが膨張している。(基盤から取り除いた後撮影しました。)
これを交換する。


コンデンサーの交換

  1.  2つの基盤を接続しているケーブルを外し、電源基盤(左)を留めているネジを外す。
  2. 膨張している2つのコンデンサーを取り除く。
  3. 新しいコンデンサーをハンダづけする。

モニターの組み立てと通電

分解とは逆の順番でモニターを組み立て直すし、ケーブル類を接続して通電する。組み立てる前に通電する場合には高電圧に注意!(参照:1)

映りました。修理完了。 


修理について

今回は電解コンデンサーが膨張していたので、交換したら元通りに動いた。他にも
  • セラミックコンデンサーが焼ける
  • トランジスターが破損
  • ヒューズが飛ぶ
などの例があるようだ(参照:2、3)。目視で確認できない場合、テスターを使って各素子を検査する。また、ディスプレイやバックライトが破損したような場合、修理可能かどうかがポイント。部品交換の場合には費用がかかる。


参照 

1. Monitor oder Fernseher reparieren
2. パソコン液晶パネル修理
3. 液晶モニター dell S2209Wの分解修理
4. 不良電解コンデンサ問題
5. RDT232WX 修理3パターンの紹介 

2016/06/29

linuxBean 14.04  内臓HDDの自動マウント

LInuxBean 14.04 を使っていてちょっと困ったこと。それは内蔵HDDをマウントしてくれないことだった。12.04 まではマウスクリックでマウント(動的マウント)してくれていたけれど、14.04にアップグレード後はマウスクリックではマウント出来なくなった。

まあ内蔵HDDを使いたいときにコマンドを入力してマウントすればいいけど、出来ればマウスクリックまたは起動時にマウントしてくれるとありがたい。


起動時にマウントさせるには


PCが起動したときにデバイスをマウント(静的マウント)するには、/etc/fstab ファイルに記述すればいい。
/tec/fstab ファイルとはパーティション、内臓HDDやSSDなどのブロックデバイス、外付けHDDやUSBスティックなどの周辺機器をどうやってファイルシステムにマウントするかを記述するファイルだ。
今回のように内蔵HDDをマウントするには fstab ファイルに以下の1行を書き加えれいいだろう。

  UUID=3e6be9de-8139-11d1-9106-a43f08d823a6 /media/BackUp ext4  defaults  0  2


/tec/fstab ファイルの中身


まず、ファイルの中身をみてみよう。

  # /etc/fstab: static file system information.
  #
  # Use 'blkid' to print the universally unique identifier for a
  # device; this may be used with UUID= as a more robust way to name devices
  # that works even if disks are added and removed. See fstab(5).
  #
  # <file system> <mount point>   <type>  <options>       <dump>  <pass>
  proc            /proc           proc    nodev,noexec,nosuid 0       0
  UUID=f8aa0bd4-2fbd-41c4-8319-203f4167a51e / ext4 errors=remount-ro 0 1
  UUID=a575f293-cb40-44fa-8366-94287238b687 none swap sw      0       0
  /dev/fd0   /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
  UUID=3e6be9de-8139-11d1-9106-a43f08d823a6 /media/BackUp ext4 defaults 0 2


# で始まる行はコメント分である。
このファイルには各行にマウントされるパーティションやデバイスが一つずつ以下の6つのフィールド
      <file system>  <dir>  <type>  <options>  <dump>  <pass>
 によって記述されている。それぞれのフィールドはタブまたはスペースで区切られている。
  • <file system> マウントされるデバイスやパーティションの UUID*
  •                      また, /dev/cdrom や /dev/sda1 などそれらのデバイス名
      上の例では UUID=3e6be9de-8139-11d1-9106-a43f08d823a6
  • <dir> マウントポイント
    • 上の例では /media/BackUp
  • <type> マウントされるパーティションやデバイスのファイル形式
  •             指定できるファイル形式には ext2, ext3, ext4, btrfs, f2fs, xfs, hfsplus, tmbfs,             iso9660, vfat, ntfsなどがある。
      上の例では ext4
  • <options> 指定するマウントオプション。基本的なオプションは以下の通り。尚、2つ                以上のオプションを指定したい時にはコンマでつなぐ。
    • defaults   rw, suid, dev, exec, auto, nouser, async の7つのオプションを               指定することと同じ。
    • ro   読み込み専用でマウントする。
    • rw   読み書き可能でマウントする。
    • suid   SUID または SGID ビットの操作を許可する。
    • nosuid   SUID や SGID ビットの操作を許可しない。
    • dev   ファイルシステム上のデバイスを解釈する。
    • nodev   ファイルシステム上のデバイスを解釈する。
    • exec   バイナリデータの実効を許可する。
    • noexec   バイナリデータの実効を許可しない。
    • auto   起動時,または mount -a コマンドが実行されたときにマウントする。
    • noauto   自動でマウントしない。
    • nouser   root だけにマウントを許可する。
    • users   ユーザーグループにマウントを許可する。
    • user   全てのユーザーにマウントを許可する。
    • sync   ファイルシステムへの入出力を同期する。
    • async   ファイルシステムへの入出力を同期しない。
    • atime   inode アクセスを日時を常に更新する。
    • relatime   変更があった inode アクセスを日時をのみ更新する。
    • noatime   inode アクセスを日時を更新しない。
    • 上の例では defaults
  • <dump> 0 または 1 (dumpによってバックアップを作成する -> 1 作成しない -> 0)
    • 上の例では 0
  • <pass> 0~2 ファイルシステムをチェックする順番
  •                     (rootファイルシステム -> 1 その他 -> 2 チェックしない -> 0)
      上の例では 2 


UUIDUniversally Unique Identifier)とは、パーテーションやデバイスを一意に識別するための識別子である。これは 16Byteの16進数で、上の内蔵HDDの例では
  3e6be9de-8139-11d1-9106-a43f08d823a6 
のように表現されている。
UUID を調べるには端末(terminal)から

   sudo blkid  

と入力すればよい。尚, FAT や NTFS などの Windiowsファイルシステムでは UUID が使われていないので,UUID の代わりにシリアルナンバーが出力される。
出力例

  yyyyyyy@xxxxxxx-zzzzzzz-O-E-M:~$ sudo blkid
  [sudo] password for xxxxxxx: 
  /dev/sda1: UUID="58c5c831-15dc-4054-8237-14d095808ee2" TYPE="ext4" 
  /dev/sda5: UUID="f8aa0bd4-2fbd-41c4-8319-203f4167a51e" TYPE="ext4" 
  /dev/sda6: UUID="a575f293-cb40-44fa-8366-94287238b687" TYPE="swap" 
  /dev/sdb1: LABEL="TOSHIBA EXT" UUID="30DA0059DA001DAA" TYPE="ntfs" 
  /dev/sdc1: UUID="3e6be9de-8139-11d1-9106-a43f08d823a6" TYPE="ntfs" 
  yyyyyyy@xxxxxxx-zzzzzzz-O-E-M:~$


参照


1. fstab  (Archlinux Jap.)
2. fstab  (Ubuntu Eng.)
3. fstab  (Ubuntu De.)
4. fstab  (Linux man page)
5. UUID  (wikipedia Jap.)
6. UUID  (Ubuntu De.)

2016/06/25

LinuxBean 14.04 Bodhi Linux から LinuxBean へ

LinuxBean とそのシステム要件

Bodhi Linux をインストールしていたPCのメモリーを256MBから512BMに増設した。これでこのPCのスペックは以下の通り。
CPU:AMD64 (2.2 GHz)
メモリ:512MB 
HDD:20GB
これなら LinuxBean 12.04 をインストール出来る。LinuxBean は Ubuntu 12.04/14.04 LTS の minimal install版をベースにした軽量ディストゥリビュージョン(軽量Linux) だ。(参照:1,2)
LinuxBean 12.04 のシステム要件
CPU:i386 800MHz 以上
メモリ:256MB 以上
ディスクの空き:8GB 以上
LinuxBean 12.04 のLiveCD が手元にあったので早速インストールする。インストール後はアップデートをしておく。ここでデータ用の外付けHDD (1TB) を組み込む。再起動後、このHDDは sdb1 として /media に mount (マウント)される。
ここで LinuxBean 14.04 へのアップグレードの通知があった。
LinuxBean 14.04 のシステム要件
CPU:i686 Pentium M, Celeron M 以降、及びそれらと互換性のあるCPU
メモリ:384MB 以上
ディスクの空き:10GB 以上
システム要件は満たしているので 14.04 にアップグレードする。


Bodhi linux VS LinuxBean
  • 共通点
    1. Ubuntu 12.04/14.04がベース
  • Bodhi Linux の長所
    1. 少ないメモリ(256MB)で動作
      1. LinuxBean12.04 は256MBでも最小システム要件は満たしているが、上記の環境ではグラフィックに問題があり正常には動作しなかった。一方 Bodhi linux はもたつき無く動作した。(参照:3)
  • LinuxBean の長所
    1. 無線LAN子機の認識
      1. LinuxBean12.04 では無線LAN子機 (WLI-U2-KG54L,ISY IWL 2000)を自動認識してくれた。一方 Bodhi linux ではそれぞれファイルの編集(参照:4)やドライバのインストールが必要だった。(参照:5)
    2. GUIが使いやすい。
      1. LinuxBean12.04/14.04 はデスクトップ環境にLXDEを採用しているので、Ubuntu系やwindows系を使っている人にはなじみやすい。一方 Bodhi linux ではEnlightenmentを採用しており、使いこなすには慣れが必要だ。(参照:3) 

Mount (マウント) とはあるパーティションまたはデバイスとあるディレクトリを関連づける作業のことである。このマウントによって関連付けられたディレクトリMountpoint (マウントポイント)という。マウントによって、ユーザーはハードディスク、フロッピーディスク、CD-ROM、USBメモリなどの記憶媒体に保存してあるデータを利用できるようになる。(参照:6)

参照

1. 舞台袖
2. LinuxBean
3. Bodhi Linux  古いPCの再生1
4. Bodhi Linux  Buffalo WLI-U2-KG54L で無線LANに接続
5. Bodhi Linux  ISY IWL 2000 で無線LANに接続
6. Linux LPIC - mount / unmount of File System
 

2016/02/01

4色定理とコンピュータ


5. 4色定理とコンピュータ 

4色定理とは平面上に地図が書かれていてその国に色を塗るとき, どんな地図でも4色あれば足りるという定理である(一つの国は飛び地を持たないとする). これを証明するのにコンピュータが用いらた。この事について数学者(+世間の人たち?)の間で, 「コンピュータを用いたを証明と呼べるのか」という議論がなされたという事は聞いたことがあるかもしれない. 

コンピュータが用いられたといっても, 決してありとあらゆる地図に対する塗りわけをコンピュータにやらせた, というものではない. 地図の種類は無限にあるので, そんなことは不可能である. そして, 意味のある数学の定理は事実上全てが, 無限の対象に対する言明(全ての自然数は..., 全ての実数は...)だから, コンピュータによって「難しい」定理の証明の 「本質的な部分」がなされる可能性は今も昔も少ない. 

4色定理の場合まず, 何通りかの「部分地図」の形が定義され,
  1. どのような地図も必ずそれらのうちのどれかを一部に含む
  2. 一方, それらのどれも, 4色で塗り分けられない最小の地図(最小反例)には含まれ得ない,
という事が証明された. 4色定理が成り立たないとしたらその中で国の数が最小の例がある はずだが, 上の2つの事実により, そのような例は存在しないことになり, 定理の証明が完成する. 

上で何通りかの「部分地図」と述べたその部分地図の数が, 最初の証明(AppelとHaken)では1476種類あり, 前者の証明やプログラムも複雑であったため, その正しさに疑問がつけられたという. 後にThomasらによってより単純なプログラムによる証明が得られ, その際の「分類」の数は633種類だった. 

参考リンク:

私自身はコンピュータをやっている人間として, このような証明がなされたことに興味を覚えるし, 今後別の, もっと多くの数学者の関心を引いている問題で, 似たようなことが起きても不思議はないと思う。むしろそれが数学の進歩に役に立つのであれば喜ばしいと思う. そもそも命題自身の真偽がわかっていない状態では手段など選ばず, 「後はこれら有限個の場合をコンピュータでチェックするだけ」というところに持ち込んだら, コンピュータを利用するのは自然なことだ. そして4色問題を「有限個の場合のチェックを行えば良い」ところまで持ち込んだのは紛れもなく人間だ。今後別の問題の場合でもおそらくなるするだろう. 
これに対し, 「これを数学の証明と呼べるのか」という批判が起きるのもまた分からないこともない. 要するに証明は「白黒つける」だけが目的ではなく「分かる」事が目的であり, 要するに何を持って「分かった」とするかという問題だ. コンピュータの手続きがYESと答えたからと言って, それを見た人にとって「分かった」という満足が得られないではないかという感覚は理解できる. しかし, チェックのためのプログラムが十分理解可能で信頼に足るものであれば, 「わかった」と言えるのではないか. そもそも人が書いた証明であればそれが1000ページを越えており, 自分ではとても検証できなくても良しとするというのも不思議な話だ. 要するにプログラムを使うと「分かった」とは言えず, 使わなければ「分かった」というような 2者択一ではないということだ. 

そもそも同じ問題に何通りも証明があるのが普通であり, その問題が重要ならば, たとえ先にコンピュータを用いた証明がなされたとしても, より簡潔な, うまくするとコンピュータに頼らずに正しさが確認できるような別証が出てくるのが普通だろう. それは他の問題でも, 最初に長く複雑な証明が提出された後, より本質をついた, 整理された証明が出てくるのと同じ事だ. たまたま最初になされた証明がコンピュータを使った「人」によってなされたというに過ぎない. それを認めずに「コンピュータに先を越された」とか, 「コンピュータに人間が負けた」という類の感情論はナンセンスだ. そのような人にはぜひ以下の事実を思い起こしてもらいたい. コンピュータによる計算の原理も, その物理的な実現方法も, プログラムによる計算の表現方法も, 元はと言えばすべて人間が考えたものだ.

出典Motivation to learn computer  (一部変更)


 

機械学習(例からの関数近似または補間)


4. 機械学習(例からの関数近似または補間)

機械学習とは文字通り, 「機械による学習」=「学習する機械」の事であり, 擬人化して言えば使っているうちに勝手に頭がよくなる(正解を出し易くなる) コンピュータプログラムの事である. 人間も, ある日足し算の仕方を習うと 足し算が出きるようになり, 廊下を走って転べば廊下を走らなくなる. 元々できなかった事が出きるようになる事を学習というのだから, コンピュータにこれをやらせることができれば実に色々な事ができそうである.
後からがっかりされぬようもう少し現実的な話をしておくと, 典型的な応用としては手書き文字認識などがある. 例えば郵便番号の自動読み取りなどは実用的で, 色々な形で書かれた各数字 $0, 1, 2, \ldots , 9\,$ を, コンピュータに正解ともに覚えさせておく. 実際に与えられる形はそれらと正確に同じものではないが, コンピュータがそれらしいものを正解として出す.

f(File:One1.png) = '1', f(File:One2.png) = '1', 
f(File:One3.png) = '1', f(File:One4.png) = '1', 

f(File:Two1.png) = '2', f(File:Two2.png) = '2', 
f(File:Two3.png) = '2', f(File:Two4.png) = '2', 
画像に写っている物体を当てるという, 物体認識の問題でも, あらかじめこの画像は花です, この画像は象です, などとコンピュータに入力しておくと, これまで見たどの画像とも 同一ではない画像に対して, 花だ, 象だと, 答えるようになる.
少し問題を抽象化して考えると, 要するにここでやらせたいことは, ある「関数」の値を, いくつかの与えられた入力と出力の「例」から求める(推測する) 事であると考えられる. 文字認識の例では, 入力が画像であり, 出力が $0, 1, \ldots , 9\,$ のどれかの数字(記号)である. ありとあらゆる画像が「例」として与えられていれば問題はそももそ存在しないが, それは現実的ではない. 例えば1画素が白か黒かの2値であるとし, 画像が16画素x16画素という控えめな大きさであっても, 可能な画像は $2^{256}\approx 6\cdot 10^{26}$ 通りある. したがって, 例として与えられていない入力に対する出力を, いわば「補間」することが問題である. 統計学で, 「回帰」(観測データによく合う関数の形を求める問題)というのを習うと思うが, 目標はそれと同じと言ってよい. 求める関数として一次関数を仮定して, もっともよく合う一次関数がいわゆる回帰直線であり, それを求める手法として最小2乗法がある. 機械学習はそれをもっと複雑な関数に対して行う様々な方法を研究する分野である.
このための手段は非常に色々な方法が研究されていて, 私も専門家ではないのであまり知った顔で書く事はできないが, 例えば, 入力 $x\,$ に対し, $x\,$ に一番近い「例」を見つけてその出力を, $x\,$ に対する出力とする方法, 各文字に対して, 特定パターン画像が発生する「確率」を定義して, その確率がもっとも高いものを選ぶ方法, などがある.
一旦この様に抽象的に問題が(つまり, 入出力例からの関数を補間する問題として) 定式化されると, これらの方式が非常に広い範囲の問題に応用可能だということが分かるだろう. 例えば, 実用的によく用いられているのは, 迷惑メールの分類である. 事前に多くの迷惑メールと, そうでないメールのサンプルを入手しておき, 例として入力しておく. コンピュータは, 中に書かれている文章を人間並に理解して行っているのではなく (これはやりたくてもできない), 多くの場合は, メール全体を単なる単語の集まりとして見ている(この他にメールの差し出し人や, 送信したマシンのアドレスなども情報に含める). 後は未知のメールに対する答えを 「補完」する. 使える方法は, 原理的には手書き文字認識の場合と共通である.
機械学習はその原理から, 人間が「なぜか」できてしまうような処理を, 計算機に真似させる場面でしばしば力を発揮する. 「なぜか」できてしまう処理だから, そもそもコンピュータに正解を計算させる手順もよく分からない, あるいはそもそも正解を厳密に定義しようと思っても, 最後は曖昧な部分が残っていて, 人間にすらそれができないという場合もある. 手書き文字認識も, 画像認識も, 迷惑メールも全てそのような問題である.
私は, 機械学習という, 一見すると非常に高級に見える処理が, 少し冷静に分析すると, 関数の補間という問題に定式化され, そのおかげで非常に広範囲の応用があり, 特定の応用ごとに似て非なる方法を発明しなくてよく, それが「計算機に知能(に似たもの)を持たせる」というゴールに向けた一方であることに 感銘を受けるのですが, どうでしょうか.


出典Motivation to learn computer
 

乱数(試行)を用いた計算やシミュレーション

3. 乱数(試行)を用いた計算やシミュレーション


手計算で求めるのは割と厄介なのに,コンピュータにとっては非常に簡単になってしまう問題に,色々な確率の問題がある.例えば打率3割の打者が年間500回打席に立つとして,打席連続ヒットが出ない事が15回以上ある,というのは,どのくらいの確率で起きるのか?
コンピュータにこれを計算させるのは非常に簡単で,要は「実際に0.3の確率で「当たり」となるようなクジを500回引く」 ということを何度も繰り返し,「15打席連続ハズレが1回以上ある」回数を数えれば良い. 100000回繰り返して,31234回そのような事があったら,確率はおよそ0.31くらいと言うことだろう(試しに今やってみると0.51と出た.3割打者もシーズン中15連続無安打と言うことはざらにあるということ).
微分方程式の例と同じく,これは「試行」をコンピュータで行うことさえできれば,およそどんな確率でも計算できるし,期待値なども計算できる.例えば様々な要素で株の値段が上下する時に,自分の持っている株全体の値打ち(明日の株価の期待値)はいくらか,などという計算も簡単にできる.
これを用いて,元々は確率の計算ではなかったものを,乱数(試行)を用いて求める計算方法が存在する.例えば3次元空間内で,
\[x^2 + y^2 + z^2 \leq 1, x + y + z \geq \] で表される領域の体積を求めるという問題を考える(手計算でも求められるが,ここで例題として使う).方法は驚くほど単純で,

       1. 点 $(x, y, z)\,$ をランダムに生成する. ただし,
               $0 \leq x \leq 1$, $0 \leq y \leq 1$, $0 \leq z \leq 1$
           とする.
       2. $x^2 + y^2 + z^2 \leq 1$, $x + y + z \geq 1$ を満たしているかを検査
       3. 1と2を多数回繰り返し, 満たした回数の割合を答えとする.

というものである. 要するに,単位立方体の中に点をたくさん投げ込んで,考えている領域の中に入ったら当たり,入らなかったらハズレとして,当たりの確率を計算していることになる.
詳細は省略するが,この方法の発展として,実際に起きやすい点を重点的に生成するという方法(重み付きサンプリング)が存在する.つまり,上記では単位立方体の中に点を一様に生成したが,そうではなく例えば原点の近くによりたくさんの点が生成されるようにしたりすることが可能である.
この方法を用いると,コンピュータを用いて様々な問題の「解」を効率的に探索する事ができるようになる.例えばある関数 $f(x,y, z)\,$ を最大にする $(x,y, z)\,$ を求めたいが,その答えは解析的には求まらないとする.コンピュータを用いてこれを(運が良ければ)求める安直な方法は,色々な $(x,y, z)\,$ をひたすら生成し,その最大値をとるというものである(もちろん必ず正解が求まるという保証はないが).そうする代わりに, $f(x, y, z)\,$ の値が大きい点の付近だけを「重点的に」生成すると言う方法がある.

出典Motivation to learn computer

2016/01/31

数学を生き生きと理解するためのプログラミング


2. 数学を生き生きと理解するためのプログラミング 

コンピュータによる微分方程式のシミュレーションは強力で, その原理は簡単だが, 実際には数々難しい点がある. まず, 上でも書いたとおり数値シミュレーションで求めているのはあくまで近似解である. その近似解がどの程度現実に近いかは(厳密解をシミュレーションで求められない以上), 数学を用いて評価するしかない. それをしないままシミュレーションをすると, 現実と, 定性的にも全くかけ離れた結果(現実の解は発散しないのに, シミュレーションでは発散してしまうなど)を出し, 間違った結論を出してしまうこともあり得る. どのようにしたら, 誤差は許容しつつ, かつ「定性的に望ましい」解が得られるかというのは, 闇雲に分かるものではない. 

また, シミュレーションで現象をモデル化する場合でも, 現実をダイレクトにモデル化することは不可能な場合がほとんどである. 例えば銀河系をシミュレートするのに星一つ一つを質点とみなして計算したのでは, 銀河系一つで数十億個の質点間の引力を計算することになり, とてもできるものではない. このようなとき, どのように現実を近似してもよいか, あるいは支配方程式をどのように書き換えて, より効率的に解を得るかという考察のために数学が重要な役割を果たす. 

これを, コンピュータシミュレーションを学ぶためには数学も学ばなくては「いけない」 (事実その通りではあるのだが)と見ずに, むしろ数学を学ぶご利益を, コンピュータが非常にわかりやすく見せてくれると思うと良いのではないだろうか.
例えばこれから線形代数で, ガウスの消去法に始まり, 行列のランク, 固有値・固有ベクトル, 行列のJordan標準型, という一連のストーリーを学んでいくことだろう. 例えばJordan標準型のその導出は高校の時の「行列の対角化」と似ているが, それよりはるかに厳密で難しく, 結果も複雑である. 難しさの原因は高校の時と違って具体的に与えられた行列に対して大体計算が出きればよい, と言うだけでなく, 「全ての行列が」どのような標準型を持つのかを余すことなく, 完璧に論じようとするからである. そもそも大きな行列を何に使うか分からない状態で, これらをしっかり学ぶ気力を持続するのは中々大変である. 

コンピュータによって行列の固有値や固有ベクトルを求めるのに, 非常に簡単な方法があるのだが, その方法が「うまく行く」事をきちんと確認(証明)しようと思うと, 行列の標準型に関する理解が役に立つ. ここではその詳細が重要なのではなく, 大学で習うような「厳密な」数学が, あるプログラムが「全ての入力に対して」動作することをしっかり議論するのに本質的な役割を 果たすということである.

参考リンク
線形代数の本はいわゆる教科書以外に, 実践重視,イメージ重視など説明に工夫を凝らしたものがいくつもあるので探してみると良い.

出典Motivation to learn computer

微分方程式のシュミレーション

今日から数回に渡り,田浦健次朗氏がお書きになったWikimediaの5つの記事を紹介したいと思います。動機はそこに書かれている数式が氏の思惑どおりに表示されないことでした。原文そのままに転載いしたします。

  • 微分方程式のシュミレーション
  • 数学を生き生きと理解するためのプログラミング
  • 乱数(試行)を用いた計算やシミュレーション
  • 機械学習(例からの関数近似または補間)
  • 4色定理とコンピュータ

1. 微分方程式のシュミレーション

物理や化学,様々な工学の分野の問題は微分方程式(wikipedia)を解く事に帰着される.その理由は,自然の様々な現象の根本的な法則が微分方程式を用いて記述される事に起因する.たとえば高校の物理では,ニュートンの運動方程式
\[m a = F\,\]
を習うが,これは質点の動きを支配する方程式である(剛体や流体も質点の集まりとしてその支配方程式が導かれる).ここで$ a\,$は加速度,つまり質点の位置を時間で2階微分したもの. $F\,$は一般に質点の位置や速度(つまり位置を時間で一階微分したもの)の関数として書けるため上記は質点の位置時間の関数)を未知の関数とした方程式, つまり微分方程式になる.
バネにつながれたおもりが単振動をするのも, 太陽のまわりをまわる惑星が楕円軌道を描くのも, すべてここから導かれる.前者の微分方程式は,
\[m \ddot{x} = - k x\]
後者は,
\[m \ddot{x} = - G \frac{mM}{|x|^2}\]
である.その他に,回路の方程式,化学反応中の分子の量,なども同じくらい簡単な方程式で記述される.
コンピュータはこれらの微分方程式を「解く(=その関数を時間の関数として求める)」のに驚くほど簡単で統一的な方法を使う. (常)微分方程式は一般に

                                            ある量$x(t)\,$の微分(時間変化)=$x(t)\,$の関数

数式で書けば,
\[\dot{x}(t) = G(x(t))\]
という形をしている(説明は省略するが,元の方程式に2階以上の微分係数が含まれていても,結局はこの形に変形できる). これを解くとは,この式を満たす関数 $x(t)\,$ を求めることに他ならない. そのためにコンピュータでは,与えられた初期値 $x(0)\,$ から出発して,「ほんの少し時間がたったときの状態」を繰り返し求めていく. つまり,
\[x(t + h) \approx x(t) + \dot{x}(t) h = x(t) + G(x(t))\] という式(最初の$\approx\,$は微分係数の定義,次の等号は,微分方程式そのものによる)を使って,
\[
 \begin{array}{rcl}
x(h) & = & x(0) + G(x(0)) h \\
x(2h)& = & x(h) + G(x(h)) h \\
x(3h)& = & x(2h) + G(x(2h)) h \\
\ldots
\end{array} \] という計算を順に行う事で, $x(t)\,$ という関数の概形を求めていく.これを実行するプログラムは行数にして10行もあれば書ける.しかもこのやり方は $x\,$ が単なる実数であろうと,ベクトルであろうと,まったく同様に使える.
もちろん上記の式は正確には「近似式」であり,正確ではない.したがって方程式の「正確な」解からはある程度の誤差がある.また, 答えが sin, cos のようなよく知った関数で書けたとしても,解が sin/ cos そのものであるということまで教えてくれるわけではない. その意味で微分方程式の階が「本当に分かった」という知的満足度は,実際に答えを式で求める場合と比べて低いのかもしれない.
しかし,この驚くほど単純な方法はほとんど微分方程式の「形」によらず適用できるという強みがある.つまり手計算によって「解ける」微分方程式は非常にその範囲が限られており,解ける・解けないの境目が非常に細かい式の形に依存しているのに対し,ここで述べた解法は,右辺の形がある程度「まともな」関数であれば常に適用できることが期待される.そして実際の物理や工学で現れる微分方程式はほとんどの場合複雑で,答えを閉じた式として求めることは期待できない.さらにそもそも,「閉じた式」で求まるとは,解がたまたまよく知っている関数の組み合わせで書けるという事を意味するだけであって,解が閉じた式で求まる場合を特に有り難がる理由もないということになる.
数値的な解法は微分方程式が複雑になり混み入るほど有難い解法となる.例えば銀河は非常に多数の星の集まりで,そのような多数の星の集まり全体の動きも,星や星間ガスなどの質量の間の万有引力が支配している.この解が閉じた式として求まるということは期待すべくもないが,コンピュータによる数値的な近似解であれば,「原理的には」巨大な連立の微分方程式の解を求める事で求められると期待できる.それがうまく行けば,なぜ銀河はあのような渦巻き形をしているのか,銀河の行く末はどのようになるのか,などが理解できるようになると期待される(もちろんそれは非常に難しい問題であり,基本的なやり方を理解するだけですぐにできるという意味ではない).
File:Galaxy.png
式の形はどんどん難しくなるが,電磁気学のマックスウェル方程式,量子力学のシュレディンガー方程式,熱力学の熱伝導方程式,波動方程式,流体の動きを記述するナビエストークス方程式などもすべて(偏)微分方程式である.
これほど多様な現象に対する解が,同じ原理で求まるというのは非常におもしろいと思うのだがどうでしょうか? また,私にとっては現象を「理解する」ないし「分かったような気がする」ために,それをシミュレートするプログラムを書いてみる,そして,起こるべき事が起こるかどうかを確かめてみるというのは,非常に良い手段のように思われます.より基本的な法則から難しい方程式を導いたり,あるいはシュレディンガー方程式のように「これが法則だ」と言って与えられても,私のような)凡人にはなかなか「理解」した気にはなれないものです.どうなれば「理解」したことになるかは難しいところですが,やはりそれを用いて現象を予測するなどして,実際に使っているうちに各項が果たす意味のようなものが分かってくるのではないでしょうか.しかし実際には解析的に予測できる現象はなかなか少ないですし,できたとしてもむしろ式変形の難しさに埋没されてしまいがちです.数値的に解を求め,それが「それらしい」解であることを確かめることができれば,印象にも残りますし,使っているのは数式だけですから,微分方程式だけから確かにその現象が「導かれた」という感覚が自然に湧き上がって来ます.この後物理や化学で出てくる数々の微分方程式に対し,それをコンピュータにシミュレートさせてみようという動機を持つと(持っていたら),それらをより面白く学べる(た)のではないかと,思います (括弧内は,自分の事を言っています).
おすすめの本:
微分方程式によって色々な現象がモデル化できるということを説明したわかりやすい本
表計算ソフトExcel(だけ)で,微分方程式をはじめとするシミュレーションができてしまうという本.実は類似の本は多数あるので生協などで探索してみると良い.授業でもさわりを課題として取り上げる予定.

出典Motivation to learn computer