掲示板お問い合わせランダムジャンプ



この広告は30日以上更新がないブログに表示されております。 新しい記事を書くことで広告を消すことができます。

別のblogとか

2010年11月28日
Linux側の設定ファイル
デュアルブート用にインストールしたLinuxをcoLinuxでも動くようにするのは少し設定をいじる必要があります。
私の環境では、Linux(openSUSE 11.3)側の設定はこの様になっています。

coLinuxとstand-aloneの識別用の /etc/init.d/colinux (新規作成)
#!/bin/sh
#
### BEGIN INIT INFO
# Provides: colinux
# Required-Start:
# Required-Stop:
# Default-Start: B
# Default-Stop:
# Description: coLinux-related configuration
### END INIT INFO

rm -f /etc/udev/rules.d/70-persistent-net.rules

if [[ $COLINUX ]]; then
SUFFIX=colinux
touch /var/local/colinux
else
SUFFIX=standalone
rm -f /var/local/colinux
fi

#for conf_file in \
#"/etc/fstab" \
#; do
# cp -f $conf_file-$SUFFIX $conf-file
#done

: exit 0


coLinuxとstand-aloneでマウント方法が異なるディスクをマウントするための /etc/init.d/extramount (新規作成)
#!/bin/sh
#
### BEGIN INIT INFO
# Provides: extramount
# Required-Start: $syslog $stoppreload
# Required-Stop: $syslog $stoppreload
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: mounts the Extra partitions
### END INIT INFO

case "$1" in
start)
echo "Mounting the Extra partitions..."
if [[ -e /var/local/colinux ]] || [[ $COLINUX ]]; then
mount -t cofs cofs0 /media/windows
mount -t cofs cofs1 /media/cygwin
mount -t ufs -o ufstype=ufs2 /dev/sda11 /media/freebsd/usr
touch /var/local/colinux
else
mount /dev/sda2 /media/windows
mount /dev/sda10 /media/cygwin
modprobe ufs
mount -t ufs -o ufstype=ufs2 /dev/sdb5 /media/freebsd
mount -t ufs -o ufstype=ufs2 /dev/sdb7 /media/freebsd/var
mount -t ufs -o ufstype=ufs2 /dev/sda11 /media/freebsd/usr
fi
;;
stop)
echo "Unmounting the Extra partitions..."
if [[ -e /var/local/colinux ]] || [[ $COLINUX ]]; then
umount cofs0
umount cofs1
umount /dev/sda11
else
umount /dev/sda2
umount /dev/sda10
umount /dev/sdb7
umount /dev/sda11
umount /dev/sdb5
fi
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac

: exit 0


/home/USERNAME/.bashrc に追加する部分
if [ -e /var/local/colinux ]; then
export DISPLAY=localhost:10.0
export PULSE_SERVER=`echo $SSH_CONNECTION|sed -e "s/ .*\$//"`
fi
[ 投稿者:芙蓉美晴 (MihailJP) at 11:15 | Linux | コメント(0) | トラックバック(0) ]

openSUSE on coLinuxのカーネル再構築
あるとき、いきなりcoLinuxでopenSUSEが起動しなくなったので、コンソールをONにして起動してみると
************************* FATAL ERROR *************************
******* CONFIG_DEVTMPFS missing from kernel, cannot continue...
***************************************************************
と言われて止まっていた。

結局カーネルを再構築することになったのですが、カーネルを再構築するための環境自体がなかったのでDebianのディスクイメージをダウンロードすることに。

出力したカーネルをホストOSのディスクに書き出す必要があるので、debian-lenny.confに次の設定を追加した。
cofs0="C:\coLinux"
cobd2="\Device\Harddisk0\Partition4"
cobd1="\Device\Harddisk0\Partition5"


Debianを起動したらここら辺を参考にカーネルを再構築。私が行った設定は、
・「Device Drivers→Generic Driver Options→Create a kernel maintained /dev/tmpfs (EXPERIMENTAL)」を「*」に
・「Device Drivers→Generic Driver Options→Automount devtmpfs at /dev」を「*」に
・「File systems→Miscellaneous filesystems→UFS file system support (read only)」を「*」に
・「File systems→Miscellaneous filesystems→UFS file system write support (DANGEROUS)」を「*」に(!)
である。UFSサポートはモジュールでのサポートにしようと思ったのだが、色々面倒臭かったのでbuilt-inにした。

で、カスタムカーネルでopenSUSEを起動したら正常に起動。
[ 投稿者:芙蓉美晴 (MihailJP) at 07:33 | Linux | コメント(0) | トラックバック(0) ]

私のcoLinux環境の話とか
私の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
[ 投稿者:芙蓉美晴 (MihailJP) at 06:58 | Linux | コメント(0) | トラックバック(0) ]

2010年11月02日
システムメールをThunderbirdで読む
システムメールをThunderbirdで読むやり方はUbuntuのフォーラムに書いてありましたが、若干情報が古いようで今のバージョンだと勝手が違うところがあるようです。

私のメインLinux環境はopenSUSE 11.3で、マルチブート環境でcoLinuxとスタンドアロンの両方に対応するようにしてあります。

やり方は次の通り。

1) Thunderbirdを起動し、「ローカルフォルダ」に「System」というサブフォルダを作ります(この名前は何でもいい)。
2) Thunderbirdを一旦終了します。
3) コンソールで、次のように入力します。openSUSEでは、/var/mail は /var/spool/mail へのシンボリックリンクになっています。
$ cd "~/.-thunderbird/xxxx.default/Mail/Local Folders/"
$ rm System
$ ln -s /var/spool/mail/USERNAME System
4) Thunderbirdを起動すると、システムメールが読めます。


おまけ。rootのシステムメールも読む方法。
まず前提として、システム管理者本人である必要があります。また、次の方法はopenSUSEでの方法です。

1) YaSTのメニューから、「セキュリティーとユーザ」→「ユーザとグループの管理」を選択します。
2) 「ユーザ」タブから自分が普段使っているアカウントを選択し、「編集」をクリックします。
3) 「詳細」を選択し、「追加のグループ」の一覧の「wheel」にチェックを入れ、「OK」をクリックします。
4) 「OK」をクリックし、設定を保存します。
5) コンソールから、次の操作をします。
$ su
Password: (rootのパスワードを入力)
# cd /var/spool/mail
# chown root:wheel root
# chmod 660 root
# exit
6) Thunderbirdの設定をします。やり方は前述の通りですが、メールスプールへのシンボリックリンクを /var/spool/mail/root に設定します。もしかすると、再ログインが必要かもしれません。


余談。
Thunderbirdをビルドサービスの最新版からインストールしたのはよかったのですがなぜかエラーで起動しないのでどうしたものかと調べたら、「gsettings-backend-dconf というパッケージを削除すると動く」という記述があったのでそれを行ったところ、あっさり起動しました。何が起こっていたのやら。
[ 投稿者:芙蓉美晴 (MihailJP) at 11:03 | Linux | コメント(0) | トラックバック(0) ]