Windows

2009/01/28

VistaとXPでデュアルブート

Vista、XP、Linuxのトリプルブートの第1歩としてVistaとXPのデュアルブート環境を構築する。

ハードディスク内のパーティションは最終的に次のようになることを目標としている。(今回使用したHDDは500GB)

  • Windows Vista(NTFS) :    0.0~153.6GB
  • Windows XP(NTFS)    : 153.6~307.2GB
  • Data(Fat32)             : 307.2~409.8GB
  • Linux(Ext3)              : 409.8~465.8GB

DataはVista、XP、Linuxからアクセスできる共有パーティション。

1.VistaとXPをインストール

XPがインストールされているPCにVistaをインストールすればVistaがXPを認識してくれるので簡単にデュアルブートできるようになるけど、あくまでもVista本位のシステムにするため(これは自分ルール)にVista、XPの順にインストールする。

まずは先頭パーティションにVistaをインストールする。これは普通にインストールして問題ない。(ちなみにVistaアップグレード版でのクリーンインストールはMicrosoft公認らしい)

次に2番目のパーティションにXPをインストールする。これもインストール自体は普通にやればいい。問題はインストール後である。

このようにXPをインストールするとMBR(マスターブートレコード、ブート実行コードが含まれている)が書きかえられてしまう上、VistaとXPのブートプロセスには互換性がないのでVistaが起動できなくなってしまう。

[Windows XPのブートプロセス]

1.NTLDRがBOOT.INIを読み込む -> OSの選択画面を表示
2.NTLDRがNTDETECT.COMを実行 -> ハードウェアの互換性を検査
3.NTOSKRNL.EXE、ドライバ読み込み、DLL起動 -> XPが起動

[Windows Vistaのブートプロセス]

<XPとの違い>
・NTLDRからBOOTMGR(Windowsブートマネージャ)に変更
・起動するOSの情報をBOOT.INIではなくBCD(ブート構成データ)
というバイナリデータとして保管

1.BOOTMGRがBCDを参照 -> OSの選択画面を表示
2.WINLOAD.EXEを呼び出す
3.NTOSKRNL.EXEを読み込む -> Vistaが起動

つまりMBRから呼び出されるのがBOOTMGRからNTLDRに変更されてしまうことが原因だと思う。

2.MBRの復旧

このままではVistaを起動することができないので、MBRを書きなおす必要がある。

まずはXPを起動させ、光学ドライブにVistaのインストールDVDを挿入し、コマンドプロンプトを起動する。そして次のコマンドを実行する。(Driveは光学ドライブのドライブ文字)

> Drive:\boot\bootsect.exe /NT60 All

これを実行するとMBRを復旧できる。

3.VistaのBCD(ブート構成データ)にXPの情報を入力する

MBRを復旧したあとはXPのブート構成情報をVistaのBCDに追加しておく必要がある。

まずは、BCD内にXP用のエントリを作成する。(CはVistaインストール先のドライブ文字)

> C:\windows\system32\bcdedit /create {ntldr} /d "Microsoft Windows XP"

ちなみにダブルクォーテーション内の文字列はOS選択画面で表示される文字列。また、次のような操作もできる。

{ntldr}エントリ内の情報を削除
C:\windows\system32\bcdedit /delete {ntldr} /f

{ntldr}エントリ内の情報を表示
C:\windows\system32\bcdedit /enum {ntldr} /v

次に、XPのエントリに起動するための情報をセットする

C:\windows\system32\bcdedit /set {ntldr} device partition=C:

XPのエントリにブートローダーの情報をセットする

C:\windows\system32\bcdedit /set {ntldr} path \ntldr

OS選択画面のメニュー表示を設定

C:\windows\system32\bcdedit /displayorder {ntldr} /addlast

これでVistaとXPのデュアルブート環境が整う。

| | コメント (0) | トラックバック (0)

2009/01/14

Inspiron mini 9 設定

Inspiron mini 9(Windows XP Home Edition)の設定

mini9@ウィキを参考に設定

1.SSD8GBモデルはとにかく空き容量が少ないのでSDHC16GBを購入。

2.Cドライブは出荷状態で圧縮されてなかったので、インデックスの付与を解除したのみ。

3.TEMPフォルダと仮想メモリ、IEのテンポラリをSDHCに移す。(2GBのメモリを買ってRAMDiscを設定してもよかったけど、なるべくお金をかけたくなかったのでやめた。ちなみに、現在DELLのサイトで2GBメモリを搭載したmini 9が販売されているので交換しても問題ないと思われる。)

あとは必要なソフトをインストールしたのみ

・セキュリティ:AVG Anti-Virus Free Edition

・クリーナー:CCleaner

・圧縮解凍ソフト:Lhaplus

・エディタ:TeraPad

・バッテリー監視:BatteryBar

Batterybar

・システムモニター:Akabei Monitor

Akabei

| | コメント (1) | トラックバック (0)

2008/10/17

IME2007修正

マイクロソフトがやっとMS Office IME 2007の修正プログラムを公開してくれました。

Link:IME 2007 変換精度、学習機能を改善した修正プログラムのご案内

上記リンクから修正プログラムをインストールしてみたところ、変換時の動作も軽くなり(もたつきは感じられない)、おバカも改善はされているように思えます。

Ime2007

| | コメント (0) | トラックバック (0)

2008/10/12

WindowsにコンソールモードのGnuplotをインストールする

数値計算のデータをプロットするとき大変お世話になるGnuplotをWindowsにインストールする。

GnuplotにはWindows用のwgnuplotが用意されているが、このwgnuplotはLinuxで使うgnuplotとは使い方が異なる。そこで今回は、次のような方針でGnuplotをインストールする。

  • wgnuplotのように起動後に別のウィンドウを起動することなくコマンドプロンプト上で操作する。
  • Linux上で作ったGnuplotを呼び出すコードをWindowsでも書き換えることなしに使えるようにする。(terminal x11は除く)

まずはSourceForgeからgp424win32.zipをダウンロードして解凍する。解凍したら、後で使うのでとりあえず放置。このwgnuplotはbinフォルダ内のwgnuplot.exeを起動するだけで使えるけど、コンソールモードがないし、プログラムから呼び出すパイプ処理もLinuxのそれとは違う。

ではコンソールモードはどうするのかと言うと、「gnuplotメモ」にこんな文言がある。

Octave3.0.2+Forge20080831 Mingw版 にコンソールモードのgnuplot 4.3 (CVS)が添付されています

というわけでSourceForgeからOctave3.0.2のインストーラをダウンロードしてくる。次にインストーラを起動してCドライブ直下にでもインストールする。

インストールしたら「gnuplotメモ」にもあるとおりOctaveのbinフォルダ内にある次のファイルをコピーする。

pgnuplot.exe
wgnuplot.mnu
wgnuplot.hlp
gd.dll
fontconfig.dll
expat.dll
freetype-6.dll
zlib1.dll
libgcc_tdm_dw2_1.dll
jpeg.dll
png12.dll

コピー先はCドライブ直下に「gnuplot」というフォルダを作り、その中に「bin」フォルダを作ってその中。つまり、「C:\gnuplot\bin」内にコピーする。

これで環境変数PATHに「C:\gnuplot\bin」を追加すればコンソールモードのgunplotが使えるようになる。ただしコマンドはgnuplotではなくてpgnuplot。

コマンドはエイリアスでgnuplotにできるけど、プログラムから呼び出すときはエイリアスを使うことはできない。そこでpgnuplot.exeの名前ををgnuplot.exeに変更してしまう。

また、このままではpostscriptファイルの出力ができないので以下のような手順でファイルをコピーする。

  1. wgnuplotのbinフォルダ内にあるshareフォルダをC:\gnuplot\bin内にコピー
  2. wgnuplotのcontribフォルダをC:\gnuplot内にコピー
  3. C:\gnuplot内にshareフォルダを作り、その中にOctaveのshareフォルダ(C:\Octave\3.0.2_gcc-4.3.0\share)内にあるgnuplotフォルダをコピーする

これでかなりそれっぽく動くようになる。試しに次のようなプログラムを動かしてみる。

/*==================================================*/
// 単振動シミュレーション
// using Euler Method
// 2008/12/20
// Hiroshi Nishimura
/*==================================================*/

#include <stdio.h>
#include <math.h>

#define TIME 50     // 終了時刻
#define DT   0.01   // 時間刻み

// Gnuplotによるアニメーション
void plotter(FILE* gp, double t, double x);

/*==================================================*/
//  微分方程式 (d/dt)^2{x} = -x
//  ↓
//  d/dt{x} = +v
//  d/dt{v} = -x
/*==================================================*/
double dxdt(double v) { return +v; }
double dvdt(double x) { return -x; }

int main(void)
{
  int    it;
  double x    = 0.0;                  // 初期位置
  double v    = 1.0;                  // 初期速度
  double t    = 0.0;                  // 現在時刻
  int    tmax = (int)ceil(TIME/DT);   // ループ回数
  FILE*  gp   = popen("gnuplot", "w");

  for(it = 1; it <= tmax; it++) {
    double x_old = x;
    double v_old = v;

    t = it*DT;
    x = x + DT*dxdt(v_old);
    v = v + DT*dvdt(x_old);

    plotter(gp, t, x);
  }

  fprintf(stderr, "End. Hit Return Key\n");
  getchar();
  pclose(gp);
  
  return 0;
}

void plotter(FILE* gp, double t, double x)
{
  fprintf(gp, "set title 'Euler T = %4g'\n", t);
  fprintf(gp, "set xrange[-5:5]\n");
  fprintf(gp, "set yrange[-1:1]\n");
  fprintf(gp, "plot '-' with points title 'Point'\n");
  fprintf(gp, "%g, %g\n", x, 0.0);
  fprintf(gp, "end\n");
  fflush(gp);
}

簡単な単振動のアニメーションを出力するプログラムなのだが、アニメーションもちゃんと動く。(-persistは使えないようだ)

今のところは特に不具合もないようだけど、あくまで自己責任で。

[追記]

postscriptファイルの表示するにはghostscriptとgsviewが必要なのでインストールしておく。(gsviewのパスを通しておくとどこからでも開けるので便利)

Link:Ghostscript 8.63 + GSview 4.9 の日本語版

gsviewを起動すると毎度「Registration」が出てきて鬱陶しいので、ビューワにXnViewを使う手もある。

| | コメント (0) | トラックバック (1)

2008/10/10

NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その5

前回までの作業でC言語開発環境は整いましたが、実は問題があります。

その問題は次のようなコードを実行してみるとわかります。

#include <stdio.h>

int main(void)
{
  int num;
  
  printf("Please Input Num:");
  scanf("%d", &num);
  printf("Num:%d\n", num);
  
  return 0;
}

これをMSYSから実行しても次のようになってしまいます。

$ ./a.exe
100
Please Input Num:Num:100

scanf()の直前のprintf()で表示するはずの文字列が表示されません。これはMSYSで使っているrxvtの実装に問題があるためです。

この問題の対処法はrxvtを使用せず、Windows標準のコマンドプロンプトを使用するのが簡単です。具体的に「はC:\msys\1.0」内にある「msys.bat」の41行目の

if EXIST rxvt.exe goto startrxvt

をコメントアウトして

rem if EXIST rxvt.exe goto startrxvt

とすればMSYS起動時にrxvtが呼び出されなくなります。

| | コメント (0) | トラックバック (0)

2008/10/09

NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その4

1.動作確認

まずはデスクトップ上に作成されたMSYSのショートカットをダブルクリックしてMSYSを起動して次のようにコマンドを入力してください。

user@host ~
$ pwd
/c/Home

user@host ~
$ gcc
gcc.exe: no input files

user@host ~
$ make
make: *** No targets specified and no makefile found.  Stop.

user@host ~
$ gdb
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-mingw32".
(gdb) quit

user@host ~
$ 

gcc、make、gdbはこのようなメッセージが表示されればOKです。また、pwdコマンドの実行結果のとおりホームディレクトリは「C:\Home」になっています。MSYSのデフォルトのホームディレクトリはC:\msys\1.0\homeなのですが、環境変数HOMEが設定されているとHOMEで指定されているパスをホームディレクトリを認識します。

2.設定(お好みで)

MSYSを起動してみてわかると思いますが、MSYSのシェルは白地にグリーンとブルーのプロンプトで目がチカチカします。そこで色を変更してみます。

シェルの色を変更するには「C\msys\1.0」内にある「msys.bat」を編集します。

55行目にある
if "x%MINGW32BGCOLOR%" == "x" set MINGW32BGCOLOR=LightYellow
if "x%MINGW32FGCOLOR%" == "x" set MINGW32FGCOLOR=Navy
を次のようにコメントアウトしてこのような2行を追加
rem if "x%MINGW32BGCOLOR%" == "x" set MINGW32BGCOLOR=LightYellow
rem if "x%MINGW32FGCOLOR%" == "x" set MINGW32FGCOLOR=Navy
if "x%MINGW32BGCOLOR%" == "x" set MINGW32BGCOLOR=Black
if "x%MINGW32FGCOLOR%" == "x" set MINGW32FGCOLOR=White

また、Emacsの背景も黒にしたい場合はemacsコマンドに-rvオプションをつけて起動すればEmacsが黒基調になりますが、いつもオプションをつけるのは面倒なので'emacs -rv'を'emacs'と認識するようにエイリアスを登録しておきます。

エイリアスを登録するには「C:\msys\1.0\etc」内にある「profile」に

alias emacs='emacs -rv'

と追記しておく。(MSYSを再起動すると変更が反映される)

| | コメント (0) | トラックバック (0)

2008/10/08

NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その3

今度はMinGWとMSYSをインストール。

1.MinGWのインストール

まずはSourceForgeからMinGW-5.1.4.exeをダウンロードします。ダウンロードしたらインストーラを起動します。(このとき新しくフォルダを作って、その中でインストーラを起動したほうがいい)

インストール途中にインストールするコンパイラの選択画面が表示されるので欲しいインストーラを選択します。その後インストール先の指定画面が表示されますが、もしパスに空白が含まれているとトラブルの元なのでインストール先は「C:\MinGW」とします。

2.MSYSのインストール

SourceForgeからMSYS-1.0.10.exeをダウンロードしてきて、インストーラを起動します。(MinGWのインストーラと同じフォルダ内で起動する)

インストール先を聞かれたら「C:\msys\1.0」とします。

インストールが開始されてプログレスバーが100%になるとコマンドプロンプトが立ち上がり、いくつかの質問に答えることになります。

Q.1 Do you wish to continue with the post install? [yn ] ・・・ y

Q.2 Do you have MinGW installed? [yn ] ・・・ y

Q.3 Please answer the following in the from of c:/foo/bar.
       Where is your MinGW installation?
MinGWをインストールしたパスを入力します。このとき「\」ではなく「/」を使います。

このあと、もし「Makeがありません」といった内容のメッセージが表示されても問題ないので先に進んでください。

3.GDBのインストール

一応、デバッガをインストールしておきます。

SourceForgeからgdb-6.3-2.exeをダウンロードしてきてインストーラを起動します。インストール先はMinGWをインストールしたパスと同じに。「C:\MinGW」

4.環境変数の設定

PATHに、「C:\MinGW\bin;C:\msys\1.0\bin」を追加

また以下を新規作成

C_INCLUDE_PATH=C:\MinGW\include

CPLUS_INCLUDE_PATH=C:\MinGW\include

LIBRARY_PATH=C:\MinGW\lib

| | コメント (0) | トラックバック (0)

2008/10/07

NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その2

まずはNTEmacsのインストール。

1.NTEmacsのバイナリをダウンロードする。

NTEmacsはIMEを利用した日本語入力に難があるようなので、「NTEmacs JP Project」からIME patchが当てられたNTEmacsのバイナリをダウンロードします。(現在の最新版は22.2)

Link:NTEmacs JP Project - SourceForge.JP

2.インストール

ダウンロードしたバイナリを起動すると解凍する場所を聞いてくるので、「C:\」を指定します。(ハードディスクのルートならC:\でなくてもよい)

解凍が終わるとC:\emacsが作成されます。NTEmacsの実行ファイルは C:\emacs\22.2\bin内のrunemacs.exeです。

3.起動する前に

NTEmacsを起動する前にいくつか設定を済ませておきます。

まずはC:\に「Home」というフォルダを作成しておく。(今後、このフォルダがホームディレクトリになる)

次は環境変数PATHに、NTEmacsの実行ファイルが置かれているパス「C:\emacs\22.2\bin」を追加する(パスとパスはセミコロン「;」で区切る)。これでNTEmacsをどこからでも呼び出すことができるようになる。

さらに環境変数HOMEを作って、値には「C:\Home」を設定する。

4.NTEmacsを起動

とりあえずrunemacs.exeのショートカットをデスクトップに作成してNTEmacsを起動してみます。

Ntemacs_2 

設定ファイル「.emacs」はC:\Home内に作成します。.emacsを新規作成して

(setq inhibit-startup-message t)

と書いて保存し、NTEmacsを再起動すると先ほどの起動画面が表示されなくなることが確認できるはずです。

| | コメント (0) | トラックバック (0)

2008/10/06

NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その1

Windows上にC言語開発環境を構築する方法はいろいろあるが、比較的よく見かけるのは以下のようなものだろう。

  • Borland C++ CompilerもしくはVisual C++ Express Editionをインストールしてメモ帳等のエディタでコーディング
  • CygwinをインストールしてWindows上にUNIXライクな環境を構築する
  • Eclipse CDT + MinGW
  • coLinuxもしくはandLinuxを使う
  • VMware等の仮想PCソフトを使ってLinuxをエミュレート(Windows上ではないけど)

私はcoLinux/andLinux以外は全て試してみて現在はVMwareに落ち着いている。

しかし、この方法はLinuxディストリビューションをまるごと使いたいという目的のほうが強いので、単純にC言語開発環境を構築するという観点で見ると無駄が大きい。(しかもある程度のパフォーマンスを得るにはCPUやメモリ容量などの面で制約があるので一昔前のPCだと厳しい)

これはLinuxカーネルをWindows上で動作させるcoLinux/andLinuxにも言えることだと思う。

そこで今回は次のような方針で開発環境を構築する。

  • できるだけシンプルに
  • C言語入門レベルに統合開発環境はいらない
  • あまりマウスはつかいたくない
  • なるべくUNIXライク
  • Emacs使いたい

「Cygwinで全て解決」な感じもするが、CygwinもC言語開発環境としては十分大げさであることと、いつもCygwinではつまらないので、NTEmacs + MinGW + MSYSで構築してみる。(VistaでCygwin/Xが不安定であることも理由の一つ)

| | コメント (0) | トラックバック (0)

2008/07/27

Office 2007のアドオン「SaveAsPDFandXPS」

この「SaveAsPDFandXPS」はOfficeでPDFもしくはXPS形式で保存などができるアドオン。

これをインストールしておけば、Office文書を閲覧できない人にもPDFにして渡すことができるので非常に便利。

Link:SaveAsPDFandXPS

| | コメント (0) | トラックバック (0)