レンタルサーバー
BIG-server.com
簡単・はやい・大容量・どんな目的にもマッチするレンタルサーバー
HOME プライス お見積もり・プラン選択 お申し込み ユーザーサポート お問い合わせ

■ 【ぷろじぇくと ぞうさん】 〜E-Bananaサーバ 構築日記〜

1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
15日目 16日目 17日目 18日目 19日目 20日目 21日目
22日目 23日目 24日目 25日目 26日目 27日目 28日目
29日目 30日目 31日目 32日目 33日目 34日目 35日目
36日目 37日目 38日目 39日目 40日目 41日目 42日目
43日目 44日目 45日目 46日目 47日目 48日目 49日目
50日目 51日目 52日目 53日目 54日目 55日目 56日目
57日目 58日目 59日目 60日目 61日目 62日目 63日目
64日目 65日目 66日目 67日目 68日目 69日目 70日目
目次に戻る
第46日目:【ニューTiger】ニューTiger 難産しています・・・

どうも、('A`)です。
えーと、今日は朝からサーバを設置しているデータセンターのケージの温度が何故か
上昇して一部のサーバがダウンしたり、「花子」(banana3000)もつられてダウンしていたり、
色々な事が起きていて大変です。

で、ニューTigerも昨日の日記で追記しましたが、カーネル再構築の方法を従来の方法で
実行したら、reboot後に戻ってこなくなり、もう一度OS再インストールする事になりました。
うーん、もしかすると『百式』の時に起こったNICの問題が解決されていないのかなあ。
まずはカーネル再構築前のところまでセットアップして、それからむむむさんに教えて
頂いた最新ソースを取得した形でのカーネル再構築をやってみよう。

今は色々立て込んでいて、ここまでしか書けません・・・
追記できる様になったら、また日記を更新します。

【14:50 追記】
カーネル再構築前のセットアップ(Apacheとかメールとか)が終わりました。
サーバ内からリブートしてもちゃんと戻ってきます。
さて、ここからか・・・

まず今までの作業を振り返ってみます。
 ・いつもT-Bananaで行なっているsysinstallからカーネル再構築からだと
  再構築後のリブートでサーバが戻ってこなくなる。
 ・むむむさんから教えて頂いたsysinstall後に最新ソースと同期を取る処理を
  行なってから buildkernel -> installkernel したら、サーバは戻ってくる
  (ただ、その後installworld+mergemasterをしてリブートすると戻ってこなくなった・・・)

で、これから以下の方法を試してみます。

(1) /usr パーティション上の /usr/src と /usr/obj を削除する。
(2) /home 上に src、obj のディレクトリを作る。
(3) /usr パーティション上にシンボリックリンクを設置し、/home上の
  src、obj ディレクトリにリンクする。
(4) sysinstall で /usr/src を全て持ってくる。
(5) /usr/src/sys/amd64/confに移動する。
(6) カーネルコンフィグレーションファイル(ATIGER6471)を設置する。
(7) /etc/make.conf で KERNCONF を ATIGER6471 に変更する。
(8) /usr/src に移動する。
(9) make -j 8 buildkernel
(10) make installkernel
(11) サーバを1度リブートする。

これでうまくいくと思うけど、、、やってみます。

【15:15 追記】
さっき記載した方法で一部抜けている手順がありましたので、修正します。

(1) /usr パーティション上の /usr/src と /usr/obj を削除する。
  rm -rf /usr/src
  rm -rf /usr/obj
(2) /home 上に src、obj のディレクトリを作る。
  mkdir /home/src
  mkdir /home/obj
(3) /usr パーティション上にシンボリックリンクを設置し、/home上の
  src、obj ディレクトリにリンクする。
  cd /usr
  ln -s ../home/src
  ln -s ../home/obj
(4) sysinstall で /usr/src を全て持ってくる。
(5) 以下の手順で最新のソースに同期を取る。
  cp /usr/share/examples/cvsup/standard-supfile /usr/src/standard-supfile
  cd /usr/src
  make update
(6) /usr/src/sys/amd64/confに移動する。
(7) カーネルコンフィグレーションファイル(ATIGER6471)を設置する。
(8) /etc/make.conf で KERNCONF を ATIGER6471 に変更する。
(9) /usr/src に移動する。
(10) make -j 8 buildkernel
(11) make installkernel
(12) サーバを1度リブートする。

【15:45 追記】
15:15 で記載した方法でカーネル再構築を実施しましたが、その後リブートしたら、
戻ってきません。失敗です
これでA-Tigerの完成は早くても明日(5/17)にずれ込みます。。。
何がいけないんだ・・・
まずはサーバの再インストールを始めなきゃ。

【16:10 追記】
カーネル再構築後にサーバが戻ってこない(sshで繋がらない)原因が判ったような気がします。
また『百式』の時の悪夢がよみがえった。。。

現地の技術スタッフにコンソールで確認してもらったら、サーバ自体はOSが立ち上がっている
状態でした。
けれども試しにサーバ内から外部にpingを打つと通じない、という事が判明しました。
もしかしてNICのドライバがおかしいのかと思い、Intelのサイトを調べたところ・・・
こんなのが出てきました。
Network Adapter Gigabit Base Driver for FreeBSD*, Release 7.x
em-6.8.7.tar.gz というアーカイブで提供されています。
これを『百式』の時の様に入れてあげないといけないのか?

いま猛烈に調べながら、サーバの再インストールの手配を進めています。
試せるものは、片っ端から試してみよう。

【17:20 追記】
A-TigerのOS再インストールが終わり、カーネル再構築前のセットアップをもう一度開始しました
まずはカーネル再構築前まで進めます。

【17:35 追記】
カーネル再構築前のセットアップが終わりました。
さあて、、、『百式』の時と同じ手順でカーネル再構築しようかと思ったのですが、まずは
先ほど報告したNICドライバ(em-6.8.7)のモジュールのみを今から作ってみよう。
そして「起動時に動的に呼び出す」設定をして、サーバが新しいドライバで通信できるか
確かめてみます。
もし通信できれば、『百式』方式でカーネル再構築すればいい。
でも仮にダメだったら・・・途方にくれます。
ここまで来たからには、まずはやってみよう。

【18:10 追記】
何なんだぁ!!!Intelさんは・・・
NICのドライバのアーカイブを解凍してみたら、ソースしか出てこない。
tiger3502# tar xzvf em-6.8.7.tar.gz
x em-6.8.7
x em-6.8.7/src
x em-6.8.7/patches
x em-6.8.7/README
x em-6.8.7/src/e1000_80003es2lan.c
x em-6.8.7/src/if_em.h
x em-6.8.7/src/if_em.c
x em-6.8.7/src/e1000_regs.h
x em-6.8.7/src/e1000_phy.h
x em-6.8.7/src/e1000_phy.c
x em-6.8.7/src/e1000_osdep.h
x em-6.8.7/src/e1000_osdep.c
x em-6.8.7/src/e1000_nvm.h
x em-6.8.7/src/e1000_nvm.c
x em-6.8.7/src/e1000_manage.h
x em-6.8.7/src/e1000_manage.c
x em-6.8.7/src/e1000_mac.h
x em-6.8.7/src/e1000_mac.c
x em-6.8.7/src/e1000_ich8lan.h
x em-6.8.7/src/e1000_ich8lan.c
x em-6.8.7/src/e1000_hw.h
x em-6.8.7/src/e1000_defines.h
x em-6.8.7/src/e1000_api.h
x em-6.8.7/src/e1000_api.c
x em-6.8.7/src/e1000_82571.h
x em-6.8.7/src/e1000_82571.c
x em-6.8.7/src/e1000_82543.h
x em-6.8.7/src/e1000_82543.c
x em-6.8.7/src/e1000_82542.c
x em-6.8.7/src/e1000_82541.h
x em-6.8.7/src/e1000_82541.c
x em-6.8.7/src/e1000_82540.c
x em-6.8.7/src/e1000_80003es2lan.h
x em-6.8.7/src/Makefile
tiger3502#

これじゃあ『百式』の時に実施した手順(個別にモジュールをmakeしてboot時にローディング)が
使えない。
それなのにREADMEにはきっちりその方法が書かれているし・・・

じゃあ『百式』の時にうまく行かなかった「カーネルソースに追加して再構築時に作る」方法を
試してみます。。。

あ・・・移転作業が入っちゃったので一時中断。
作業が終わったら再開します。

【19:05 追記】
「カーネルソースに追加して再構築時に作る」方法を試してみましたが・・・失敗です
(昔『百式』の時にぶち当たったエラーと同じです。)
../../../dev/em/e1000_82575.c:1304: error: (Each undeclared identifier is reported only once
../../../dev/em/e1000_82575.c:1304: error: for each function it appears in.)
../../../dev/em/e1000_82575.c: In function 'e1000_reset_init_script_82575':
../../../dev/em/e1000_82575.c:1328: error: 'e1000_82575' undeclared (first use in this function)
*** Error code 1

Stop in /usr/src/sys/amd64/compile/ATIGER6471.

カーネル再構築しないで、GENERICだと動くのになあ・・・
八方塞がりの状況です。あーあ。

【20:05 追記】
移転作業の間、ずーと考えていました。。。
「なんでGENERICで動いて、カーネル再構築すると動かなくなるのか?」
で、原因とか思いつきませんでしたが、1つ気づきました
「GENERIC版のドライバモジュールが動くんなら、カーネル再構築後にそのモジュールを
元に戻してあげれば、動くんじゃないの?」
って。

そうです、ある意味「究極の小手先技」です。
自分自身でも「何だかな〜」と思いましたが、正直それしか思いつきませんでした。
試してみるだけ試してみて、動かなかったら、しばらくカーネル再構築はしません。
もし動いたら、、、動くといいなあ。

という事で、以下の手順をこれから実行します。
1) /boot/kernel にある以下の2つのモジュールを退避する。
  ※ /home/admin/em に退避します。
    if_em.ko
    if_em.ko.symbols
2) sysinstall で /usr/src/sys を持ってくる。
3) cd /usr/src/sys/amd64/conf
4) カーネルコンフィグレーションファイル(ATIGER6471)を設置する。
5) config ATIGER6471
6) cd ../compile/ATIGER6471
7) make depend ; make ; make install
8) cp /home/admin/em/if_em* /boot/kernel
9) 覚悟を決めて、リブート

root兄(・∀・)なら色々とまだ手があるかもしれませんが、もう、('A`)の実力で
試せる事は試しました。これが最後の手です。
では、行ってきます・・・

【20:40 追記】
ダメでした・・・・orz
これからPIEの技術スタッフに再インストールを要請して、またOS入れ直してもらいます。
あとリブート前にカーネル再構築前と後でのemモジュールを比較しましたが、なぜか
小さくなっていました。

【カーネル再構築前(GENERIC)】
-r-xr-xr-x 1 root wheel 250568 May 16 03:54 if_em.ko
-r-xr-xr-x 1 root wheel 1376168 May 16 03:54 if_em.ko.symbols

【カーネル再構築後(ATIGER6471)】
-r-xr-xr-x 1 root wheel 241912 May 16 04:24 /boot/kernel/if_em.ko
-r-xr-xr-x 1 root wheel 1345864 May 16 04:24 /boot/kernel/if_em.ko.symbols

うーん・・・

【23:30 追記】
OS再インストールが終わり、カーネル再構築の前まで進みました。
んで、特化型スレでむむむさんがアドバイスしてくれた方法(再構築したカーネルを
更新せずに別ディレクトリに保存して、次回起動カーネルとして一時的に指定する)で
社内サーバで試しに動かしたら、正常に起動しました。
ただ、社内サーバのマザーボードはDQ965GFなのでA-Tigerのマザー(DQ35JO)とは違うので
油断はできません。。。

今度実行する方法は以下の通りです。
rm -rf /usr/src
rm -rf /usr/obj
mkdir /home/src
mkdir /home/obj
cd /usr
ln -s ../home/src .
ln -s ../home/obj .
sysinstall で /usr/src をすべて取得
cp /usr/share/examples/cvsup/standard-supfile /usr/src/standard-supfile
cd /usr/src
make update
cd /usr/src/sys/amd64/conf
カーネルコンフィグレーションファイル(ATIGER6471)を設置
/etc/make.conf をエディタで開き KERNCONF=ATIGER6471 に修正
cd /usr/src
make -j 8 buildkernel
make installkernel KODIR=/boot/testkernel
nextboot -k testkernel
reboot
明日試してみます。。。

【5/17 00:40 追記】
明日試そうかと思いましたが、さっき試しました。。。
やはりカーネル再構築後にリブートすると、サーバに接続できなくなりました。
PDU(電源スイッチ:APCとも呼んでいます)から遠隔リブートしたら、元のGENERICの
カーネルで無事立ち上がりました。
マザーボードが違うと、実際に搭載されているNICに対するドライバーも違って
くるのかなあ・・・
ちょっと今日はもう限界なので、明日の朝に作戦を立て直します。
なんだかなあ・・・

45日目に戻る。   47日目に続く。

1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
15日目 16日目 17日目 18日目 19日目 20日目 21日目
22日目 23日目 24日目 25日目 26日目 27日目 28日目
29日目 30日目 31日目 32日目 33日目 34日目 35日目
36日目 37日目 38日目 39日目 40日目 41日目 42日目
43日目 44日目 45日目 46日目 47日目 48日目 49日目
50日目 51日目 52日目 53日目 54日目 55日目 56日目
57日目 58日目 59日目 60日目 61日目 62日目 63日目
64日目 65日目 66日目 67日目 68日目 69日目 70日目
目次に戻る

いま一番お得なページ! 解析
Copyright (C) 1997-2008, big-server.com. All Rights Reserved. server@maido3.com
レンタルサーバー BIG-server.com
Powered By Maido3.com