スキップしてメイン コンテンツに移動

環境移行

えー、半年ぶりの更新デス。
まっ生来 日記などきちんと書きつづけられた試しが無いのでこんなものかと...。
メインで使っているノートをNECのLavieC(LC800、LC900)シリーズから
同じNECのVersaProRへ変えました。
所謂リーマンショック以降 企業で使われていたPCが
大量に中古市場に出回っている中の一台を手に入れました。
これまで使っていたペン3-900Mhzの倍の1.8Gです。
これでも現在の主流からは程遠いですが私には充分です。
ここで、問題になるのが 作動中のOS環境を破壊せずに移行させるかで
MBのチップセットが同じならば、そのままHDDを載せ替えるだけで
最低限シェルが起動するくらいは持っていけるのですが
今回の場合 LCがVIAのチップセット、VersaがALiのチップセットで
まず確実にHDDの読み込みを見込めません。
Windows95あたりの時代は、HDDを載せ替えて 再起動させると
ハードウェア構成の変わった分を検出して再構築してくれて
ドライバの不足分をCDなりから読ませれば
(実際にはCDのアクセス関連もアウトなのでHDD上にOSの必要分を転送する必要がある)
済んだのですが、WIndows2000あたり以降からはそうもできません。

linux関連においても、一般的にMBを変えるような大きなハードウェア構成の変更には
HDDのバックアップ後にクリーンインストールするのがセオリーで、確実安全な手段です。
今回の移行の際の、必須条件はCDからのブートが可能であること。
HDD上にカーネルの再構築に必要な環境があることが重要です。
以前の環境のハードウェア構成
(ATAドライバは何を使っていたのか?VGAは何を使っていたのか等)と
新しい環境のハードウェア構成を入念に調べておく必要がある。
linuxのコンソールでの操作にある程度知識があることも必要、
以下の説明を理解できない場合は
素直に外部HDDにでも環境をバックアップして移行した方が正解です。
方法は、単にHDDを載せ替えて fedoraのCDからブートしてレスキューモードに移行する。
HDD上の/が/mnt/sysimageにマウントされるので
#chroot /mnt/sysimage
で、ルート位置を変更する。
#ls /
とでも、打ち込んで 以前の環境のルートからのディレクトリ構成が見えていれば

ひとまずOK

次に、カーネルを現在のハードウェア構成に合わせて再構築します。
私の場合、fedora7あたりからネットワーク経由でアップグレードをかけていたため
カーネルソースの位置が/usr/src/redhat/BUILDの下にありますが、
fedora10以降ではrpmbuildの変更に伴い
各ユーザーのホームディレクトリの下に
/rpmbuildと言うディレクトリが作成されて
その中のBUILDディレクトリにあると思います。

カーネルソースの位置が判れば、
あとは自分が使っているカーネルソースのディレクトリに移動して
Makefile のリビジョンを適当に変更して、
make configとか make menuconfigとかして、
まず最低限のHDDを読ませる事だけを考えて、
ドライバの構成を変更する。
私の場合VIAのチップセットのATAドライバを外し
ALiのドライバの組み込みチェックが入っているか確認して、
.configファイルを変更する。

次に

make bzImage; make modules

でカーネル本体とドライバモジュールをコンパイルし

make modules_install; make install

で 新しいカーネルとモジュールをHDD上にインストールする。
これで、一旦リーブートして
HDDから起動できれば(Xはまだ利用不可です。)
ひとまず安心です。ここでシェルでの起動すらできないようなら、
再度CDからブートして先程と同じようにカーネルの環境を見直して再構築をする。

このブログの人気の投稿

IS01文鎮化からの復旧

androidロゴのあと、黒画面で、左下にカーソル状態からの復旧 状態について ※リカバリーキットはインストールしていない(泣 ※adbでPC側からシェルに入れる ※adbでPCからファイルをIS01にプッシュできる ※root権限を奪取できない(泣 ※ベースバンド7 以上、最悪の状況からの脱出に成功 必要な物 psneuter busybox insmod+ msm_nand_ex.ko flash_image recovery_kit.img まず、上記のファイルを用意し adb で、PCからIS01の/data/bootkit 辺りに転送して、一旦電源を落とす。 次に、 IS01の電源を入れる、この時点で正常起動せず、 画面真っ黒、左下でカーソルらしきモノ有りの状態で PC側からadb shellでIS01に入る 一般ユーザープロンプトが出るのが確認できれば、 先ほどのファイルを転送したフォルダに移動  lsとかして、ファイル一覧をだし必要なファイルが揃っているか確認する。 揃っているのが確認できたなら、 ./psneuter とか打ち込んで実行、一旦adb接続が解除されてPC側に戻ってきてれば多分成功、 再度adb shellで接続を試みる。 うまく接続できて、プロンプトがroot権限を表す#になっていれば第一段階クリア root状態で、つぎに書き込み専用 パーティションの呼び出しのために カーネルモジュールを組み込む、 ./insmod+ -f ./msm_nand_ex.ko recovery_wrパーティションが見えるようになったか確認 cat /proc/mtd mtd8,9,10が見えてれば成功 あとは、 ./flash_image recovery_wr ./recovery_kit.img とかして、 リカパリーパーティションにリカバリーキットを書き込み reboot recovery して、リカバリーキットから、破損したsystem,dataをバックアップから復元する。

libX11のキー入力検出時の「¥」と「バックスラッシュ」の判別について

MSXエミュのfMSX2をビルドして自分の環境に摺り合わせてる時に、キー入力の諸々で引っかかって、日本語キーボードでのキー表記と実際の入力される文字との差異が若干あったのを修正している時に、¥記号とバックスラッシュ記号がキー入力で判別されないためどちらか利用頻度の少ないキーを間接入力か何がしかの手でやるようにして諦めろ的な記述が見られたのだが、確かに「xev」とかで見ると「¥」も「バックスラッシュ」も同じ「0x5c」を返してくる。でもGNOMEなりMATEなりのデスクトップ環境ではきちんと「¥」キーは「¥」を表示するし、「\」も同様に「\」が出る。と言うことは、何らかの識別の手段があるはずと思い試しにやってみた。 まず、簡単なキー入力表示プログラムを組んでみる。と言っても「http://www43.atpages.jp/opicon69/xlib/key02.html」 のサンプルプログラムを参照してチョコチョコっと改変してるだ けですがね。 以下参照分ーーーーーーーーーーーーーーーーーーーーーーーー #include <x11 lib.h> #include <X11/Xutil.h> #include <X11/keysym.h> #include <X11/XKBlib.h> //XKeycodeToKeysymの代わりにXkbKeycodeToKeysymを使うため #include <stdio.h> #include <stdlib.h> #include <string.h> int main(){         Display *display;         Window window;         XEvent event;         GC gc;         char str[256] = {0};         KeySym keysym;         int quit_flag = 0; /* Xサーバに接続 */         display = XOpenDisplay(NULL); /* ウィンドウを生成 */         window = XCreateSimpleWin

firefoxの印刷プレビューについて

fedora20/i686 のfirefox29.0.1で印刷プレビューを見ようとすると、ページ自体の表示とプレビューが違うのは、Adblock入れたり、Noscriptでスクリプト抑制したり、UA偽装したりで行儀のよい使い方ではないから文句は言えないのでけれども、問題はプレビュー画面上部のメニュー、「印刷」とか「ページ送り」とかはきちんと見える。印刷終わって閉じるときにギョッとする。「閉じる」が無いです。ウィンドウ右上の「X」でしか閉じれません。「X」クリックはfirefox自体落してそうに錯覚するから精神的によろしくない。小心者の私としてはできれば「閉じる」で閉じたい。 参考までに と、こんな状態 水平1050ドットx縦1680の画面に全画面表示の問題部分のみ抜粋、これ下側に左右送りのスライドバーなんて出ません。この状態で「閉じる」ボタンを出すにはALT+ドラッグでウィンドウを強制移動してウィンドウの横幅を1400ドット前後まで拡張すると出てきてくれる。印刷の度にこれでは、何に対してかは判らないが、激しく負けた気がしてモヤモヤする。 上のキャプチャは元々1680x1050のモニタを90度回転させたサイドモニターでの表示で、メインは1400x1050の画面である。右端にパネルが常駐しているので48ドットほど横幅が小さい状態でのキャプチャが のようになる。これでも「閉じる」が出ない。「縦」「横」ボタンの右隣の「PDFを作成」が曲者で、アドオンの"Print Edit 12.6"の追加したボタンで、これが更に状態を悪化させている。このキャプチャ画面が通常使用のプロファイルのもので、すっかり忘れてたけど久しぶりにfirefoxをプロファイルマネージャーから起動しました。 そこで、何もない空っぽのプロファイルでの表示が こんな感じ、ようやく出てきました「閉じる」ボタン。ですが 水平1050ドットの画面に持っていくと隠れてしまいます。 今時800x600の画面を考慮してほしいなんて言わないけど、タブバーのように、溢れた分のための左右へスライドさせる仕掛けは入れてほしい。