headline news

[yum update]した際、サーバが起動できなくなった時の対処法

日付
分類
画像2枚
PV日0 月0 年1638
90.2%

こんばんは。2020年11月21日、AWS EC2のCentOS7.9でyum update -yしてからサーバがフリーズして停止すらできないことが起きたので、対処法を記します。大雑把に説明すると、カーネルが破損したそうなので、一旦EBSを別インスタンスにアタッチ、マウントしてルートディレクトリにして、破損したカーネルを、GRUBブートローダーでデフォルトのカーネルを更新するして元に戻していくという作業になります。

バージョンの確認

cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
yum update
~~~(省略)
Error:systemtap-client conflicts with systemtap-runtime-4.0-10.el7_7.x86_64
Error:systemtap-devel conflicts with systemtap-runtime-4.0-10.el7_7.x86_64
You could try using --skip-broken to work around the problem
** Found 131 pre-existing rpmdb problem(s), 'yum check' output follows:

このようなエラーが表示される中でyでアップデートを実行してしまうと、途中からフリーズして動かなくなります。停止させても1時間ほど停止中となり、強制的に停止させたりEBSを強制デタッチすることによって停止済みにできました。

デタッチに成功したら新しいインスタンスを生成します。 OSとアベイラリティゾーンを必ず同じにしましょう。CPUなどは無料枠で良いでしょう。新しいインスタンスを起動したら一旦yum update -yをしておきます。新しく作ったばかりのインスタンスなら、このアップデートではエラーになることはありません。

アップデートが無事終わったら一旦インスタンスを停止します。

停止後、元のインスタンスボリュームをデタッチします。このとき、元のインスタンスのEBSのルートボリュームを控えておいてください。/dev/sda1/dev/sdfなどの場合があり、救出後、再度アタッチするときに同じルートボリュームを設定しないと起動できなくなります。デフォルトでは前回と同じsda1になっていません。忘れるとかなり面倒になります。

aws ec2 EBS ルートデバイス
1/2
1

メモしたら、新しい救出用インスタンスにアタッチします。この時はsdbかsdfという名前になり、起動後にls -al /dev/xv*でxvdbかxvdaにという名前で表示されているのを確認。sdbならxvdb、sdaならxvdaという風にsがxvに変わってややこしいです。

aws ec2 EBS アタッチ
2/2
2
ls -al /dev/xv*
brw-rw----. 1 root disk 202, 0 Nov 15 11:21 /dev/xvda
brw-rw----. 1 root disk 202, 1 Nov 15 11:21 /dev/xvda1
brw-rw----. 1 root disk 202, 0 Nov 21 13:41 /dev/xvdf
brw-rw----. 1 root disk 202, 1 Nov 21 13:41 /dev/xvdf1
mkdir /ebs
mount /dev/xvdf1 /ebs
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:0 0 500G 0 disk
└─xvdf1 202:1 0 500G 0 part /ebs # ←元々のサーバのHDDがマウントされたことを確認
ls /ebs
bin boot dev etc ezdata home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

これで元々のEBSを緊急用インスタンスにマウントでき、いじれるようになりました。次にルートディレクトリなども反映させます。

mount -o bind /dev /ebs/dev
mount -o bind /run /ebs/run
mount -o bind /proc /ebs/proc
mount -o bind /sys /ebs/sys
chroot /ebs

カーネル破損して生じたバグの根元であるGRand Unified Bootloaderを修正

vi /etc/default/grub

GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --speed=115200"
GRUB_CMDLINE_LINUX="console=tty0 crashkernel=auto console=ttyS0,115200"
GRUB_DISABLE_RECOVERY="true"

3行目のGRUB_DEFAULT=00savedに変える

GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --speed=115200"
GRUB_CMDLINE_LINUX="console=tty0 crashkernel=auto console=ttyS0,115200"
GRUB_DISABLE_RECOVERY="true"

grubを更新して、/boot/grub2/grub.cfgファイルを再生成します。

grub2-mkconfig -o /boot/grub2/grub.cfg

次回の再起動時に安定したカーネルが読み込まれるように設定

grub2-set-default 1

exitでrootを抜け、/ebsを全てアンマウント

umount /ebs/dev
umount /ebs/run
umount /ebs/proc
umount /ebs/sys
umount /dev/xvdf1

ターミナルを終了、新しく作ったインスタンスを停止、EBSをデタッチ、元々のインスタンスにアタッチ、無事起動できれば完了。

参照元:How do I revert to a known stable kernel after an update prevents my Amazon EC2 instance from rebooting successfully?

  • 🥰抜けました
    79
  • 🥹感動しました
    3
  • 😆笑いました
    10
  • 🤔意味わからんです
    4
  • 😡胸糞悪かったです
    3
  • 😣萎えてしまいました
    3
  • 投票する
この記事をブックマーク
    日付
    分類
    画像2枚
    PV日0 月0 年1638
    90.2%
    お読み頂きありがとうございました!
    Thanks Good Read again!
    コメントを書き込め
    本文必須 最低2字 最大400字 名前空欄可 最大20字
    コメント一覧
    1
    a0614b

    抜けました。

    1
    1
    返信
    2
    c16a33

    結局はこういうのが1番抜ける

    1
    1
    返信
    3
    e787d5

    te

    1
    1
    返信
    4
    2d718a

    かわいそうなのは抜けない。

    1
    2
    返信
    5
    c609eb

    おじいちゃんは抜けない

    1
    1
    返信
    6
    6bb825

    インフラはやらかすと取り返し付かなくなるから怖い

    1
    1
    返信
    7
    53666f

    SE発見器

    1
    1
    返信
    8
    f98260

    vimで抜きました

    1
    1
    返信
    9
    c99a4d

    上の人達レベル高すぎて草

    1
    1
    返信
    10
    4fa98d

    救出用インスタンスにアタッチで抜きました

    1
    1
    返信
    11
    fb61d4

    grubされたい

    1
    1
    返信
    12
    f2676c

    ふぅ…

    1
    1
    返信
    13
    5d328d

    管理人さん!ありがとう!
    今日も抜けました!

    1
    1
    返信
    14
    966151

    ふーん、エッチじゃん

    1
    1
    返信
    15
    cd95ea

    投稿先zennと間違えてますよ

    1
    1
    返信
    16
    067d9d

    コンフィグファイルのバックアップをおすすめします

    1
    1
    返信
    17
    0b5830

    突然ぶっこまれるSE/PGネタ好き

    1
    1
    返信
    18
    1d6ef3

    どういうことなの...

    1
    1
    返信
    19
    97b39d

    髪の毛、抜けました

    1
    1
    返信
    20
    e0cd22

    男がイケメンすぎ

    1
    1
    返信
    21
    a3d55c

    ee

    0
    0
    返信
    22
    da7ede

    ee

    0
    0
    返信
    23
    da7ede

    ee

    0
    0
    返信
    関連記事
    汗をかいて懸命に集めた優劣付けがたい画像集116枚のサムネイル画像
    汗をかいて懸命に集めた優劣付けがたい画像集116枚
    日0 年3.58k
    145
    18

    ee172件

    風化しないうちにアップロードしたかけがえのない画像集123枚のサムネイル画像
    風化しないうちにアップロードしたかけがえのない画像集123枚
    日0 月511 年12.95k
    107
    37

    ee27件

    2017年5月分の暇つぶしに集めた100枚の画像のサムネイル画像
    2017年5月分の暇つぶしに集めた100枚の画像
    日0 年1.24k
    61
    22

    ee4件

    そういえば保存してあった百枚の画像を公開のサムネイル画像
    そういえば保存してあった百枚の画像を公開
    日0 年665
    56
    31

    ee4件

    皇帝ペンギンとその他いまいちな画像集のサムネイル画像
    皇帝ペンギンとその他いまいちな画像集
    日0 月525 年2.21k
    43
    18

    ee3件

    2020年06月06日土曜日に真顔で集めておいた揺るぎ無い画像集130枚のサムネイル画像
    2020年06月06日土曜日に真顔で集めておいた揺るぎ無い画像集130枚
    日0 年882
    80
    18

    ee26件

    第一弾 146枚の大雨4連休GoTo画像集2020年版のサムネイル画像
    第一弾 146枚の大雨4連休GoTo画像集2020年版
    日0 月5.92k 年21.13k
    73
    20

    ee43件

    先週末に保管した普通の画像を晒した記事のサムネイル画像
    先週末に保管した普通の画像を晒した記事
    日0 月343 年3.63k
    20
    6

    ee272件

    ダンボーの前で保存した霜焼けで凍てつく画像集146枚のサムネイル画像
    ダンボーの前で保存した霜焼けで凍てつく画像集146枚
    日0 年4.05k
    48
    15

    ee30件

    2023年1月13日に保存した考えさせられる画像集171枚のサムネイル画像
    2023年1月13日に保存した考えさせられる画像集171枚
    日0 月1.84k 年217.29k
    235
    88

    ee42件

    広告