悪夢の linux 戦記
「ワタシ、linux 語ワカリマセ〜ン」

つーか Windows もろくに出来ないんですけど。。。



*** XPのパソコンを復旧してやる!!超修理挑戦編 ***
Round fight 5 1章!!! LinuxをDVDに焼こうインストール編

'20.8.10 作成

ネット上に発信したい概要:
XP、DVD焼けないじゃん。
VmWare(現VirtualBox)で何とか起動・インストール成功。
DVD版だと日本語入力出来ないからHDDにインストールした。
HDMIで音出すのは無理。
XPとのデゥアルブート設定すっげーはまった…。でも設定成功!
Blender日本語化になんとか成功。





(書きかけ)


(本文)




で、Win10機、Atom D525、デゥアルコア1.7GHzのPCで
googleMapを頻繁に使う必要に迫られたのですが、
あまりに遅過ぎるのでXPちゃんにLinuxを入れて使ってみる事に
しました。

八王子ICの構造や降り口を調べるだけで半日もかかるってどういう事だよw
おっせーよありえねーよwwww
(途中で休憩半分でやってるから時間かかるんだけどさ)




で、お決まりのLinuxダウンロードですが、KnoppixをDVDに焼いて
起動すりゃまぁ何とかすぐ動くだろ、という目論見。
しかしこの「簡単に動くだろ」は実は大きな間違いだった訳ですが…。



まずLinuxDVD isoイメージのダウンロードの段階でつまずきますw

Win10ちゃんPCでもLinux ISOイメージをダウンロード出来るのですが、LAN内を転送
する手段が異常に乏しいw
Windows10とWinXPとの間の、ファイル共有は既にサポート対象外。
Win10側に古いSMBネットワーク共有コンポーネントを入れれば動くらしい
のですが、セキュリティリスクがあってサポートを廃止したらしいとか。
Win10の設定は、極力設定を変えたくありませんし、
余計なソフトは限界まで絶対に入れないに限ります。
何しろリカバリーディスクが無いw
Mhttpを使えば、小さいサイズのファイルであれば転送可能なのですが、
できても200MBぐらいが限界です。多分これ以上でっかいデータを転送
しようとしても恐らくPCがハングアップしてしまうでしょう。
そもそも、Mhttpはダウンロードデータを全部オンメモリの巨大配列に格納する仕様で、
一時ファイルを作成して保存する機能は作らなかったので、
ギガクラスのデータ転送は恐らく無理です。

WindowsPCを長く使い続けるコツは、「ソフトをインストールしない事」ですw
(その次に大事なのは温度。その次に、定期的に中身を開けて掃除)




昨今のインターネットではWindowsXPのIEではisoイメージをダウンロードする
どころか、そもそもそのページすら見れない所が多いです。
今回はKNoppix8.6をダウンロードしたのですが、
XP-IEで落とせる所を探す所から苦労が始まります(でも意外と簡単にすぐ見つかる)。
が、ダウンロード時間が異常にかかりますw
うち光回線なのにwなんでこんな時間かかるのw
2012年ぐらいからKnoppixはCDサイズのLive CDを供給せず、
DVD 4Gサイズでしか提供していません。
ので、ダウンロード時間が長いから少し古いCDイメージを落とそう!
というのは間違いだと思われます。この世代だとブラウザが旧通信、XP〜win7世代形式
なので、恐らく昨今のHPは見れない公算が高い。
当然、他のディストリビューターも色々な所がありますが、
とにかく古すぎるパソコンで動かすとなると、幅広いハードウェアを認識する
必要がある。一応、ネット上ではKnoppixは幅広く対応しているらしい、
と、いう事で、live CD元祖のKnoppixを選びました。
(というかあまりにLive形式のディストリビューターが多い上に、
どう違うのかを調べる面倒臭すぎて適当に選んだ。そらぁXPで
ブラウザでほとんどのHPが見れないんだから、調べるだけでも偉い大変です)。
仕方なくDVD4GBを300KB/sでのろのろと4G近く落とす事になる訳ですが…。
これがまたまた異常に長いw4〜8時間ぐらいは覚悟しないとダメ。
さらに過去の経験から、MD5のチェックサムはほぼ絶対必須で確認必要です。
Linuxなどのギガサイズのデータはhttpなどではデータ化けしたまま
ダウンロードが成功してしまうのです。昔LedHatを落とした時はそうでした。
今回はたまたま一発でMD5が一致したので、再ダウンロードしないで済みましたが。
WindowsでMD5を確認するとなるとそれ向けに別途ソフトの
ダウンロードが必要です。うちはたまたまHDDのローカルに残ってたので
それ使いましたが。Vector辺りからXPからダウンロード出来るのでしょうか?
ギガクラスの通信だと、ftpではデータ化けに対応出来ないらしく、
ftpではなくhttpでやるべきかと思います。ftpだと失敗した事があります。



次に、DVDがどういう訳か書けないw
メディアが悪いのかソフトが悪いのか切り分け出来ませんでした。
多分OSとソフトが悪い。
DVD書き込み用に新しくDVDメディアを買ってきたのですが…。
書き込み開始時にドライブのシークを行うようなのですが、その際に
なぜかシークが失敗します。
ドライブのネジ開けて分解してドライブのレンズを磨いてみたがダメですた。
CDやDVDは普通に読めるのに。
2006年頃と今とで、細かいレベルでDVDの仕様が大幅にガラリと
変わっていたとしてもあり得る事です。
2006年ぐらいの頃ですら、既にDVDは書き込みの失敗が非常に多く、
メーカーごとの癖が強いものでした。
DVD-RAMなんてとうとう、一度も読み書き成功した試しがありませんでしたし。
非常に一方的な見解ですが、「DVD-R」の書き込みは諦めた方がいいのではないかと思います。
最新OSー最新のパソコンー最新のDVD-Rドライブーメーカー推奨のメディア
ここまで一式揃える気が無いなら、避けた方がいい。

700円のDVD-Rメディアは大事なお金をドブに捨てる結果にw







うーむ、DVDが書けない・・・・。Linuxインストール無理じゃん。
じゃあUSBメモリにOS入れりゃいいかと思い、大昔USBメモリに入れた
Knoppixを起動し、ブートどんな感じだったかな?
と中身を見ていた際に、おもむろに気付いたのが。
Knoppixのデスクトップメニューに「VirtualBox」のメニュー。
ひょっとしてVirtualBoxって仮想実行環境の事?
あれ?こんな古いKnoppix4.0になんで仮想実行環境なんて入ってるんだろ?
この時期に仮想実行環境を想定してたって事は、最近ならかなり
動くようになってる・・・よな?
じゃあコレ使えばDVDイメージからブートできんじゃね?
これに気付いたのは非常にラッキーでした。
案の定、古いLinuxではXPと同じくほとんどのホームページは見れませんでした。
便利なのに。残念。

でも4GBのLinux DVDイメージ、手元にあるのは1.5GBのUSBメモリ。
Knoppix8.6のUSBインストールを試みようにも、容量が明らかに足らなそうです。
しかもどこのHP見ても、どれだけUSBメモリの容量を使うのか全然
書いてません。
どうやら2〜4GBぐらいありゃ充分、らしいのですが…。1Gでは明らかに足りません。

その上、貴重なブート可能なLinux USB メモリ。
新しくLinuxをインストールする際に、トラブルが起きた時にレスキュー用に
是非とも確保しておきたい所。こんな貴重なUSBメモリ、消せる訳がありません。
(※ちなみにこの時はUSB3.0のポートにUSB2.0のUSBメモリを刺して
  起動していたりします。USB3.0のUSBポートでも一応ブートする。)

どーでもいいですが、Linuxインストール済みのUSBメモリって
家電売り場で売ってないですよね。なんでだろう?便利なのに?




DVDライターが死んでてもVitualBoxの古いのをインストールすれば何とかインストールできる!
最新のVirtualBoxだとXPにはインストール出来ませんでした。
ので、XPに対応している古い物をわざわざダウンロード。
(コレ確かXPからじゃなくWin10ちゃんPCで落としたらしいですがよく覚えてない。)
isoイメージからWindowsXP + VirtualBox + Knoppix8.6の起動に成功!


インターネットもでき、ほとんどのホームページも見れます。
WindowsXPでもインターネットが出来る、というのはある意味で感動です!
でもおっそい。
で、このDVDイメージの起動の際には、日本語として起動するためには毎回
boot : knoppix lang=ja xkeyboard=jp
を指定してやる必要があります。すっごい面倒臭い。
それでもanthy入れてないと漢字は事実上入力出来ませんが。
knoppix64と指定すると64bit版のknoppixも起動出来ました。
でも何がどう違うのか、イマイチよく分かりません。
ネットでさっと調べただと4GBを越えるでっかいRAMを使う場合には有用のようです。

emacsはどうやら日本語入力関係のモジュールを内蔵してるらしく、
emacsのGUI版(gtk版?)ならCtrl + | で漢字入力が一応出来ます。
ただ、ブラウザで検索するとなるとemacsで入力、コピー、ペーストを
繰り返さないといけない。その上カナ入力もしずらいし、漢字変換も
WindowsIMEに比べるとかなりのおバカちゃんです。
PC98末期のような変換おバカぶりですが、まぁ使えない事もない。
カナ入力は確かCtrl+Kだかで出来たような…。
で、お決まりのLinux、ヘルプ探しでまたハマる訳ですがw



色んなLinuxOSをお試しでダウンロードしてVirtualBoxで試用してみる、
というのも非常に楽しいかも知れません。
が、恐らくご近所中で電話が途切れたり動画が見れなくなったりすると思われるので
プロバイダや回線を乗り換える気がないのならほどほどにした方が
良いでしょうw
Linuxイメージなんて、あれこれお試しでダウンロードする人なんて
今時そうそういないでしょう。そうするとアカマイやNTT-Data側で
キャッシュサーバーを用意している訳がありません。
となると、直接海外のサーバーに接続する羽目になると思われますw
なるべくご近所その他ご迷惑にならない時間帯を選んで使うのを推奨。
つっても地球の裏側は時間が真逆だから、現地の人が迷惑するので
結果的には同じだけど。
Linuxの焼き済みのDVDは、有志が格安で通販をやってくれる方が
いらっしゃるようです。通販が得意な方はこれを利用するのも手でしょう。
(手数料がすごく安いからあんまり大勢で利用すると怒られるかも。)





仮想環境だけでもブラウザで少しだけネットする程度ならここまでで充分ですが、
本来のインターネットの快適さを確保するには
仮想環境よりも直接HDDから書き込んで使った方が絶対にいいです。
なにしろ、WindowsのIME風に漢字を入力するためにはanthyを
インストールしなきゃいけない。DVDイメージのままじゃanthyは
インストール出来ません(たぶん。やってないから良く分からない)。

・・・が、仮想環境から実HDDに入れるとなると、いきなり危険度がどかっと上がりますw

フツーVirtualBoxといった仮想実行環境を使うとなると、Windows等のホストOS
のHDD上に、ゲストOSが使うディスクイメージファイルを20Gとか用意して
そこだけをアクセスするようにします。じゃないとパソコンのMBR等のデータが
壊れちゃったりして再インストールになったりしたら面倒過ぎます。
たまーーにやるのが、インストール先パーティションを間違えて
貴重なデータを消してしまうケースです。これ、嘘みたいな失敗だと思いますが、
実際に本当にやります。うっかりミスは意外と結構あるのです。
(もう一言言えば、間違えてC:\以下のファイルをコマンドミスして全部消した事もあるw)
でもMBRの書き込み失敗ミスが一番多いです。何度も、とにかく何回も
このミスは必ずやります。LinuxとWindowsを混在させると、そのうち必ずミスします。
(原因はよく分からないw運命の神様のイタズラw)

ハードディスク入れ替え機を買った事がありますが、これまた
使ってる間にプラスチックがポッキリ折れたりして同じ憂き目にあいます。
なぜかどういう訳か使い物になりません。

だいたいそもそも、Linuxを利用する上で最難関の鬼門はブート回りのローダーインストールです。
Linuxを使うとなれば、Linux専用にハードディスクを用意し、デゥアルブートは
絶対に避ける。Windowsとハードディスクを完全に物理的に入れ替えて
Windows、Linux相互に隔絶して使うのがもっとも安全な使用方法です。
Windowsが起動しなくなるケースで一番多いのが、このLinuxを入れた時に
ブートローダーの扱いを間違ってMBRやブート系ファイルを消してしまうパターン。
今までこれで何回もOSを入れ直す羽目にあいましたしw
とにかく、ブートローダーを入れる、というのは、非常に危険な作業なのです。
これだけは、どんなに神経質に丁寧に取り扱ってもほぼ必ず失敗する。
(今回は今のところ大きなトラブルは出ていませんが…)。
何しろ、復旧用の情報収集としてインターネット出来なくなる、これが特に怖いです。



でもいいやwHDDに入れちゃえw
(全然過去の失敗を反省してないオレ)。
・・・と、こういう感じでいつか必ずMBRその他を消してしまうんですねw


VirtualBoxのアプリのGUI上の設定からでは、HDD全体に直接
アクセスするように設定する事は出来ません。
コマンドプロンプトで、以下のような感じで仮想HDDファイルを作って
ゲストOSがそこを読み込むよう設定する必要があります。

C:\VirtualBoxDrives>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
   internalcommands createrawvmdk
   -filename C:\VirtualBoxDrives\raw-0.vmdk
   -rawdisk \\.\PHYSICALDRIVE0



(output)
RAW host disk access VMDK file C:\VirtualBoxDrives\raw-0.vmdk created sucessf..



[ファイル]-[仮想メディアマネージャ]-[raw0.vmdk] -[変更] ライトスルー
全てのドライブに対して繰り返す
(どこぞのHPにライトスルー設定は書いてあった。ヘルプには記載なかったです)。
こんな感じ(作業イメージです。そのまんまやったらもちろんダメ!)
で、「直接ホスト実行環境のHDDに書き込むためのおまじない」
をやらないといけない。
ネット上の情報を確認しながらでもいいですが、VirtualBoxのヘルプは熟読
した方がいいでしょう。VirtualBoxのヘルプの検索でcreaterawvmdkを指定すると
それらしい説明が出てきます。
ヘルプによると、HDDの特定パーティションだけを仮想環境PCから読み書き出来る方法や、
起動ブートレコードをホスト上のMBRファイルから指定する方法もあるようです。
で、ここらのパーティションの英語の説明がよく分からんかったので少しハマりましたが。
ヘルプにもはっきりと、仮想環境の上級者向けとはっきりと書いてあります。
ホスト側OSのドライブ指定はWindowsの「ディスクの管理」
(windowsのシステムツールの一種で、ディスクのパーティションをグラフィカルに
表示してフォーマットその他出来る画面)の所の番号らすぃです。
そうヘルプにはっきりと書いてあります。




ただ、これだとHDDのMBRトラブルに巻き込まれる可能性大で、ミスった時用の復旧用
起動ディスクがどうしても必要になってきます。非常に面倒。

で、VirtualBox+Knoppix8.6 DVDイメージで起動。
確かにインターネット出来るようになっています。
また、昔のようにLANインターフェイスの設定で異常に悩む事も
昨今では無いようです。DHCP環境であればいきなりインターネット
出来ます。うーん、快適。


で、VitualBox+Knoppix iso イメージで
起動したKnoppixのデスクトップから、VirtualBox上のハードディスクイメージ
ではなく、ホストPCに存在するHDDに直接インストールという暴挙を
やってみましたw
ここまで乱暴な事は、普通やりませんw
XPちゃんが死んじゃったら昨今の環境ではまずXPちゃんは回復不能です。
ので、XPちゃんが入っているハードディスクとはまた別に
ハードディスクを用意し、そこにインストールする事にしました。
RedHatを以前インストールした事があり、全然使って無かったので
そこに上書きインストールする感じで入れてみました。
インストールの一番最後にgrubをインストールするか聞かれるのですが、
迷わず入れてしまうという暴挙に!!!
いやはや恐ろしい暴挙でございますw

DVD起動したLinux上の[左下メニュー]-[Knoppix]-[KNOPPIX HD install]
からインストール。
インストールの設定中にreiserfs?とかいうファイルシステムじゃないと
インストール出来ないヨとか言ってきます。つかreiserFsって何これ?
よく分からんけど言われた通りにreiserFsを指定。
ext4やNTFSとか色々フォーマットありますけど・・・。

Linuxで大昔の定番のファイルシステムといえば、ext2,ext3でした。
NTFSやFAT16/32、extFATなどなんか色んなフォーマットがぞろぞろ増えています。
Linuxのほとんどのソフトはext3辺りを大前提にアプリケーションが作ってあると
思われますし、ファイルシステムが違えば動かないソフトも恐らく出て来る
事でしょう。
また、大昔の時ですら、NTFSはLinuxからはアクセス出来ないものでした。
ファイルシステムのドライバも色々使い方ややり方次第では結構バグが出るものです。
Windows2000の中期〜後期にはNTFSのバグらしき摩訶不思議現象に遭遇した
記憶があります。
品質や使い方を考えて、無難にインストーラが要求するreiserFsとかいう
のにしてみましたけど…。これ何だろ?




仮想環境から実HDDにインストールという大暴挙なので
当然、インストールの時間が恐ろしくかかりますw
おまけにホストPCがどんどん加熱してあっという間に危険域にw
こん時はたまたま5月の寒い日だったんでBIOSの設定で
CpuClock(=200Mhz) x 14倍速度で入れても問題ありませんでした。
でもおっそいです。5時間ぐらいかかります。
一見してハングアップしてるかと思うぐらいかかります。
その上、ダイアログ〜ダイアログ間の時間が3分とか5分とかかかります。
画面に何も出てないからインストール終了したんだろう!という油断をしないように
注意しましょう。
MBRにgrub突っ込むダイアログが出て、それが入れ終わって
installed successfullyのメッセージが出るまでは、インストール終了した!
なんて油断してはいけません。

Linux系のMBRインストーラツールは、Windowsが入っていると
自動的にマルチブート設定にしてくれるらしい、という特性を利用して
強引にインストールw
手元にはWindowsVistaのDVDを用意し、万が一失敗しても回復コンソールで
復旧出来るように準備もしました。(使わなかったけど。)
(なぜかvistaはライセンス違反で動かない。なんでだろこれ・・・)




んで、BIOSの設定画面でブートをするハードディスクを指定。
(grubで丁寧に設定してあげればこの作業は必要ないんですけどね。)
で、さっそく、インストールしたKnoppix8.6を起動してみると…。
ハイ、カーネルパニックですw
ルート / がマウント出来ないヨ、と出て止まってしまいました。
インストール時のVirtualPC実行環境はこんな感じ。
DVDドライブ+IDE HDD
で、インストール時の起動した時はこんな感じ。
DVDドライブ+IDE HDD+SATA

試しにSATAを抜いたら起動出来ました。
じゃあブートオプションを変更。
/boot/grub/menu.lstを開いて/root=sdaXとなっていたのを
sdbXに変えたら起動するようになりました。ラッキー!
こんな感じで、カーネルちゃんはドライブの名前をその都度環境ごとに毎回
変えちゃうらしいです。Windowsちゃんだとドライブの情報を確認するから
間違える事はないのですが。

が、grubは本当はmenu.lstを直接変更してはいけないのです。
grub.confを本当は変更しなければいけないのですが、
どこをどう探してもインストール済みのgrub.confがないw
grubの使い方を調べるのが面倒だったので適当に放置した感じです。
・・・というのも、grubの詳細がどこのネットの情報も非常に
分かりずらく、これは恐らく、調べても無駄です。
こんな簡単に動いたらみんな商売困っちゃうじゃないですかw
grubは鬼門です。syslinuxも鬼門です。あまり深く突っ込まないw





RadeonHD5550+Knoppix8.6環境だとHDMIから音出すのは無理。
Radeon公式サイトのドライバだとXの対応バージョンが古くて入れても無理。
amdgpuというオープンソースのドライバがありますが、
HD5550だと対応してない。
どうしても使いたければ自力でドライバを作るしかないようです。

仮想環境でもインターネットは出来るが、youtubeはかっくかくで無駄。
IME日本語環境は、DVDに入ってないので、apt-get install im-config とibus-anthyで追加必須。
が、enacsが漢字変換機能が内蔵されてるらしく、emacs上で入力してコピペすれば
一応はanthyを入れなくても漢字を入力する事が出来ます。かなり面倒臭いけど。
つまり「快適にLinux」するには、HD Installしか選択肢がない?DVD起動はダメ?
HDD InstallでHDDに直接書き込んでyoutubeは非常に快適に動くように…。


VirtualBox上で直接HDDからブートは出来ても、PCそのものから
直接起動しようとするとカーネル起動時に、ルートディレクトリを
マウントしようとするとエラーが出ました。


blenderは以下の手順で日本語化出来ました。
blender-dataを再インストールしてblender.moを入手。
sudo apt-get --reinstall install blender-data
/usr/share/locale/ja/LC_MESSAGES/blender.mo
が日本語化された文字ファイルです。これを手に入れる為に再インストールします。
が。
これだけではダメで、Blender起動時に内部エラーが出てしまい、日本語化が
出来なかったりします。
問題はUser Prefernceの設定画面をロードした時に実行時エラーが出て、
その先の言語設定の項目を読み込めない点にあるようです。
(GPGPU演算をやるためのハード一覧を取得する際にUnicode変換エラーを起こしている)
/usr/share/blender/scripts/addons/cycles/properties.py の1380行目付近の
def get_devices(self):
を、空の配列2つを返すように変更。
(根本的に直すにはblenderのC++ソースコード側
blender_python.cpp : static PyObject *available_devices_func(PyObject *self, PyObject *args)
で使われる PyUnicode_FromString 辺りを直さないとダメっぽい。_cyclesはphyponではなく
c++側でオブジェクト宣言されている)


そのあと、File>User Preferences > System > Interface Fontで
/etc/alternatives/fonts-japanese-gothic.ttf
を指定(フォントファイルへのシンボリックは何故かダメ。)

ようするに、「Blenderを使いたければ開発に協力してちょ」という
事のようです。これくらい自力で解決出来ないようならちょっと無理だよ!みたいな?
でも英語のメニューのまんまじゃ、方言だらけでそれぞれ何の機能なのか
サッパリ分かりませんw

上の空配列2つ設定は、GPCPUという「GPUとCPUの2つで同時にレンタリングする」
際に必要な設定項目?なのかな?
Blender自体少し触ってみましたが、CGを書くのはかなり楽しそうですが、
かなり熟練しないと操作を覚えるのに大変そうです。
一方、Windows10 CreatorUpdateに入っている3D Paintは
初心者でもそこそこ分かりやすいインターフェイスで、「絵を書くの楽しいネ!」
という作りになっています。が、うちのWin10ちゃんだとパワー不足で
ちょっと重くて無理かも。
CG作成自体、CGソフトが60万とかする高額PCを前提に作られてるでしょうから、
無理に使っても痛い目に遭う事になりそうですね。






IODATAのUSB-LAN変換アダプタETG-DS/US-HSが使えないか
試してみました。
apt-get install usbipで試してみましたが、無理っぽい。
やり方が悪いのかな…。
USBを直接PCに接続しないで済むので、電気的にPC本体と絶縁状態なので
USBを何度抜き差ししてもPC本体にダメージが出ない優れもの。
usbipはPCをUSBデバイスサーバーにするソフトなので、
これをベースに自作すれば何とか作れそうな勢いはあります。
さらに偶然Knoppix8.6はUsbデバイスサーバーに対応した
カーネルが使われているのでカーネル自体を作り直す必要は無さそうです。
試作としちゃ悪く無い挑戦ですがちょっと時間がかかりそう。




NO-GBA.exeは以下の感じで一応動きました。音もばっちり
再現されていて動きました。
NO-GBAフォルダをWindowsのNTFSフォルダからコピーして来て
wine ./no-gba.exe
最近のwineはこんなに精度上がってるんですね。




NTFSの書き込みはLinuxからやったら危ないかと思います。
怖すぎるのでLinuxからWindows系のNTFSの書き込みは行わない事。
FAT32であればLinuxで多少読み書きしても問題ありませんが、
マイクロソフトのWindowsは日々進化していて、恐らくファイルシステム
の構造も毎日進化させている事でしょう。
動画とか読めるけど、原則、LinuxからNTFSを操作する際には読み取り専用
にすべきじゃないかと思います。そうしないと
NTFSが壊れるんじゃないかな?と思い、書き込みは一切やらない
方向で。
FAT32のパーティションは安全に読み書き出来ますが、
可能ならばsambaかhttpを経由して読み書きすべきです。
死んでもいいNTFSパーティションを用意してそこを経由すべきでしょう。
面倒でやってないけど。
こういう時はOneDriveが便利で使っています。




WinXPちゃんを起動する時、毎回BIOSの設定で設定を保存するのが
かなりうざったいため、grubで設定ファイルいじくって出来ないかやってみました。
ハードディスクドライブは2つです。
   SATA:XPちゃん
   IDE:Knoppix
で、/boot/grub/menu.lstのお尻に以下を追加。
title WindowsXP
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
chainloader +1


こんな感じで、grubのOS選択画面意XPちゃんが登場!
無事起動出来るようになりました。

ひーーーん、怖かったよう。gurbブートローダーがファイル読み込まなく
なったらどうしようかと思ったよ・・・こ、こ、こ、こ、こ、こ、ほんと怖かった・・・。
ま、最悪死んでも、うちの場合はWinXPちゃんのVirtualBoxのiso起動で
復旧できるのですが。
最初はちょー適当にmap...の2行なしにやったんだけど、grubがdisk error
とかいうのを吐きました。うはw
んで、ネットでちろっと調べて「こーやるんだよー」という説明を
マジで超適当にやってみたら動きましたwラッキーです!






XPちゃんのWindowsブートローダーをマルチブートにして、別のハードディスクの
Linuxを起動指定出来るようにならないか色々挑戦してみました。
どこのHPも、ddコマンドでブートセクタを取ってきてc:\直下に置き、boot.iniを編集すれば
起動可能、とある。
でもその通りにいっっっくら試しても動きません・・・。
ブートメニューをマルチ選択する選択肢までは、すいすい簡単に出るのです。
(でもファイルの属性を変更するのにチョイハマリ。DOSコマンドのattribを
使わないとXP上だとシステムファイル属性に出来ない。とかメモ帳で変更出来ないとか。)

dd if=/dev/sdb1 of=grubMBR.img bs=512 count=1
 > ダメ。起動を指定するとなぜかwindowsOS選択画面が出ますw
dd if=/dev/sdbX(Knoppix入れた所) of=grubMBR.img bs=512 count=1
 > ダメ。Stage2 loading.... という画面が出て止まってしまいます。
あちこちHPをかなりあれこれ見た感じだと、grub-installというコマンドで出来るって
書いてあるけど、これだとMBRを上書きしてしまいます。
もちろん、こんな恐ろしいコマンドは口が裂けても絶対に
使っちゃいけません。だって全部死ぬかも知れないし。
grubのstage1を起動させようと何とか頑張ったのですが・・・。


  ※ちなみにこのgrubMBR.imgの転送には。一度OneDriveにアップ、
   Win10ちゃんPCでOnDriveから落とす>MHttpでXPから取るという恐ろしい手間暇をかけて
   転送しています。すっごく時間かかる。
   LinuxからNTFS上にデータを書き込むなんて危険な事は絶対にやっちゃ
   いけませんw読めるけどw


grubは、MBRを読み込んだあと、MBRのすぐ隣のブロック(より厳密にはPBR?)を読み込む仕様らしく、
SATA NTローダー>c:\grubMBR.img読み込みの後に、MBRの隣のブロックを
読み込む際に、grubのstage2のデータは同じIDEハードディスクにあるのですが、
WindowsがあるSATAのMBRの隣のレコードを読み込みに行ってしまいます。
stage2のファイルが読めなくて
コケてしまうようです。

後で分かった事ですが、grubの正規のインストールであれば一発で動くのですが、HDD単体環境でgrubを
入れた後、windowsが起動するハードディスクを追加し、その後で
そのwindowsが入っているハードディスクからLinuxを起動しようとすると
STAGE1.5の読み込みの際にコケる。Windowsのハードディスク上には
MBRの隣のレコードにはSTAGE1.5の起動データは入ってないのに
それを読み込むのでコケる、という事のようです。

grub-installならばMBRに正しいドライブ情報を入れた状態でMBRを書き込んで
くれるのですが、もちろんそんな恐ろしい事は出来ません。
散々色々試したあとで、ふと「MBRのデータ解析やってる人がいるんだから、
よく考えたら逆アセンブルして中身を見ればいいじゃん!!!」
・・・とおもい、ネットを再度探索して逆アセンブル方法を発見w
 objdump -b binary -D -m i8086 knoppix.img
・・・が、今度はアセンブラ、何をやっとるのかサッパリ分かりませんw
アセンブラのHPを見てもやっぱりよく分からない。なんだろこの命令?
このレジスタなんだろ?謎だらけです。
odコマンドがなんかおかしい。バイナリを開くコマンドとあるが、左側
のオフセット値が変な数になっています。00>20>40>60>100>・・・はぁ???
どうもコマンドラインで
  od --address-radix=x -h knoppix.img
と、丁寧に指定してあげないと、フツーのHEXファイル見るみたいに見れないらしいw

MBRの解析系のHPをみまくって、とうとう最後はGNU grubのHPにたどり着く事に。
https://www.gnu.org/software/grub/manual/legacy/
おかしい・・・どうしてこのHPとおりの位置に、バイナリの中にドライブ
番号だとかバージョン番号が入ってないんだ。なんかおかしい・・・。
何が起きてるやらサッパリ。
謎はますます深まるばかりです。

grubのバージョンが資料と違うのかとおもい・・・でもインストーラがどのバージョンの
インストーラを使ってるか分からず、インストーラ系のファイルを解析w
スクリプトによると、grub-installというコマンドを使っているのを発見。
で、grub-installのバージョンをプリントしたら0.97とある。
うん、こりゃgrubレガシー版の方を使ってるんだな。

なんかみずらいなー、他のバイナリエディタないかな・・・ネット検索…。
へーー、stringsコマンドなんてあるんだー。やってみよっと。
・・・・。
(※stringsコマンドは、ファイル内に埋め込まれたテキストデータを
抽出して表示するコマンドツールです。バイナリデータだろうが何だろうが、
テキストが入ってると思ったらとにかく表示してくれる。)


えええええっっ、ntldr is missingぐぐぅぅぅぅぅ!!!はぁぁぁ??
じゃこっちダンプしてみよう・・・bootmgr is missingうううう!?!?!?
grubのMBRを取ってきた筈なのに・・・なんでWindowsローダーの文字が
入ってんだこいつ???
(ちなみにntldr is missingは、デゥアルブートでものすごくハマった人だったら
誰でも一度は目にする恐怖の文字ですw)。

そうなのです。実は、ddコマンドで拾ってきたMBRの位置が全然検討外れ
だったのですw
いやでも、どこのHPでもちゃんと番号つけてddコマンド使ってるよな…。
なんなんだ一体・・・。
ますます謎は深まるばかりです・・・。

dd if=/dev/sdb of=grubMBR.img bs=512 count=1
で、これで始めて、MBR読み取ったファイルに「grub」の文字が出て来るように。
「・・・・・結構恐ろしい時間はまったな…。これで最後にするか・・・。」
起動を挑戦したところ、なあああんと!!!
 > ダメ。「GRUB」という文字が出たまま止まってしまいます。
   手順を間違えたのかと重い、何度やっても同じ結果です。



直接viでバイナリを編集して、grubMBR.imgの0x40オフセット値=ドライブ番号
が0x00になっていたので、適当にあてずっぽうでドライブ番号 0x01 にして
やってみたのですが、やっぱり起動しません。
  ※viエディタの起動・終了の仕方が分からずさらにプチハマリ。
   Escapeキーを押してコマンド入力モードにして、「:qa!」
   (「:」もそっくりそのまま入力するwそんなんフツー分からんっての)
   16進数編集のモードの切り替え・保存・編集・方はメモ取り忘れました。ごめんなさいw)

・・・・つ、疲れた・・・・こんなんで4時間も5時間もハマるとは、
さすが鬼門のLinux起動なだけある・・・なんで動かないんだ・・・
なんでだぁぁぁぁぁぁ!!!(絶叫

・・・と、いう事で、WindowsブートローダーからKnoppixを起動
するのは諦めました。ちゃんちゃん♪

・・・と思いきや、その後しつこく再挑戦w
grubMBR.imgの0x40オフセットに80書き込み:
   GRUBで止まる。
0x81書き込み>Grub Loading Stage1.5.....文字化けで止まる。
0x82書き込み>Grub Hard Disk Errorで止まる。
0x83書き込み>Grub Hard Disk Errorで止まる。

boot_Drive:のトコを書き換えればすぐに動きそうなのになぁ。
stage1.5には特にドライブ番号持ってる処理はざっと見た
感じじゃ無さそうだし、それ以前にドライブ変えるだけだし…。
恐らく、menu.lstみたいな、
  map (hd0) (hd1)
  map (hd1) (hd0)
相当の処理が必要なんでしょうね。どこのバイナリどう直せば
動くんだろ・・・。

さぁさぁ、しつこくしつこくもう一度挑戦!!!
さっきまで何度も挑戦していた方法はこんな感じでした。
IDE(knoppix),SATA(XP)
で、BIOSの設定はIDEから起動。grubのメニューからSATA,XPを起動。
そうするとWindowsのブートローダーが立ち上がります。
で、そこで、Windowsのブートローダー上をマルチブート設定にして
ここから何度も何度も何度も何度も動かないか試していた訳ですが…。

BIOS -> IDE,grub -> SATA XP -> IDE,grub(この起動でコケてた)

ここで方針転換して、BIOSの設定で、SATAから直接 SATA XPブートローダー
を起動するように変更。

BIOS -> SATA XP -> IDE,grub

なんとWindowsのブートローダーからの起動に成功!!!
grubMBR.imgファイル(MBR読み取った奴)の0x40オフセット値を
0xffから、0x80か0x81(ハードディスク1台目か2台目)に書き換える事で
起動出来る事がなんと立証されましたwwwwww
MBRファイルのバイナリ修正戦術がなんと大成功にw
なんだよ、やり方がかなり悪かったんじゃないかよ…
ブートローダーを二重に噛ませると、stage1.5でコケていた事が判明w

やったーーー。このHPの価値がぐぐーーんとあっぷ〜、うっれしいな〜♪
(あっふぉーーーーw)


Linuxだと、ハードディスクの抜き差しを年中やる事も多い。ので
別のハードディスクがあろうが無かろうがブート出来た方が便利です…よね?
Windowsブートローダーには
c:\grubMBR_ff.img = "KNoppix ToSameDisk" <= オフセット0x40 にff書き込み済みMBR
c:\grubMBR_80.img = "KNoppix ToDisk0"   <= 0x80書き込み済み
c:\grubMBR_81.img = "KNoppix ToDisk1"   <= 0x81書き込み済み
のように3つ用意しとけば色々と便利なんじゃないでしょうか。
どれ選べばいいのか良く分からないので、かなり面倒臭いですが…。
(合わせてmenu.lstのOS選択も2種類用意した方が親切…なのかな?)

そもそもLinuxでは、ハードディスクにラベルをつけてそのラベルを指定して
ブートする機能があるそうですけど、なんか面倒臭いので
やりませんでした。ハードディスクの装着状況によって
結局また別々にMBRファイルを用意しなきゃいけないのは同じですし。

ちなみにこの方法で起動した場合、GrubのOS画面でKnoppixにカーソルを
合わせたあとに、「E」キーで編集画面に入り、
(hd0,X) を(hd1,X)に編集しないと起動出来ないようです。
これ何だろ?なんで変更しないと起動しないんだろ?

WindowsだとハードディスクやパーティションにGUID?を割り振り、
それを識別して起動を一意にしているようです。

原因として考えられるのは、BIOS側のハードディスクと番号がハードディスクの
装着状況によって一定でない?さらにカーネル側が割り振るハードディスク番号が
コロコロ変わる?これが原因なのかな?という印象ですが…。
原因、なんでしょうね。年中ハードディスクを抜き差しする俺が悪い気も
しますがw








Knoppixにはデフォルトで色々ゲームが入っている。すげー。
ほとんどはミニゲーム、パズルゲームで、RPGや長編物という訳ではありません。
freeCivとかたまげるゲームも幾つか入ってます。あんまり動かしてないけど。
上海だとかソリティアだとかそういう感じのミニゲーム系が多いようですが、
Crossfire clientという本格オンラインRPGなどもあるようです。
上海おもすれー。ルールが簡単で分かりやすい上に先に進めやすい。ダントツにおもろい。
パズルボブルの亜種、Frozen-Bubble2も入ってます、これもなんか楽しい。
何面あるんだろこれ?
Lincityという、シムシティにソックリのゲームも入ってます。
日本語化されてません。見た事ない英語ばっかで、ちょっと日本語化したくなりますね。
ボスコニアンにウリ二つのゲームや、パックマンまんまも入ってます。
KNetWalkというパズルゲームが、ルールも簡単でおもしろいです。
マウスでブロックをくるくる回して、配線をPC-インターネットに繋げるだけ。
ハイスコア更新のたびにSSD フラッシュちゃんにデータを書き込むのがかなりブルーですが。

色々やってるとアドベンチャーやノベルゲー、大戦略やりたくなりますねコレ…

Linux上でSteamもインストールすれば動きそうな感じもしますが、
とりあえずうちの環境ではパワー不足っぽいのでパス。

Eclipseが入ってます。すげー。Windows.Net用のMonoはどうやら
入ってないようです。





ログアウト機能がどういう訳か動きません。
試しに少しいじくってみたけど、やっぱり無理そう。
GUIデスクトップメニューからシャットダウンが未だに出来ません。
ちょっと不便。
メニュー>ログアウトを指定すると2分ほど経つとログアウトの
ダイアログが出ます。ログアウトは出来るけど、すぐにデスクトップが
再起動してしまう。
/etc/init.d/knoppix-startx というサービスが強制的に
再起動をかけてしまうようです。
2分もかかるのは、恐らくapm?電源回り関係のサービスの状態監視
間隔を非常に長めに設定しているのでしょう。その代わりに普段の
デスクトップ操作は軽快にしてある、と。
/home/knoppix/.config/lxpanel/LXDE/panels/pannel
のファイルをかなり弄くり回してみたのですが、やっぱりダメ。
このファイル、下手にいじくり回すと、起動時にメニューやらタスクバーやら
一切合切表示されず、全くデスクトップの操作が出来なくなるようです。
(うちの場合は幸いにもデスクトップ上にフォルダを表示させていたので、
そのフォルダアイコンをダブルクリックしてファイルマネージャを
起動した後に、ディレクトリツリーを右クリック>ここから端末を起動、
で端末をなんとか起動する事が出来ました。
/usr/share/applications/lxde-logout.desktop
を弄くり回してもやっぱりダメ。
どうやら、LXDEは特定のデスクトップ設定にしか対応しておらず、
それを外れると全然動かなくなるらしいです。




何度かいじくり回していてふと気付いたのですが、
キーボード上に「Power」ボタンが。
これ押せば電源落ちますw
必死に設定あれこれ試してたのに、意味ないじゃんw
なんという時間の無駄w
(でもなぜかXPちゃんPCのキーボードには、Powerボタンがない。)

言い訳になりますが、俺が現役でパソコンばりばり触ってた頃は
APM回りはどういう訳か全然動かないのが当たり前で、
WindowxXPぐらいの頃は、スリープやスタンバイはまだまだ全然
「動かない」ものだったんですよね。
高い金出してメーカー製買えば動いたんでしょうけど、もちろんそんな
贅沢出来る訳もなく。
スマートフォンが出た辺り、2010年ぐらいから省電力、携帯、小型PC
の普及が始まって、スリープ機能関連はかなり充実して来た感じは
あるんですが。
そう、俺の感覚だと「Power/Sleepボタンは使い物にならない」というのが
一般常識だったんですよねw
その当時は、LinuxなんかだとOSをシャットダウンしたら黒塗りの画面で止まって
電源ボタンを押してきちんと電源をオフにする、というのが普通でしたし。
WindowsMe辺りもそんな感じだったような。
WindowsXPのスリープ機能なんか、画面上に設定項目はあるけれど、
実行してからスリープに移るまで3分ぐらいかかって、その上電源を入れ直そうと
すると、OSがまたゼロから起動し、スリープの編集中のデータは消えてしまう、
そういう感じだったんですよね。
シャットダウンを選んで電源が落ちるだけで、その当時はすごかったんですよねw
(ジジくさい言い訳)

sudo init 0でもシャットダウン簡単に出来るみたいですね。
システムのrunlevelを変更がこんな簡単に出来るとは。
knoppixだと/etc/init.d/knoppix-startx stopもやらないとダメですけど。




突然拡大鏡が出たまんま消えない…。
Windowsキーとマウスのホイール上/下、Windowsキー+-/+キーでデスクトップ全体
の拡大縮小は出来るようです。
色々実験した結果、Ctrlキー+Windowsキー+Escキーで拡大鏡の
起動/終了が出来るようです。
なんでどこのHPもこの情報書いてないの?なぜ?
いやー、拡大鏡便利だな〜〜〜〜〜。消えないのすっごく不便だけどw



xmodmap -e "add mod3 = Scroll_Lock"
スクロールロックのトグル、on/off固定が出来るようになるみたいです。
カナキーを押したまま固定、離したり、とか(意味不明)、トグルがコレで出来るように
なるみたいです。いやぁ落とし穴だ。




Wineのメニューの文字がとことんよみずらいのでネットで調べてみた
ところ・・・。
まぁ一応はフォントを綺麗にする事が出来たのですが。
wine-tricks allfont?だかのコマンドでフォントデータ取れるよ、
と書いてあったので実行してみたのですが、あっちこっちのサーバーに
フォントデータ取りに行ったらしき表示が出るにも関わらず、
20分近く待たされた挙句に最後にエラーが出て止まってしまいました。
それ以外のHPでは、Windowsのシステムフォルダの
c:\windows/fontsフォルダを/home/koppix/.wine/drive_c/windows/Fonts
に全部コピーすれば写るようになるよ、との事で、その通りに
やってみたら綺麗に字が出るようになりました。
ただ、Windows10の同フォルダ、600MB近くあるので注意が必要です。
こんな大量にコピーして無駄にHDDを消費するぐらいなら、やらなくても
いいかな?という気もしますが、でも文字読めませんものよねぇ。
それ以前に全然フォントが何書いてあるのか分かりませんが。
相変わらずMS-DOSプロンプトを表示するソフトに関しては文字よみずらく、
毎回ソフトのMSDOSターミナルの画面でフォントの指定をする必要がある、らしいのですが…。




・・・あれ?こんなあれこれ色々買うぐらいなら
1万ぐらいでスマフォ買った方が安くね?
うはwwwwww


・・・と、いう内容を書きかけです。

もどる

ほーむ