インスタンスが正常に起動しない時には他のインスタンスでディスク修復:GCP

Google Cloud Platform上の コンピュートエンジンのインスタンス、LinuxサーバーをWebmin から、約60のソフトウェアのアップデートをしようとしたら、新カーネルのインストールに失敗。

理由は、/boot のディスク容量不足。

そこでSSHでログインし、 /boot にあったファイルを一覧する。

 

dr-xr-xr-x.  6 root root     4096  5月  8 11:20 .
dr-xr-xr-x. 20 root root     4096  4月 22 21:39 ..
-rw-r--r--   1 root root      171  8月 15  2018 .vmlinuz-3.10.0-862.11.6.el7.x86_64.hmac
-rw-r--r--   1 root root      171  9月 26  2018 .vmlinuz-3.10.0-862.14.4.el7.x86_64.hmac
-rw-r--r--   1 root root      170  6月 26  2018 .vmlinuz-3.10.0-862.6.3.el7.x86_64.hmac
-rw-r--r--   1 root root      170  7月 16  2018 .vmlinuz-3.10.0-862.9.1.el7.x86_64.hmac
-rw-r--r--   1 root root      170  2月  1 21:58 .vmlinuz-3.10.0-957.5.1.el7.x86_64.hmac
-rw-------   1 root root 20029603  4月 16 21:38 CloudEndure-Migration-initramfs-0-rescue-347d59c6807f4fdbb0a47726d8396d96.img
-rw-------   1 root root 20030387  4月 16 21:41 CloudEndure-Migration-initramfs-0-rescue-6eed10dce8a4469390fb949a6f350aa6.img
-rw-------   1 root root 21051488  4月 16 21:40 CloudEndure-Migration-initramfs-3.10.0-862.11.6.el7.x86_64.img
-rw-------   1 root root 21050593  4月 16 21:38 CloudEndure-Migration-initramfs-3.10.0-862.14.4.el7.x86_64.img
-rw-------   1 root root 21055275  4月 16 21:39 CloudEndure-Migration-initramfs-3.10.0-862.6.3.el7.x86_64.img
-rw-------   1 root root 21051537  4月 16 21:40 CloudEndure-Migration-initramfs-3.10.0-862.9.1.el7.x86_64.img
-rw-------   1 root root 21053329  4月 16 22:01 CloudEndure-Migration-initramfs-3.10.0-957.5.1.el7.x86_64.img
-rw-------   1 root root  3414344  8月 15  2018 System.map-3.10.0-862.11.6.el7.x86_64
-rw-------   1 root root  3414754  9月 26  2018 System.map-3.10.0-862.14.4.el7.x86_64
-rw-------   1 root root  3412056  6月 26  2018 System.map-3.10.0-862.6.3.el7.x86_64
-rw-------   1 root root  3412056  7月 16  2018 System.map-3.10.0-862.9.1.el7.x86_64
-rw-------   1 root root  3544044  2月  1 21:58 System.map-3.10.0-957.5.1.el7.x86_64
drwxr-xr-x   2 root root      148 10月 19  2018 ce_conversion
-rw-r--r--   1 root root   147859  8月 15  2018 config-3.10.0-862.11.6.el7.x86_64
-rw-r--r--   1 root root   147859  9月 26  2018 config-3.10.0-862.14.4.el7.x86_64
-rw-r--r--   1 root root   147837  6月 26  2018 config-3.10.0-862.6.3.el7.x86_64
-rw-r--r--   1 root root   147837  7月 16  2018 config-3.10.0-862.9.1.el7.x86_64
-rw-r--r--   1 root root   151922  2月  1 21:58 config-3.10.0-957.5.1.el7.x86_64
drwxr-xr-x   3 root root       16 11月 30  2017 efi
drwxr-xr-x.  2 root root       26 10月 10  2015 grub
drwx------.  5 root root     4096  4月 16 21:21 grub2
-rw-------   1 root root 20029497  4月 16 18:51 initramfs-0-rescue-347d59c6807f4fdbb0a47726d8396d96.img
-rw-------   1 root root 20029721  4月 16 18:57 initramfs-0-rescue-6eed10dce8a4469390fb949a6f350aa6.img
-rw-------   1 root root 20421090  1月 10  2018 initramfs-3.10.0-514.26.1.el7.x86_64.img
-rw-------   1 root root 20420723  1月 10  2018 initramfs-3.10.0-514.26.2.el7.x86_64.img
-rw-------   1 root root 20190848  1月 10  2018 initramfs-3.10.0-693.11.1.el7.x86_64.img
-rw-------   1 root root 20189513  1月 10  2018 initramfs-3.10.0-693.5.2.el7.x86_64.img
-rw-------   1 root root 21051104  4月 16 18:55 initramfs-3.10.0-862.11.6.el7.x86_64.img
-rw-------   1 root root 21050403  4月 16 18:51 initramfs-3.10.0-862.14.4.el7.x86_64.img
-rw-------   1 root root 13095125  2月  9 17:30 initramfs-3.10.0-862.14.4.el7.x86_64kdump.img
-rw-------   1 root root 21053641  4月 16 18:53 initramfs-3.10.0-862.6.3.el7.x86_64.img
-rw-------   1 root root 21052426  4月 16 18:57 initramfs-3.10.0-862.9.1.el7.x86_64.img
-rw-------   1 root root 12990853  7月 29  2018 initramfs-3.10.0-862.9.1.el7.x86_64kdump.img
-rw-------   1 root root 21053446  4月 16 21:05 initramfs-3.10.0-957.5.1.el7.x86_64.img
-rw-------   1 root root 13099782  4月 16 21:27 initramfs-3.10.0-957.5.1.el7.x86_64kdump.img
-rw-r--r--.  1 root root   611544 11月 30  2017 initrd-plymouth.img
-rwxr-xr-x   1 root root  6398144 10月 19  2018 vmlinuz-0-rescue-6eed10dce8a4469390fb949a6f350aa6
-rwxr-xr-x   1 root root  6398144  9月 26  2018 vmlinuz-3.10.0-862.14.4.el7.x86_64
-rwxr-xr-x   1 root root  6234048  7月 16  2018 vmlinuz-3.10.0-862.9.1.el7.x86_64
-rwxr-xr-x   1 root root  6643904  2月  1 21:58 vmlinuz-3.10.0-957.5.1.el7.x86_64

溜まっていた古いバージョンのファイルを削除しようとしたら、誤って全部削除してしまった。

CloudEndure* 関連を全部削除するつもりで、

rm -rf  CloudEndure*

とコマンドするつもりが、 CloudEndure と *の間に空白が空いてしまい、

rm -rf CloudEndure *

とやってしまった。

痛恨の一撃であった。

一瞬で全てのファイルが消えてしまった。

とりあえずそこに存在していたファイル名一覧のコピーメモをしておいた。

どうせ今から新しいカーネルをインストールするのだから、それでいいのかも、とアップデートを進めてみた。

無事に全てのアップデートが終わって、カーネルも最新バージョンがインストールされていた。

/boot はこんな状態になった。

dr-xr-xr-x.  2 root root     4096 May  8 04:32 .
drwxr-xr-x  23 root root     4096 May  8 08:33 ..
-rw-r--r--   1 root root   151923 Apr 29 15:03 config-3.10.0-957.12.1.el7.x86_64
-rw-------   1 root root 59103128 May  8 04:32 initramfs-0-rescue-6eed10dce8a4469390fb949a6f350aa6.img
-rw-------   1 root root 20791748 May  8 04:30 initramfs-3.10.0-957.12.1.el7.x86_64.img
-rw-r--r--   1 root root   314089 Apr 29 15:03 symvers-3.10.0-957.12.1.el7.x86_64.gz
-rw-------   1 root root  3544552 Apr 29 15:03 System.map-3.10.0-957.12.1.el7.x86_64
-rwxr-xr-x   1 root root  6643904 May  8 04:32 vmlinuz-0-rescue-6eed10dce8a4469390fb949a6f350aa6
-rw-r--r--   1 root root      171 Aug 14  2018 .vmlinuz-3.10.0-862.11.6.el7.x86_64.hmac
-rw-r--r--   1 root root      171 Sep 26  2018 .vmlinuz-3.10.0-862.14.4.el7.x86_64.hmac
-rw-r--r--   1 root root      170 Jul 16  2018 .vmlinuz-3.10.0-862.9.1.el7.x86_64.hmac
-rwxr-xr-x   1 root root  6643904 Apr 29 15:03 vmlinuz-3.10.0-957.12.1.el7.x86_64
-rw-r--r--   1 root root      171 Apr 29 15:03 .vmlinuz-3.10.0-957.12.1.el7.x86_64.hmac
-rw-r--r--   1 root root      170 Feb  1 14:58 .vmlinuz-3.10.0-957.5.1.el7.x86_64.hmac

しかし、しばらくして、ウェブサイトにアクセスできない、SSHでもアクセスできない、GCPのWEBコンソールからもアクセスできないという状態に陥ってしまった。

再起動しても同じ。

コンソール上では起動している状態になっているが、SSHでもアクセスできない。

Ping も届かない、反応しない。

 

やはり /boot 内の必要ファイルが紛失してしまっていて、正常に起動していないものと推測された。

よくみると、もともとあった、

drwxr-xr-x   3 root root       16 11月 30  2017 efi
drwxr-xr-x.  2 root root       26 10月 10  2015 grub
drwx------.  5 root root     4096  4月 16 21:21 grub2

のフォルダーが足りない。

そこで、移転して20日ばかりの旧サーバーを起動して、同じようにアップデートして最新状態にして比較する。

更新日付順に一覧すると、grub2 フォルダーが最新カーネルファイルと同じく日付更新されていたから、これだけが必要だとわかる。

 

これを如何にしてコピーし、SSHでは接続できないインスタンスの起動ディスクの/boot にコピーすればよいのか?

 

他のLinux インスタンスを起動させて、トラブル中のインスタンスのディスクをマウントして読み込み、書き込めればよいのだ。

 

そのためにはまず、トラブル中のインスタンスからディスクを接続解除する。

そして、Google に用意されている debug-instance を起動する。

そしてdebug-instance にトラブル中のディスクを接続マウントすれば良い。

または、「ディスクを新しいインスタンスで使用する」でもよいだろう。

 

GCP のWEBコンソール上で debug-instance にSSH接続するのだが、

ファイルの転送、アップロードができなかった。できたように見えるがどこを探しても見つからなかった。

そこで、旧サーバーにSSH接続ログインできるようにした後、SCPで目的の圧縮ファイル grub2.tar.gz をコピー移植することに成功した。

 

後はまた、この修復したディスクから新しいインスタンスを作成し、起動すると復活できた。

あらためてファイヤーウォール等を再設定し直す必要だある。

登録していた固定IPは、そのまま残っていたので、IPアドレスの変更はなかった。

 

ダウン時間は5時間ぐらいだった。

 

 

 

  • またまたこのサイトのSSL証明書が期限切れになった。 Kusanagi の自動更新ができていない。 それで手動であれこれしてみても、こんなエラーが出る。# kusanagi update cert C ...
  • Google の Indexing API を使うと、新しい投稿記事を瞬時にGoogleの検索エンジンに登録できる。 WordPress のプラグインとしてインデックスAPIが利用できる。使い方は英語 ...
  • Yoast SEO を停止して、Rank Math SEO プラグインを使ってみたらGoogle の検索結果に表示される記事抜粋スニペットの文字数が短過ぎに見えてびっくりした。#1 Yoast Alt ...
  • WP_CRON を停止して、Linux の crontab に移行する設定をこれまでに何度も試みたがうまくいかなかった。 毎日バックアップされるはずの、UpdraftPlus プラグインのクロンが動い ...
  • Kusanagi WordPress プラットフォームでは Fcache とBcache がある。 Fcache とはNginx ヱブサーバーのキャッシュ機能であり、Kusanagi の独自機能ではな ...
  • 目次 1 HTTPD アクセスログの日本語化 2 Logwatch も日本語化 HTTPD アクセスログの日本語化 Nginx,  Apache ヱブサーバーのアクセスログを見ると、日本語URLはエン ...
  • ヱブサイトの再構築中には、スタイルシート、style.css を頻繁に調整更新する。 CSSを追加、編集する度に再読み込みを繰り返して、変更の反映を確認していた。 これで編集者は反映を確認できるのだが ...
  • WordPressで使える頁カウンターをいくつか同時に使ってカウントの仕方の違いを比べてみた。WP-PostViews    長期常用中 Post Views Counter  新規インストール Go ...

タグクラウド

サーバー カテゴリ人気記事 Views most

Linux・WordPress・サーバー カテゴリ人気記事 月間

20190509

タグ関連記事

閲覧履歴

    //cookieが無い場合の処理
2019
GA-views: 3
20190509