CentOS7が起動しなくなったけど復旧した

先日、自前のサービスを運用しているさくらのVPSでCentOS7が起動しなくなっていたが、無事に復旧できたので備忘録として残しておきたいと思う。

※もともと記事にする予定はなかったので、省略したり曖昧だったりな箇所もあります

 

経緯

ある日いつのもように運用中のサービスを利用しようとしたところ、HTTPサーバーが応答しなくなったことに気づく。慌ててSSHで接続を試みたもののSSHサーバーも応答しない状況だった。

さくらのコンソールからVNCコンソールでVPSに接続したところ、CUIが真っ黒のままでいくら入力しても何も出力してくれない。何もしてないのに壊れた!

強制再起動を掛けたところ、Booting from Hard Disk...までは出力されるが、その後はやはりいくら入力してもCUIは真っ黒のままになる。

へんじがない…。ただの しかばねのようだ…。

 

ここでいろんな可能性が過ぎったが、メールを漁ってみるとさくらインターネットさんからこんなお知らせが来ていた。

 

f:id:yossiejs:20190609165344p:plain


内容を確認してみると、見事に該当サーバーを利用していてタイミングも被ってたので、藁にも縋る思いでさくらさんに問い合わせをすることに。

 

ぼく「こないだの障害でデータ吹き飛んじゃったかもです!状況確認おねがいできますか!」

さくらさん「お知らせの通りサーバーは既に復旧していますし、VPSは自分で管理するものなので自分で確認してください。」

ぼく「わかりました!(そっか、そういうものなのね...('o';))」

 

という感じのやりとりを経て、まだこちらで何かできる余地があるという貴重な情報を得たので、さくらの担当者さんが案内してくれた情報も参考に、復旧を試みることに。

 

復旧までの流れ

シングルユーザーモード

GRUBの出力すらないためレスキューモードへ

 

レスキューモード

  1. 公式から拾ったISOからブート→VNCコンソールを開く
  2. Troubleshooting→Rescure CentOS system
  3. Continue
  4. chroot /mnt/sysimageでコケる
  5. ls /mnt/sysimageしてみると空だし、前のほうでYou don't have any Linux partitionsと書いてあることに気づく
  6. めのまえが まっくらに なった!

 

この時点ではブートローダGRUBがおかしくなった可能性もあると思ったので

# mount /dev/vda1 /mnt/devvda1

して、grub.cfgのserialなんちゃらの行を消してみる→grub2-mkconfigで作り直してみる→前回のカーネルアップデート時のcfgに戻してみる…など試してみたものの、GRUBの出力を得られることはあったがOSの起動には至らず。

 

結局OSが入っているパーティションのどこかで問題が起きている可能性があると思ったので、パーティションの修復を試みることに。

 

パーティション修復

1.パーティションを確認する

# fdisk -l

(略)

   Device Boot      Start         End      Blocks   Id  System

/dev/vda1   *        2048     1026047      512000   83  Linux

/dev/vda2         1026048   419430399   209202176   8e  Linux LVM

(略)

2.LVMパーティションを利用可能にする(Rescure modeでは無効になっている)

LV Statusを確認

# lvdisplay | grep "Stat"

  LV Status              NOT available

  LV Status              NOT available

  LV Status              NOT available

Volume groupを有効化

# vgchange -a y

LV Statusを再度確認

# lvdisplay | grep "Stat"

  LV Status              available

  LV Status              available

  LV Status              available

# lvscan

  ACTIVE            '/dev/centos_*/swap' [<2.02 GiB] inherit

  ACTIVE            '/dev/centos_*/home' [147.49 GiB] inherit

  ACTIVE            '/dev/centos_*/root' [50.00 GiB] inherit

3.OSが入っているパーティションの修復を試みる

ダメもとでマウントしてみる

# mount /dev/centos_*/root /mnt/root

(具体的には忘れたけど失敗した旨のメッセージが返ってきた)

チェックを走らせてみる(xfs_checkなんてなかった)

# xfs_ncheck /dev/centos_*/root

ERROR: The filesystem has valuable metadata changes in a log which needs to

be replayed.  Mount the filesystem to replay the log, and unmount it before

re-running xfs_ncheck.  If you are unable to mount the filesystem, then use

the xfs_repair -L option to destroy the log and attempt a repair.

Note that destroying the log may cause corruption -- please attempt a mount

of the filesystem before doing this.

must run blockget -n first

修復してみる

上記のエラー文言にも書いてあるように、-Lオプションは破損を引き起こす可能性があるようなので、一般的にはdd等でバックアップを取ってからやるほうが良いと思う(やるとは言っていない)

# xfs_repair -L /dev/centos_*/root

Phase 1 - find and verify superblock...

(中略)

done 

 

いい意味で終わった・・?ようなので、これでレスキューモードを終えてVPSを起動をしてみたところ・・・

f:id:yossiejs:20190609164929p:plain

無事にCentOS7が起動した😭🙏🙇‍♂️🍻🎉

 

MacBook AirのWindows 8.1をWindows 10にアップグレードしてみた

f:id:yossiejs:20160520005619j:plain

 

表題の通りやってみたので、今後のためにメモを残しておきます。普段使ってるアプリケーションを簡単に使ってみましたが、いまのところ問題ない感じです。

追記(2016/05/20 0:57): Bootcampも生きています。

 

環境

PC: MacBook Air (13-inch, Early 2014)

https://support.apple.com/kb/SP700?locale=ja_JP&viewlocale=ja_JP

OS: Windows 8.1 (x64)

 

記録

18:58 Windows UpdateにてWindows 10をダウンロード開始(3GBくらいあった)

19:33 「インストールの準備をしています...」でしばらく止まってるので仮眠

19:55 起きたら「それでは、アップグレードを開始します」のウインドウが出ていたので「同意する」→「今すぐアップグレードを開始」と進める

20:04 再起動が掛かる。「Windowsをアップグレードしています。」の黒い画面になる

20:15 再起動が掛かる

20:19 50%到達

20:29 再起動が掛かる

20:30 75%到達

20:33 「Windows 10にようこそ!」の青画面が出る。「簡単設定」→「今は実行しない」→「次へ」と進める

20:36 「こんにちは」の画面が出る

20:38 Windows 10のデスクトップが表示される

Netbeansアップデート後のエラー対処法

Netbeans8.0から8.0.2にアップデートしたところ、IDE起動時に下記エラーが毎回出るようになったため対処方法をメモします。所感ですが、みんななる訳ではなく再現性はさほど高くないと思います。

 

エラー文言(長文)

警告 - 一部のモジュールをインストールできませんでした: org.eclipse.equinox.common - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-equinox-common.jar: Cannot start org.eclipse.equinox.common state remains INSTALLED after start() org.eclipse.core.runtime.compatibility.auth - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-core-runtime-compatibility-auth.jar: Cannot start org.eclipse.core.runtime.compatibility.auth state remains INSTALLED after start() org.eclipse.core.jobs - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-core-jobs.jar: Cannot start org.eclipse.core.jobs state remains INSTALLED after start() org.eclipse.equinox.registry - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-equinox-registry.jar: Cannot start org.eclipse.equinox.registry state remains INSTALLED after start() org.eclipse.equinox.app - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-equinox-app.jar: Cannot start org.eclipse.equinox.app state remains INSTALLED after start() org.eclipse.equinox.preferences - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-equinox-preferences.jar: Cannot start org.eclipse.equinox.preferences state remains INSTALLED after start() org.eclipse.core.contenttype - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-core-contenttype.jar: Cannot start org.eclipse.core.contenttype state remains INSTALLED after start() org.eclipse.core.runtime - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-core-runtime.jar: Cannot start org.eclipse.core.runtime state remains INSTALLED after start() org.eclipse.equinox.security - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-equinox-security.jar: Cannot start org.eclipse.equinox.security state remains INSTALLED after start() org.eclipse.mylyn.wikitext.core - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-mylyn-wikitext-core.jar: Cannot start org.eclipse.mylyn.wikitext.core state remains INSTALLED after start() org.eclipse.mylyn.wikitext.textile.core - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-mylyn-wikitext-textile-core.jar: Cannot start org.eclipse.mylyn.wikitext.textile.core state remains INSTALLED after start() org.eclipse.mylyn.wikitext.confluence.core - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-mylyn-wikitext-confluence-core.jar: Cannot start org.eclipse.mylyn.wikitext.confluence.core state remains INSTALLED after start() org.eclipse.core.net - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-core-net.jar: Cannot start org.eclipse.core.net state remains INSTALLED after start() org.eclipse.mylyn.commons.core - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-mylyn-commons-core.jar: Cannot start org.eclipse.mylyn.commons.core state remains INSTALLED after start() org.eclipse.mylyn.commons.repositories.core - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-mylyn-commons-repositories-core.jar: Cannot start org.eclipse.mylyn.commons.repositories.core state remains INSTALLED after start() org.eclipse.mylyn.commons.net - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-mylyn-commons-net.jar: Cannot start org.eclipse.mylyn.commons.net state remains INSTALLED after start() org.eclipse.mylyn.tasks.core - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-mylyn-tasks-core.jar: Cannot start org.eclipse.mylyn.tasks.core state remains INSTALLED after start() org.eclipse.mylyn.commons.xmlrpc - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-mylyn-commons-xmlrpc.jar: Cannot start org.eclipse.mylyn.commons.xmlrpc state remains INSTALLED after start() org.eclipse.mylyn.bugzilla.core - org.netbeans.InvalidException: Netigso: C:\Program Files\NetBeans 8.0\ide\modules\org-eclipse-mylyn-bugzilla-core.jar: Cannot start org.eclipse.mylyn.bugzilla.core state remains INSTALLED after start()

 

対処方法

1.userdir,cachedirを削除

IDE終了->対象ディレクトリ名を適当に変更->IDE起動します。Windows8.1の場合、対象ディレクトリは下記となります。

 

userdir

C:\Users\username\AppData\Roaming\NetBeans\8.0

cachedir

C:\Users\username\AppData\Local\NetBeans\Cache\8.0

参考URL

https://netbeans.org/bugzilla/show_bug.cgi?id=251120

http://stackoverflow.com/questions/16576754/netbeans-7-3-error-in-startup

http://wiki.netbeans.org/FaqWhatIsUserdir

 

すると、先ほどのエラーは出ないものの、プラグインや設定がなくなりバージョンも8.0に戻りました。これは同様の件で

 

http://stackoverflow.com/questions/16576754/netbeans-7-3-error-in-startup

But be careful it will erase all your IDE settings

 

とも書いてあり、userdirを消すとそうなるっぽいですね。今回は使うプラグインの関係で8.0.2にする必要があるため、作業前の状態に戻せることを確認して最後までやってみることにしました。

 

2.アップデートしなおす

ツール>プラグイン」で更新と再起動を何回か繰り返し、ひととおりアップデートします。(15分くらいかかりました)

アップデート後、バージョンが8.0.2になりIDE起動時のエラーがでないことを確認します。

 

3.プラグイン入れなおしたり設定しなおしたり

プラグイン入れなおしたり設定しなおしたり。ぼくは覚えてる範囲でやって、あとは気づいた時にやることにしました。

 

4.完了

これで完了。今回は原因を深追いしても良いことなさそうですし、一応改善したのでこれで良しとしておきます。

 

環境

Windows8.1

Netbeans8.0.2