mokky14's IT diary

IT関係の仕事メモ、勉強会の感想など書いてます。

CentOS 6.4(OracleVirtualBox)のx-windowが起動しなくなった

OracleVirtualBoxで動かしてたCentOS 6.4で、久しぶりにyumでパッケージを大量アップデートしたらOSが起動しなくなった。
画面下のゲージが最後まで進んだ状態で固まる。
f:id:mokky14:20130417181828p:plain
前のバージョンのカーネルを指定して起動しても同じ状態で固まる。

仕方ないので原因調査。
このページを参考にして、シングルユーザモードで起動し、/etc/inittabを編集してランレベルを3に変更して起動したら、ここまでは問題なく起動した。

ログインしてstartx実行したら

hostname: Unknown host
xauth:  creating new authority file /home/mokky14/.serverauth.2093


X.Org X Server 1.13.0
Release Date: 2012-09-05
X Protocol Version 11, Revision 0
Build Operating System: c6b7 2.6.32-220.el6.x86_64 
Current Operating System: Linux centos6.localhost.localdomain 2.6.32-358.2.1.el6.x86_64 #1 SMP Wed Mar 13 00:26:49 UTC 2013 x86_64
Kernel command line: ro root=/dev/mapper/vg_centos6-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=vg_centos6/lv_swap  KEYBOARDTYPE=pc KEYTABLE=jp106 rd_LVM_LV=vg_centos6/lv_root LANG=ja_JP.UTF-8 rd_NO_DM rhgb quiet crashkernel=129M@0M
Build Date: 22 February 2013  11:30:37AM
Build ID: xorg-x11-server 1.13.0-11.el6.centos 
Current version of pixman: 0.26.2
	Before reporting problems, check http://wiki.centos.org/Documentation
	to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Wed Apr 17 17:53:51 2013
(==) Using config file: "/etc/X11/xorg.conf"
Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension SELinux
Initializing built-in extension XFree86-VidModeExtension
Initializing built-in extension XFree86-DGA
Initializing built-in extension XFree86-DRI
Initializing built-in extension DRI2
Loading extension GLX
(EE) module ABI major version (10) doesn't match the server's version (13)

Fatal server error:
no screens found
(EE) 
Please consult the CentOS support 
	 at http://wiki.centos.org/Documentation
 for help. 
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE) 
Server terminated with error (1). Closing log file.
giving up.
xinit:  Connection refused (errno 111):  unable to connect to X server
xinit:  No such process (errno 3):  Server error.

というエラー。

このページによると、新しいドライバーかXorgがでるまで基本的には直らないものらしい。

上記ページにあった、40-ignore-abi.confというファイルを用意する方法も試してみた。 /usr/share/X11/xorg.conf.d/40-ignore-abi.confに

Section "ServerFlags"
   Option "IgnoreABI" "True"
EndSection

を記述して、セーブして起動。

結果、Segmentaton fault発生(- -)

Loading extension GLX
(WW) module ABI major version (10) doesn't match the server's version (13)
(EE) 
(EE) Backtrace:
(EE) 0: /usr/bin/X (xorg_backtrace+0x36) [0x46cd76]
(EE) 1: /usr/bin/X (0x400000+0x72ad9) [0x472ad9]
(EE) 2: /lib64/libpthread.so.0 (0x3416400000+0xf500) [0x341640f500]
(EE) 3: /usr/lib64/xorg/modules/drivers/vboxvideo_drv.so (0x7f2e90372000+0x1cbf4) [0x7f2e9038ebf4]
(EE) 4: /usr/bin/X (xf86DeleteScreen+0x82) [0x4995f2]
(EE) 5: /usr/bin/X (InitOutput+0xaac) [0x48f75c]
(EE) 6: /usr/bin/X (0x400000+0x7c9c3) [0x47c9c3]
(EE) 7: /lib64/libc.so.6 (__libc_start_main+0xfd) [0x341581ecdd]
(EE) 8: /usr/bin/X (0x400000+0x260b9) [0x4260b9]
(EE) 
(EE) Segmentation fault at address 0xfc01610

Fatal server error:
Caught signal 11 (Segmentation fault). Server aborting

(EE) 
Please consult the CentOS support 
	 at http://wiki.centos.org/Documentation
 for help. 
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE) 
Server terminated with error (1). Closing log file.
giving up.
xinit:  Connection refused (errno 111):  unable to connect to X server
xinit:  No such process (errno 3):  Server error.

当然x-windowは起動せず。

更新モジュールが提供されるまでは、ターミナルログインで使用するしかないかな。

(2013/5/30追記)
久しぶりにyumアップデート実行してみたが、状況変わらず。
何か勘違いしてるかも、という気がしてきたので、/var/log/X0rg.0.logをもう一度ちゃんと見てみる。

[   420.622] (II) LoadModule: "vboxvideo"
[   420.622] (II) Loading /usr/lib64/xorg/modules/drivers/vboxvideo_drv.so
[   420.622] (II) Module vboxvideo: vendor="Oracle Corporation"
[   420.622]    compiled for 10.10.0, module version = 1.0.1
[   420.622]    Module class: X.Org Video Driver
[   420.622]    ABI class: X.Org Video Driver, version 10.0
[   420.622] (EE) module ABI major version (10) doesn't match the server's version (13)
[   420.622] (II) UnloadModule: "vboxvideo"
[   420.622] (II) Unloading vboxvideo
[   420.622] (EE) Failed to load module "vboxvideo" (module requirement mismatch, 0)
[   420.622] (EE) No drivers available.

ん? vboxvideo?
ということは、アップデートしなきゃいけないのは、CentOSではなくVirtualBoxの方だったか?

とりあえずVirtualBoxを最新バージョンにアップデート。バージョンは4.2.6から4.2.12になった。
この後アップデートしたVirtualBoxからCentOSを起動して、startx叩いてみたけど、現象は変わらず。

VBoxGuestAdditionsを再インストールしてみる。

VBoxGuestAdditionsのisoをセット。
f:id:mokky14:20130530125611p:plain

CUIログインして、VBoxGuestAdditionsの再インストール。

f:id:mokky14:20130530125914p:plain
f:id:mokky14:20130530125917p:plain

この後、再起動してstartxしたら起動成功!

f:id:mokky14:20130530130448p:plain

ということで無事解決。
勘違いで無駄に一ヶ月過ごしてしまった。。。