yumによるCentOS5.5→5.6へのアップデート時の起動不具合(dmraid有効化による?)
NEC Express5800にCentOS5.5を入れて運用しているサーバで、yumを用いて各種パッケージをアップデートすることにした。CentOS的には5.6になるはず。
手順としてリリースノートにあるように、以下を実行。
# yum clean all
# yum update glibc\*
# yum update yum\* rpm\* pyth\*
# yum clean all
# yum update mkinitrd nash
# yum update selinux\*
# yum update
# yum update glibc\*
# yum update yum\* rpm\* pyth\*
# yum clean all
# yum update mkinitrd nash
# yum update selinux\*
# yum update
その後、再起動すると起動時に以下のようになって起動できなくなった。
カーネルが2.6.18-238.19.1.el5になったことが影響?
ERROR: ddf1: wrong # of devices in RAID set “ddf1_array0” [1/2] on /dev/sdb
おそらくこれが原因で
fsck.ext3: Device or resource busy while trying to open /dev/sdb1
Filesystem mounted or opened exclusively by another program?
Filesystem mounted or opened exclusively by another program?
に繋がったのでは。ソフトウエアRAIDを組んだ覚えはないが。内臓HDDは2台あり、このExpress5800はオンボードのRAIDを機能として持っているようだが、Linux対応ではないし、BIOS上でもRAIDはきってあるし。2台のHDDはそれぞれ、/dev/sda、/dev/sdbとしてシンプルに認識されていたはず。
2代目のHDDがRAIDの対象に…?このあたりの解釈の仕方は勉強不足のためわからず。
dmraidというものが絡んでいるのではないかというところまでこぎつけた。
インストールCDからレスキューモードで起動して
# dmraid -s
とすると、
*** Group superset .ddf1_disks
–> Subset
name : ddf1_array0
size : 154296320
stride : 128
type : mirror
status : ok
subsets: 0
devs : 1
spares : 0
–> Subset
name : ddf1_array0
size : 154296320
stride : 128
type : mirror
status : ok
subsets: 0
devs : 1
spares : 0
# dmraid -rE
なども試すが、
Do you really want to erase “ddf1” ondisk metadata on /dev/sdb ? [y/n] :y
ERROR: ddf1: seeking device “/dev/sdb” to 40960020709376
ERROR: writing metadata to /dev/sdb, offset 80000040448 sectors, size 0 bytes returned 0
ERROR: erasing ondisk metadata on /dev/sdb
ERROR: ddf1: seeking device “/dev/sdb” to 40960020709376
ERROR: writing metadata to /dev/sdb, offset 80000040448 sectors, size 0 bytes returned 0
ERROR: erasing ondisk metadata on /dev/sdb
となり変わらず。
いろいろ調べて、grubの起動オプションを指定することでdmraidを無効にすることができそうで、
/boot/grub/grub.confを
kernel /vmlinuz-2.6.18-238.19.1.el5 ro root=LABEL=/ rhgb quiet nodmraid
とした。
これで1枚目の写真のエラーは起きなくなり、無事にOSが起動するようになった。
ほっ・・・。しかし、まだよく理解はできていない。