私のHDDの構成は、およそこうなっている。
/dev/sda … メインのHDD(内蔵)、500GB
/dev/sda1 … Windows の「システムで予約」 (100MB)
/dev/sda2 … Windows の C ドライブ (201GB)
/dev/sda3 … openSUSE の /boot ディレクトリ (500MB、アクティブ)
/dev/sda5 … openSUSE の / ディレクトリ (40GB)
/dev/sda6 … Linux のスワップパーティション
/dev/sda7 … openSUSE と Ubuntu 共用の /home ディレクトリ (72GB)
/dev/sda8 … Ubuntu の / ディレクトリ (28GB)
/dev/sda9 … Fedora の / ディレクトリ (28GB)
/dev/sda10 … Windows の D ドライブと C:\Cygwin フォルダー(Cygwin用) (8GB)
/dev/sda11 … FreeBSD の /usr ディレクトリ (36GB)
/dev/sda11 の後ろの未使用領域 … 50GB程度
/dev/sdb … 以前のPCの内蔵HDDを転用したもの(USB接続)、120GB
/dev/sdb1 … Windows の G ドライブ(バックアップ用) (110GB)
/dev/sdb2 … FreeBSD の スライス (4GB)
Fedoraのみ64ビットOSで、ほかは32ビット版を使用している。openSUSEは通常起動でもcoLinuxでも使えるようにチューニングしてある。WindowsはプレインストールのWindows 7 Home Premiumを使っている。
C:\coLinux フォルダーに
coLinuxをインストールし、WindowsからもopenSUSEにアクセスできるようにしてある。私のcoLinuxの設定ファイルは次のようになっている。
kernel=vmlinux-2.6.33.5-co-0.7.8-****
cobd0="\Device\Harddisk0\Partition4"
cobd1="\Device\Harddisk0\Partition5"
cobd2="\Device\Harddisk0\Partition3"
cobd3="\Device\Harddisk0\Partition6"
cobd4="\Device\Harddisk0\Partition7"
cobd5="\Device\Harddisk0\Partition8"
cobd6="\Device\Harddisk0\Partition10"
cofs0="C:\"
cofs1="D:\"
sda5=:cobd0
sda6=:cobd1
sda3=:cobd2
sda7=:cobd3
sda8=:cobd4
sda9=:cobd5
sda11=:cobd6
initrd=initrd.gz
mem=512
eth0=tuntap
root=/dev/cobd0 ro COLINUX=1
1行目は、カスタムカーネルを使うための指定である(ファイル名の一部を伏せてある)。実はあることが原因でカーネルの再構築を余儀なくされたのである(あとで書く)。
cobd0〜cobd6には、実ディスクのパーティションをそのまま使うことを指定している。プライマリパーティションはWindows側ではPartition1〜Partition3でありLinuxのsda1〜sda3と番号が同じだが、拡張パーティション用のsda4がWindowsではPartition0となるようで、以降番号がひとつずつずれるようだ。
cofs0とcofs1には、coLinuxからホストOSのディスクにアクセスするための指定を行っている。Linux単体起動時にはFuse経由でWindowsのパーティションをマウントしている(私の環境では普通にmountするだけで使えるようだ)。
「sda5=:cobd0」などといった指定は、単体起動時との互換用のエイリアスである。こうすることで、わざわざfstabを使い分けたりしなくてすむ(以前FreeBSDで似たような事をやろうとして失敗した)。
なお、最後のCOLINUX=1というのは、通常起動かcoLinuxかを判断するために設定している環境変数である。これを元に、init.dの処理を分岐させている。
coLinuxへのSSH接続には、PuTTYを使っている。デフォルトのcoLinuxコンソールでは英語しか表示できないのでSSHクライアントは必需品といえる。SSHにはX11フォワーディングという機能もあるので、その意味でも重要である。「Xディスプレイの場所」には、「localhost:1.0」を指定している。なぜ:0.0にしないのかというと、以前Cygwin X Serverを:0で起動させたときに原因不明のエラーで起動せず、再起動しても直らなかったためである。
日本語環境だが、文字コードは「UTF-8 (Non-CJK)」に設定している。なぜなら、CJKに設定すると画面が崩れる場合があるからである。ほかの設定として、
Glass対応のバリアントを使っているので背景はGlassで透過にしている。バックスペースキーの指定は「Control-? (127)」にした方がうまくいくようだ。
セキュリティ上、SSHでのrootログインは無効にするべきなので、openSUSEのsshdをそのように設定している。なぜかデフォルトでrootログインを許可する設定になっていたので怖い怖い。色々な所に書かれているように、/etc/ssh/sshd_config の「PermitRootLogin」を「no」に変えて、sshdを再起動してやればいい。
なお、Cygwinのコンソールにも
CygTermを経由してPuTTYを使っている。なぜか普通にソースからコンパイルしてもうまくいかないので、
TeraTermに付属していたものを流用している。
PuTTYのインストール先は、C:\Program Files以下にしていると設定が保存できなかったりするので私はC:\PuTTYにしている。
Xサーバーは、以前は
Cygwin Xを使っていたのだが、
Xmingというのをインストールしてみた。xlaunch設定ファイルをスタートアップで読み込ませる設定にしてある(以前はCygwin Xを自動起動する設定だった)。なお、デフォルトのインストール先では問題が起きる可能性があるので、C:\Xmingというフォルダーにインストールしてある。
XmingにはX11フォワーディングに使えるだけでなく、XDMCPを使ってログインできる機能も搭載されている。ただ、openSUSEの初期設定ではXDMCPでのリモート接続が出来ないので
YaSTから設定してやる必要があった(SuSE LinuxはopenSUSEの旧称)。
(追記) ログインしたらすぐに切断されるのでどこが悪いのか設定書き換えたりとかいろいろしていたのだがまったくXDMCPログインに成功する気配無し。KDMのログイン画面までは表示されるが… 結局XDMCPログインはあきらめることに。
サウンド環境についてはしばらく保留していたのだが、最近になって
PulseAudioをインストールし、スタートアップで起動するように設定した。例によってC:\Program Files以外の場所にインストールしてある。coLinuxでの使用方法については
こちら(英語)を見ていただくとする。私の環境のopenSUSEではPulseAudioがいつの間にかインストールされていたようで、VLCで音楽を再生してみた所正常に再生された。単体起動時に音声が鳴らなくなる問題が発生したが、別のところに原因があったようで、設定ファイルを変更して対処した。
(追記)原因はPulseAudio側がデフォルトの出力先をオンボードのサウンドユニットとして認識していたことだったようである。私の環境ではUSB接続のSoundBlaster X-Fi Goを通常使用しているので、 /etc/pulse/default.pa にこの様に追記することで正常に再生されるようになった。
### Make some devices default
set-default-sink alsa_output.usb-Creative_Technology_SB_X-Fi_Go__38389C468511B1A50481600200000000-00-Go.analog-stereo
set-default-source alsa_input.usb-Creative_Technology_SB_X-Fi_Go__38389C468511B1A50481600200000000-00-Go.analog-stereo