スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
総合案内当ブログについて
Windowsの目次Linuxの目次Linuxの目次2・ ・自作PC関連の目次Web技術関連の目次
全記事一覧情報サイト新着RSS一覧

Sponsored Link

CentOS 7.0→6.5 (サーバー機)

昨日今日でCentOS 7にしてみたサーバー機、早速6.5に戻したでござる!!
しかも再インストールという誰得な方法で!!

はい。昨日ハマりましたCentOS 6.5→7.0のUpgrade。
モニタつないだらSystemdがエラー吐きまくっててやばし!!
ということで復旧にいろいろやってみたけど無駄だったログ。

結局LiveDVDから復旧を試みるも失敗
→CentOS 7をインストールしたら起動コケ(もしかしてハードウェア的な何かですか?)
→懲りずにもう一回やったら起動はした(前回のは何?
→dkmsがないからPHC入んないじゃん(しかもCPUステップ動かない?)、ってことで
→CentOS 6.5を再インストール

環境はM2AVM Athlonx64 +4800 DDR2 2G。あの頃のままの構成です。HDDは緑キャビア1TB。

参考
第36章 基本的システムの復元
CentOS5.7 起動不能状態からの復旧
設定ミスで起動しなくなったCentOS6.3 ―

1.CentOS DVDにはレスキューモードがあるよ
はい。CentOSに限らずLinux系のインストールメディアには大概ありますね。レスキューモード。
CentOS(7)の場合はインストールDVDからレスキューモードを選べます。
これ選んでちょっと待つと、既存のHDDを読み書き可能でmountするか、Read Onlyでmountするか、mountしないでブートするかを選べました(うろ覚え
今回はUpgrade失敗というかなり痛い感じで起動不能になってしまったので、当然読み書き可能でmount。
ちなみにうちのサーバー機は/ /var /homeにパーティション切ってて、/home以下にsambaで共有してるデータ(主にメディア系のバックアップ的な)ものが入っているだけなので、基本的に消えてまずいデータはありません。
消えたらまずいデータがある場合にはRead Onlyでマウントして、消えたらまずいデータをそのままどっかに取り出してから作業することを強くお勧めします。
マウントディレクトリは/mnt/sysimage。このへんは案内出るので楽でした。
chroot してできることがないものかといろいろやってみます。

# chroot /mnt/sysimage


心配ならこのあと # ls とかしてみましょう。HDD全体がmnt/sysimageにマウントされて、そこにrootとして入っているのがわかります。

2.dkms removeとか
今回はUpgrade失敗、失敗する前にdkmsで入れたphc-k8がエラーを吐いてたので、まずはこれを取り除きます。

# dkms remove -m phc-k8 -v 0.4.4 --all


dkmsのアンインストールの方法がわからなくてちょっと試行錯誤w

# dkms -h

Error! Unknown option: -h
Usage: /usr/sbin/dkms [action] [options]
[action] = { add | remove | build | install | uninstall | match
| mkdriverdisk | mktarball | ldtarball | mkrpm | mkkmp | mkdeb | status }
[options] = [-m module] [-v module-version] [-k kernel-version] [-a arch]
[-d distro] [-c dkms.conf-location] [-q] [--force] [--all]
[--templatekernel=kernel] [--directive='cli-directive=cli-value']
[--config=kernel-.config-location] [--archive=tarball-location]
[--kernelsourcedir=source-location] [--no-prepare-kernel]
[--binaries-only] [--source-only] [-r release (SuSE)] [--verbose]
[--size] [--spec=specfile] [--media=floppy|iso|tar] [--legacy-postinst=0|1]


-h 付けてもなんのことやらよくわかりませんね。
適当に打つとこんなメッセージが出ます

Usage: remove -m -v --all
or: remove -m -v -k


dkms remove -m モジュール名 -v モジュールのバージョン --対象カーネル 
ですでに入っているモジュールを削除。
今回はphc-k8 0.4.4を全カーネルに対してremoveします。
ちなみに/var/lib/dkms/以下にdkmsで入れたモジュールが入っていたりするので、ここをlsとかしながら作業しました。

3.yumが死んでるんだけど?
phcがエラーはいたのは確かですが、Upgrade失敗ということでどこまでUpgrade対象のパッケージが入ってるのか、そもそも依存関係は大丈夫なのかなどの様々な疑念が拭えませんので。
いいからyum update だ!!

# yum update


この時点では特に異常はありませんでした。
じゃあ、Upgradeに使ったあれやこれやはちゃんと入ってるんだか?ってことで
(lsで確認してからワイルドカード使ってください)

# rpm -ihv *rpm


preupgrade-assistant
preupgrade-assistant-contents
preupgrade-assistant-ui
python-rhsm
redhat-upgrade-tool
をインストールし直そうとしてみるが、ここではもう入ってるよ、と言われる。

# rpm --replacepkgs *rpm


再インストールを試みる。
これも無事通る。

# preupg


も無事通る。
問題は次。

# redhat-upgrade-tool-cli --force --iso CentOS-7.0-1406-x86_64-DVD.iso


ここでおかしい。
エラーを見てみるとredhat-upgrade-toolの何行目と何行目がエラーとかなんとか。
ここで数回rpm で再インストールしてもダメ。
ダメ元で

# yum clean --all


これが大間違い。rpmでreinstallも通らなくなってしまった上にyum自体が動かない。
PYCURL ERROR 6とか出てたのでそのへんで調べてみる。
VMware Player 上の CentOS で yum が使えない
PYCURL ERROR 6とかresolv.confが上書きされるとか
どうもname serverの設定がおかしいようだったけれど、変更して/etc/init.dnetworking startとかやっても取ってきてくれない。chroot環境だからなのか?

仕方ないので再起動(ぉ

4.Grubがエラーだって・・・
いや、ただのエラーじゃないんすよ。
とりあえず願いをかけて再起動したものの動かず(当たり前
しかしながら起動時の挙動からGrub段階ですでに怪しい。Grubの起動前もしくは起動時にコケてる。

しかたないのでもっかいレスキューモードでGrubの修復を試みる。

# update-grub


これがエラー返す。やばい。そんなコマンドないよとか何とか。

# grub-install /dev/sdb


(USBメモリでLiveDVD作ってそっちがsdaでHDDがsdbになってた)
corresponding BIOS drive.
こんなの初めて見たんだけど?
grub の corresponding エラー
これはどうもディスク構成が変わった時なんかに出るエラー、らしいです。
そういえばdevice_mapがどーのっていうメッセージも出てます。
これは/boot/grub/device.map らしいので、開いてみます。

# nano /boot/grub/device.map
   (hd0) /dev/sda


なるほどひとつだけなので、/dev/sdbを追加します。そもそもHDDがsdbなのだから、これがなくてはエラー出て当たり前。
というわけでここに(hd1)/dev/sdb を追記して保存。

# grub-install /dev/sdb


通りましたすごい。

5.ここまでやってダメっすか?
結局yumが死んだままだったのでまともに起動せず。
もういい加減うんざりきてたので諦めてCentOS 7をそのままインストールすることに。
とその前に。クリーンインスコ状態のCentOS6.5から7へのUpgradeがうまく行くかどうか試してみました。
CentOS6.5を入れて # yum update
その上で順番にCentOS 6.5→7.0 Upgrade(サーバー機)
の手順を踏んでみます。
結果ですが、2回めの再起動でフリーズ。なかなかうまく行かないもんです。
えー、前回で検証できたのは

# redhat-upgrade-tool-cli --network 7.0 --instrepo http://mirror.centos.org/centos/7/os/x86_64/
# reboot


ここでエラー吐きまくって止まってたんですが、インストールしなおした6.5からではここはパス。
で、このあと1000近いパッケージが順番にUpdateされていくのがコマンドラインで流れます。スペックにもよるでしょうけど、うちのサーバー機で20〜30分ほど。
そののちに勝手に再起動がかかって、ブートスプラッシュ画面が6系の黒でなく、グレーっぽい色で立ち上がるんですが、ここでフリーズ。
何度か再起動してみたり、Escでコマンド表示にしてみたりしても、全く進んでない。左上で一文字目が点滅しているだけ。

というわけでここは諦めて素直にCentOS 7をインストールします。

6.CentOS 7インストール
ぶっちゃけここまでハマるなら最初から入れとけばいいじゃんって話。
まぁでもそればっかじゃ芸がないので、レスキューモードからchroot環境でうまいこと直せたらなんて淡い夢は打ち砕かれたので普通にインストールします。
/ /var /homeと分かれているので、/ /varはext4で初期化、homeだけフォーマットなしでマウントポイントに/home指定。
これでうまくいけばフツーにhomeは引き継がれるはずです。
ホントは/varも残そうかと思ったんですが、/var/lockなんちゃらがno such directoryとかたくさん出てたので、フォーマットすることに。
というか、CentOS 7ってインストール画面すごい変わってるんですね。
これ、パーティショナーがヒジョーにわかりにくいですw
Linux使いはじめる人が一番つまづきやすい(と思う)パーティショナーを複雑にするとかどうなんですかね?一応「全体を使う」オプションはありますけど。
そもそもCentOSはLinux初心者とかあまり対象にしてないんですかね?
まぁ実際、サーバー用途が多いでしょうしこのまま独自路線言ってもらって全然構わないですけど。サポート長いし。

いや、話がそれました。
インストール自体はちょっと戸惑うところがあったものの無事完了して再起動すると・・・Grub起動前にフリーズ!!
もしかしてハードウェア関連の何かを踏んじゃったのかこれ?それならばUpgradeも手順的には正しかったけどどっかの地雷踏んで起動しなかったんかこれ?などと言った疑念が浮かんでは消えます。
少しでも問題を切り分けるためにもう一回インストールしてみましょう。
すると・・・起動できますね。
なんだったんでしょうかいったい??
結局ハードウェア関連の何かなのか、何かのパッケージがまずいことになっててUpgrade失敗した(phcの疑い濃厚)のか、単純にUpgradeの成功率がさほど高くないのかよくわかりません。

7.そしてdkmsがない
dkmsがないんですよー。CentOS7のリポジトリには。
というか、リポジトリ追加していれたのをすっかり忘れてたので、簡単にPHC動くと思ったんですけどね。
http://pkgs.repoforge.org/dkms/
dkms-2.1.1.2-1.el6.rf.noarch.rpm 11-Nov-2010 07:31 69K RHEL6 and CentOS-6 noarch
dkms-2.1.1.2-1.rf.src.rpm 11-Nov-2010 07:31 85K Distribution independent source
7用がないですね。まだ。
ダメ元で6用と Distribution independent sourceを入れようとしてみたけどやっぱりダメでした。
そもそもhttp://pkgs.repoforge.org/rpmforge-release/
rpmforgeのリポジトリがまだ7に対応してませんね。
ちなみにacpid cpufrequtils lm_sensors入れてみたけど、CPUステップが動いてないような?
ここでサクッとdkmsやらPHCビルドしてインストールできるほどの技量と根気がなかったのでここで諦め。
一応
Build Your Own Kernel Modules
こんなのも見つけたし、PHCのReadMeには

2.b Manual installation:
------------------------
You will need at least the kernel headers for the kernel you are using. You can easily verify whether there is a directory that /lib/modules//build points to:
ls /lib/modules/`uname -r`/build/
If there is no such directory, you probably have to use your package manager to install "linux-headers" or something similar.

As a normal user, run:
make clean && make

Then run "make install" as root:
sudo make install

You may want to edit /etc/modprobe.d/phc-k8 to let the driver use direct_transitions (explained in "Usage").


とマニュアルでビルドしてインストールする方法も書いてあるんだけど、後々カーネルのUpdateのたびに何らかのエラーに会いそうな予感がする上に、このサーバー機は基本モニタ繋がずにリモートでやってるので、ブートでコケることがあるとめんどい。

8.というわけで6.5をインストールし直し。
全く行ったり来たり何やってるんですかね。
モニタつないだ状態で初回起動したらsshの起動と自動起動登録だけしてあとはリモート。

# servece sshd start
# chkconfig sshd on


Update入れてsensors acpid cpufrequtils入れる

# yum update
# yum install lm_sensors
# yum install acpid cpufrequtils


dkms入れてphcビルド。
http://pkgs.repoforge.org/rpmforge-release/のリポジトリ追加して確認→dkms

# rpm --upgrade --verbose --hash rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
# rpm -qa | grep rpmforge-release
# yum install dkms


ここでPHCビルドしたらなんだか途中でエラーはいてしまったのでちょっと色々確認。

# yum install kernel-headers
# yum install gcc build-essential


kernel-headersは入っていた。gccも入ってたけど、build-essentialはCentOSでは
Build-Essentials in CentOS?

# yum groupinstall "Development Tools"


らしい。
これ入れて、一回ビルドにコケたPHCをremoveしてもっかい。

# dkms remove -m phc-k8 -v 0.4.5 --all
# make dkms_install
(中略)
/var/lib/dkms/phc-k8/0.4.5/build/ for more information.
make: *** [dkms_install] エラー 7


どーも0.4.5はダメっぽい?ので0.4.4に戻す。

# dkms remove -m phc-k8 -v 0.4.5 --all
# make dkms_install
mkdir -p /usr/src/phc-k8-0.4.4
install -m 644 -o root -g root Makefile dkms.conf phc-k8.c phc-k8.h mperf.c mperf.h /usr/src/phc-k8-0.4.4
install -m 744 -o root -g root phc-k8.add /usr/src/phc-k8-0.4.4
dkms add build install -m phc-k8 -v 0.4.4

Creating symlink /var/lib/dkms/phc-k8/0.4.4/source ->
/usr/src/phc-k8-0.4.4

Running the post_add script:

DKMS: add Completed.

Kernel preparation unnecessary for this kernel. Skipping...

Building module:
cleaning build area....
make KERNELRELEASE=2.6.32-431.20.3.el6.x86_64 -C /lib/modules/2.6.32-431.20.3.el6.x86_64/build SUBDIRS=/var/lib/dkms/phc-k8/0.4.4/build modules.....
cleaning build area....

DKMS: build Completed.

phc-k8.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/2.6.32-431.20.3.el6.x86_64/extra/

mperf.ko:
Running module version sanity check.
- Original module
- Found /lib/modules/2.6.32-431.20.3.el6.x86_64/kernel/arch/x86/kernel/cpu/cpufreq/mperf.ko
- Storing in /var/lib/dkms/phc-k8/original_module/2.6.32-431.20.3.el6.x86_64/x86_64/
- Archiving for uninstallation purposes
- Installation
- Installing to /lib/modules/2.6.32-431.20.3.el6.x86_64/extra/
Adding any weak-modules

/etc/modprobe.d/phc-k8.conf: added 'install powernow-k8 /sbin/modprobe phc-k8 || { /sbin/modprobe --ignore-install powernow-k8; }'
/etc/modprobe.d/phc-k8.conf: added 'remove powernow-k8 /sbin/modprobe -r cpufreq_stats && { /sbin/modprobe --ignore-remove -r powernow-k8 ; }'
/etc/modprobe.d/phc-k8.conf: added 'remove phc-k8 /sbin/modprobe -r cpufreq_stats && { /sbin/modprobe --ignore-remove -r phc-k8 ; }'
depmod....

DKMS: install Completed.


おっけー。
再起動。

# reboot
$ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
17:10 16:11 14:13 12:15 10:17 2:18
# echo '17:12 14:16 10:24 2:28'>/sys/devices/system/cpu/cpu0/cpufreq/phc_controls
# sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +40.0°C (crit = +75.0°C)

k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp: +58.0°C
Core0 Temp: +47.0°C
Core1 Temp: +63.0°C
Core1 Temp: +52.0°C

atk0110-acpi-0
Adapter: ACPI interface
Vcore Voltage: +0.86 V (min = +0.85 V, max = +1.60 V)
+3.3 Voltage: +3.33 V (min = +3.00 V, max = +3.60 V)
+5.0 Voltage: +4.95 V (min = +4.50 V, max = +5.50 V)
+12.0 Voltage: +12.03 V (min = +11.20 V, max = +13.20 V)
CPU FAN Speed: 1537 RPM (min = 0 RPM)
CHASSIS FAN Speed: 0 RPM (min = 0 RPM)
POWER FAN Speed: 0 RPM (min = 0 RPM)
CPU Temperature: +34.0°C (high = +90.0°C, crit = +125.0°C)
MB Temperature: +41.0°C (high = +45.0°C, crit = +90.0°C)



おっけー。
結局それなりに使ってたCentOS6.5のサーバー環境ふっ飛ばして戻ってきただけでしたが、これを機にレスキューモードの使い方やyum rpm dkmsなどの使い方を少し覚えられたのでよかったと思います。

関連記事
CentOS6.4でSamba
CentOS6.4にdkmsとPHC undervolt
CentOS 6.5→7.0 Upgrade(サーバー機)
CentOS6.5でNFS Serverでファイル共有
関連記事
総合案内当ブログについて
Windowsの目次Linuxの目次Linuxの目次2・ ・自作PC関連の目次Web技術関連の目次
全記事一覧情報サイト新着RSS一覧

Sponsored Link

コメントの投稿

管理者にだけ表示を許可する
ブログ内検索

カスタム検索

フリーエリア

クリックで救える命がある。

レンタルサーバー

さくらのマネージドサーバ
さくらインターネットのVPS
ConoHaのVPS
WebARENA VPSクラウド
99円レンタルサーバー
【CloudCore VPS】
GMOクラウドのレンタルサーバー
転送量無制限 ABLENET
@WAPPYレンタルサーバー
SPPDレンタルサーバー

カテゴリー+月別アーカイブ

 

アクセスカウンター

現在の閲覧者数:

プロフィール

Author:tmin
PCヲタ。ライト2ちゃんねら。
スロット好きのギャンブラー。(元
むしろ人生がギャンブルだが目下のところ負けっぱなし。
座右の銘は「結果オーライ」。故に基本適当。
トラブルもまた楽しみのひとつ

コメント、トラバ、相互リンク歓迎。お気軽にどうぞ。
当ブログについて
Twitterでこっちとあっちの更新情報流すことにしてみます。
http://twitter.com/t_min
Project Mikunchu♪Wikiできました。
Mikunchu200x40.png


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。