SC430のうろ覚え

最終更新:

番外:WindowsXPとFreeBSDのデュアルブートで失敗

ふと

会社の先輩がWindowsXPとVINE Linuxを共存(デュアルブート)させていた。しかもWindowsのブートマネージャを利用して、でだ。まぁ今後このままの状態で運営してもいいが、WindowsからFreeBSDに切り替える考えもあったので、ちょっと冒険してみたくなってきた。

でも空いているまともなマシンはない。とはいっても運用中のサーバでやるわけにはいかないしなぁ・・・。

実験台

ん? バックアップサーバなら原則アクセス無しだからいいかな?。ふっふっふ。(←危険人物)

決定〜。(マテ)

どうせクリーンバックアップ(←そんな専門用語はない)取りたかった時だし。

領域確保

一旦バックアップタスクを無効にしておき、バックアップ領域を解放する。今後入れるための容量を残して再び領域確保する。XPのディスクの管理画面ではもう何度もやっている。

バックアップ

バックアップタスクを有効にしてみる。が、一部時間がかかりすぎる部分があったので検討してみる。FreeBSDサーバのWebコンテンツだが、apache2のDAVを利用してみると差分コピーできるようになったので時間短縮できた。

で、バックアップ機能は復旧。

まず

情報の収集だ。ふむふむ。

さて

FreeBSD 7.0のCD-ROMから立ち上げてみる。Windowsの時に残りの領域もついフォーマットしちゃったので、スライス(パーティーション)設定では最後のスライスを一旦削除。最後のスライスだと勘違いしそうな領域は容量が無きに等しいので、領域確保しきれなかった部分だろう。そのまま解放された領域で再びスライスを作成。

運命の選択

この直後に重要な選択が待っている。ブートマネージャの選択だ。

  1. BootMgr - FreeBSDのブートマネージャをインストールするよん
  2. Standard - FreeBSDの通常のMBRをインストールするよん(OS選択ないよ)
  3. None - MBRを触らないでほっとくよん

これはNoneでしょう。他をやったらNTLDRが呼び出されなくなるし。

さくさく

後はパーティーション(論理パーティーション)は自動設定、最小インストールでやってみる。

で、/boot/boot1をWindowsパーティーションにコピーしておくといいんだっけな。再びインストーラCDから起動して、FixitからShellを選ぶ。ALTF4でコンソール画面を出して・・・。

# mount -t ntfs /dev/ad0s3 /mnt
mount: not found.

おや?

# /bin/mount
/bin/mount: not found.
# /sbin/mount
/sbin/mount: not found.

あれ?

# /bin/ls
/bin/ls: not found.

いかん、使い方を忘れた(汗)。CD-ROMを立ち上げ直して再度やってみたが、やっぱりうまくいかない。ま、後でいいか。最悪FTPでもいいし。

・・・

とりあえずXPを立ち上げてみるか。CD-ROMを抜いて再起動。

・・・・・・
BTX Loader
...
(FreeBSDの起動画面)

あれっ!? Windowsが起動してこない!!

FreeBSDが起動してくる・・・。なんで?・・・MBRはそのままにしてあるのになぁ・・・。

蘇生その1

MBRが書き換えられてしまったと思ったので、XPのインストーラCDから起動し、回復コンソールを起動する。

C:\WINDOWS>fixmbr
(以下指示に従う)

これでMBRは直っているはずだが・・・どうか?

・・・ダメだ、FreeBSDが起動してくる。

蘇生その2

XPのインストーラCDから起動し、回復コンソールを起動する。

C:\WINDOWS>fixboot
(以下指示に従う)

これでどうか?

・・・ダメだ、FreeBSDが起動してくる。

蘇生その3

仕方がないので、Windowsの修復を行ってみる。

・・・ダメだ〜!、これでもFreeBSDが起動してくる。困った・・・。

神様を探せ

気を取り直して検索して情報収集を行う。ん?これか・・・?

ヘルプ、Me!

神様いわく、

パーティーション情報のアクティブ属性が変更されている可能性があるので、WindowsMeに入っているfdisk.exeを使用して、正しいパーティーションにアクティブ属性をつけましょう。

これ!これかも!

WindowsME、WindowsME、WindowsME・・・あった、前のパソコンに付属してたやつ!

なつかしい

Meからブータブルになった気がするのでそのままCDを突っ込んで再起動。お、来た来た!。な、なんか懐かしい感じがするなぁ。あれ?もうプロンプトまで来た。早っ。

fdisk.exe
A:\>fdisk

まず大きなパーティーションを扱えるようにするか聞いてきたので「Y」。そしてNTFSを扱えるようにするかみたいなことを聞いてきたのでこれも「Y」。

んでメインメニューが出てきた。アクティブの変更を選んで先頭のDOSパーティションを選んでアクティブに。

再起動してくれ?、はいはい、言われなくてもやりますよ(汗)

蘇生

きた〜〜〜〜〜っ!

おつりが・・・

・・・と、ここまではいいのだが、Windowsの修復が中途半端に止まっていたので、なんだか無駄なインストール作業が始まっちまいました。

さて

問題のFreeBSDだが、このままでは起動できない。/boot/boot1をコピーしなきゃならんのだが・・・。

やっぱり

FreeBSDのCDから起動してFixitShellからどうにかしようともがいたが、全然わからん。

・・・CD?

・・・まてよ?。FreeBSDのCDも起動するんだから/boot/boot1入ってないかな?。

・・・あった。\boot\boot1・・・。でもコレ、CD起動用・・・かな?。・・・試しにやってみっか。C:\にコピー。

ブート設定

で、コンピュータ(システム)のプロパティ→詳細設定→起動と回復→→起動システム→・・・でおそらくnotapadが開くので、最後の行に追加する。

\boot1="FreeBSD 7.0"

保存してnotepadを閉じ、一旦してもう一回に。起動システムの一覧に「FreeBSD 7.0」が出てきた。

で、再起動。

おっ

ブートメニューが出てきました!。FreeBSDを選択っと。

あれっ?

システム構成に問題があるので起動できません〜〜〜?

やっぱりあのboot1じゃダメかなぁ?。でも一旦Windowsを起動しなおして設定を確認。あ、間違えてた

C:\boot1="FreeBSD 7.0"

もう一回再起動。

やたっ

FreeBSDを選択。

やった〜〜!

できちゃった〜。CDのboot1でもいいんだなぁ。へぇ〜。

しかし

そんなにfdisk.exeやWindowsMeのCDを使わないとデュアルブートできないものか?、という疑問が起こってきた。

  1. FreeBSDを起動してfdisk等のツールでWindows起動パーティションにアクティブ属性をつける。
  2. スライス編成の際にWindows起動パーティションにアクティブ属性をつける。

このどちらかがあるはず!。

調査

先ほど入れたFreeBSDは最小インストールだったので、やり直しは痛くも痒くもない。ならば最初からやり直してみよう。

FreeBSDのCDから起動し、Partitionエディタの画面まで進む。

おや?

よく見ると、

S = Set Bootable

というコマンドがある。なんだこれ?・・・もしかして・・・これか?。Windowsのシステムが入っているパーティーションでSを押してみると・・・「A」の文字がついた。

これかっ!?

はやる気を抑えて最小インストールを行う。そして再起動。

おっ!

ブートメニューが出てきました!。FreeBSDを選択っと。

・・・まてよ・・・もうすでにWindowsMeのfdisk.exeで直したからこうなるのかな・・・?。その可能性もあるので今度は逆に間違えてみる。

再びCDから起動し、アクティブ属性には触れずに最小インストール。

んっ!

ブートメニューが無くいきなりFreeBSDが起動、つまりあの現象が再現した。ビンゴかも・・・。

よし、

よし、もう一回確認だ。

  1. WindowsでFreeBSDの領域を解放
  2. FreeBSDのCDからインストール、その際にWindowsの起動パーティーションにA属性、MBRは触らず
  3. Windowsのブートマネージャが有効

オッケイ!。

デュアルブートまとめ

Windowsのブートマネージャを使う方法としては今まで見たことのない簡単な手段なので、せっかくなのでまとめておこう。ただし、ハードディスクをまたいだデュアルブートは対応していないはずだと思う。

  1. FreeBSDのハードディスク領域を残しつつ、WindowsXPをインストールする。
    もしくはWindowsXPが入った状態から、専用ツールなどを使って空き領域を作る。
    この時、プライマリパーティーションがもう一つつくれる状態にすること。
  2. 一旦WindowsXPを起動する。
  3. FreeBSDのインストーラ起動CDを入れて、CD:\boot\boot1というファイルをC:\boot1.bsdなどのように、Windows起動ボリュームのルートディレクトリにコピーしておく。
  4. システムのプロパティ→詳細設定→起動と回復→→起動システム→で編集画面が開くので、最後の行に追加する。
    C:\boot1.bsd="FreeBSD 7.0"
  5. 保存して閉じ、一旦してもう一回を押す。起動システムの一覧に「FreeBSD 7.0」が出てくることを確認する。
  6. 再起動し、BIOSの設定でCDから起動するように設定し、FreeBSDのインストーラ起動CDから起動する。
  7. FreeBSDのインストールを始める。
  8. スライス(パーティーション)設定画面では、unusedの領域にカーソルを合わせてCを押し、指示の通り「165」(FreeBSD)を入力する。
  9. FreeBSDスライスを作成したら、最初のntfsスライス(パーティーション)にカーソルを合わせてSを押し、Aフラグを立たせること。
    これを忘れるとWindowsが起動できない
  10. Qを押してスライス設定を終了すると、ブートマネージャについて聞かれるのでnoneを選択すること。
    これを間違えるとWindowsが起動できないor地味なブートマネージャになる
  11. 後は普通にインストール作業を続ける。

FreeBSDのインストーラ起動CDの中の\boot\boot1ファイルを使う方法は自分の環境ではうまくいきましたが、他の環境でもうまくいくという保障はできませんのであしからず。



番外:FreeBSDでXorgでgnomeインストール

デュアルブートが成功したところで今度はGUIの環境を作ってみたい。って最初っからそれが目的だったり。

まずはXorg

まずはXorgのインストールから。Packagesでインストールしても良かったが、FreeBSDの再インストールでDistributionX-userにしてインストールしてみる。あまり覚えていないが10〜15分ぐらいかかったかな。

問題です

さぁ、ここからが一つの難関だ。以前試した時は全然どうにもならなかった、グラフィックの設定。

# xorgconfig

いやー全部英語だ。とりあえず適当に答えてみる。

最後に設定ファイルに記録するか聞いてくるのでy

さて・・・

そいじゃーいきますか!。

# startx
:
:
No devices detected

撃沈。

撃ちてし止まむ

何度も何度も試行錯誤しているうちになんとなく飲み込めてきた。

さて・・・

そいじゃーいきますか!。

# startx
:
:
No devices detected

なんでやねん・・・(涙)

神様・・・

神様に聞いてみるとXorg -configureで自動的に設定してくれるらしい。

# Xorg -configure

これも細かい記憶はないが、うまくいかなかった・・・。なぜだ・・・神様・・・。

ロクなことがない

そうだ、ログを見てみよう。/var/log/Xorg.0.logか、変な名前だな。

Failed to open /dev/io for extended I/O

んー。英語でよくわからないが、/dev/io(と、他の行で/dev/mem)にアクセスできないから失敗したようなことが書いてあるようだ。

しかし実際にlsコマンドで確認してみると、どちらもちゃんと存在する。う〜ん、手詰まりか・・・。

気晴らし

気晴らしに先輩と話してみた。

自分「全然うまくいかないっすよー。」
先輩「ubuntuとかFreeSBIEとかはどうなの?。」
自分「それだとちゃんと1024×768の画面なんですよねぇ。」
先輩「新しいバージョンの不具合だったりして。前のバージョンでやり直してみれば?。」

前のバージョン・・・か。やり直してみるか。シャボン玉ガールズのプルンちゃんもがんばったんだし。

やり直し

焼いてあったFreeBSD 6.2を、スライスを削除して再びX-userにてインストール。面倒くさいので設定もIPアドレスとパスワードとntpdateぐらいにした。

xorgconfigで設定をして、startx・・・・。

あれぇ?・・・。

そこにはtwmの画面が。しかも1024×768の画面で。(昔に挑戦した時は1024×768の画面もできなかった。)

なんでやねん

なんでだろう?なんでだろう?なんでだなんで・・・いやいや、どこでこうなったんだろう?。単純に前のバージョンでやり直したから?。待てよ、前のインストールの時にはいろんな設定をいじくったな。そういえば・・・セキュリティとかでセキュリティレベルとかいうのを触って・・・その後どうしたっけ?・・・。

再び7.0

そういうことなら再度FreeBSD 7.0で試してみる。同じようにセキュリティレベルは触らずにインストール、xorgconfigしてstartx・・・。

やった!。

できました〜(感涙)

ちなみに、後で知ったことだが、やはりカーネルのセキュリティレベルを2以上にしてあると、この現象が発生するらしい。

gnome

Xorgが使えるようになったので、次はgnomeだ。これもパッケージインストールしちゃおう。

・・・。

・・・。

・・・。

へんじがない。ただのしかばねのようだ。

なんてくだらない事を考えているうちに1時間も経ってしまった。どこかで書いてあるのを見たけど、こんなのコンパイルしたら本当に丸2日間かかりそうだな。

すたーと

startx・・・してもtwmだよな。やっぱり。

くやしまぎれにxtermからfirefoxと打ち込んでみる。あれ?動くじゃん。すげー。こんな画面(失礼)でもちゃんとこういうのは動くんだね。しかも中身は日本語で・・・。

文献をあさってみると~/.xinitrcというファイルにtwmとなっていればそれをgnome-sessionと書き換えればいいそうだ。って、そんなファイルがもともと無いので作成する。

~/.xinitrc
gnome-session
すたーと!

やたっ!。gnome動きました。でもなんかダイアログが出てきた。なになに?ぷらいびりっじどゆーざー・・・つまりrootログインお断りってことか?。強行。

おっ、デスクトップだぁ。でも全部英語だなぁ・・・日本語にならないかな・・・。

あちこち設定画面を探してみるが、言語設定の画面はどこにも見当たらない。探し方が悪いのかなぁ・・?。文献をあさってみたが、それらしい方法もどこにも見当たらない。

途方にくれて

結局、日本語に切り替える手段が見つからないまま時は過ぎていった。先輩と話をして「きっと日本語キットがあるんだよ、きっと。」という話も出たが、そんなことだったらすでに文献に書いてると思うのだが・・・。

でも日本語入力の文献が出てきたので、とりあえずja-scim-anthy.tbzというパッケージでいいらしい。でも依存パッケージがたくさんあるのでゴニョゴニョっと調べてみたら、あと

が必要らしい。gmakeはCDから、あとは拾ってきてインストール。再起動して・・・gnomeを起動して・・・、コントロール+スペースで小窓が出てくるらしいが、何もそんなものは出てこない。調べてみたら~/.xsessionに追記らしい。

~/.xsession
setenv  XMODIFIERS @im=SCIM
setenv  LANG ja_JP.eucJP
scim -d

これでやり直してみたが、さっぱり変わらない。どうしたもんか。まぁいいや、ログイン画面を使えるようにしておくか。

えーと確か

確か、グラフィカルログインは/etc/ttysをいじるんだったな。/usr/X11R6/bin/xdmのある行のoffonにするんだったな。で、/usr/X11R6/bin/xdm/usr/X11R6/bin/gdmに変更して再起動。

・・・ちと妙ちくりんなログイン画面が。あ、これはxdmの画面かな?。とりあえずログインしてみるか・・・ってログインできない!。困った・・・。

コマンド:にげる

とりあえずどうにかしてログインしないと・・・あっ!CTRL+ALT+BSは?・・・抜けた!。通常のログインできるか・・・?・・・あっまたxdmの画面に!。またCTRL+ALT+BS、ログイン成功・・・ee /etc/ttys・・・。間に合った、CTRL+ALT+DEL・・・再起動。

意外とxdmってしつこく出来てるんだな(笑)

あらま

ファイル検索してみたら、/usr/X11R6/bin/gdmでなくて、/usr/X11R6/sbin/gdm/usr/local/etc/rc.d/gdmだった・・・。でも文献を検索してみると、/etc/rc.confに次のように記述すると書いてあった。当然先ほどの変更は戻しての話。

/etc/rc.conf(に追記)
enable_gdm="YES"
enable_gnome='YES"

再起動してみると・・・おお、きれいな画面で立ち上がった。よかよか。

ん?。

よく見るとログイン画面の下のほうになにやらメニューがある。いくつか開いてみたのだが、その一つに言語設定メニューがあった。日本語・・・これだけかなりの種類が用意されているのでないはずが無い。早速日本語を選択、するとログイン画面を再起動する確認が出て、gdmが再起動する。

プチ海外旅行?

日本語だぁ〜〜っ!

まるで英語を話せない日本人が海外へ旅行してちょっと疲れてきた時に日本語を話せる現地スタッフに出会ったときの感動だ(笑)

で、そのままログインする。おおぉ、ここも日本語メニューだ。そうかぁ、ここはそういう意味だったんだ、うんうん。

で、再起動する・・・予想はしていたが、再起動後はまた英語に戻ってしまった。また日本語を選べばいいというわけにはいかないしな。

練り直し

再び文献をあさりまくる。と、こんな文献が見つかった。

gdmで起動した場合、.xinitrc.xsessionは読み込んでくれません。/usr/local/etc/rc.d/gdmの先頭部分に
export XMODIFIERS @im=SCIM
export LANG ja_JP.eucJP
と書いておくとよいでしょう。

・・・そうか、つまり、ログインする以前の設定だから、ログイン後に読み込まれる設定ファイルに記述しても無駄ってことか。たぶん。というわけで

/usr/local/etc/rc.d/gdm(の先頭あたりに追記)
export XMODIFIERS @im=SCIM
export LANG ja_JP.eucJP
scim -d
よっしゃ!まかしとき

再起動・・・おっ!

ビンゴ〜!

やった!、こういうことか・・・。あと、#!/bin/shだからexportで変数をセットしてやらなきゃダメだよね。そいえば日本語入力は?・・・。お!出来た!、こっちも出来た!。

その後

その後、/usr/local/etc/rc.d/gdmからscim -d行を削っても日本語入力ができているみたいだ。余計な記述はやめておいたほうがよさそうかも。

ついでに欲が出てきたので日本語フォントも追加してみる。


SC430インデックスへ
トップページへ

こな