さくらのVPSでやらかしてから復旧させたはなし

# やらかした

おそらきれい

## 経緯

さくらのVPSでCentos7でサービス公開中。
メンテナンスのために再起動していろいろいじってた。
よくよく見たらSELINUXがEnforcedになっててブートに失敗してるサービスが何個か。

## やらかし

よし。パパ`vi /etc/selinux/config`して`disabled`にしちゃうぞ。

```sh
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
```

↓↓↓↓↓

> これはやらかしてる例です。
これをコピペしたらだめ。ぜったい。
↓

```sh
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=disabled
```
> ↑これはやらかしてる例です。
これをコピペしたらだめ。ぜったい。

よしリブートだ。



### 発覚

```sh
Unable to load SELinux Policy. Machine is in enforcing mode. Halting now.
Kernel panic - not syncing: Attempted to kill init!
```

あばばばばばばばば

## 復旧目指して七転八倒

さくらのVPSにはコンソールが付いてるんだからブート時にシングルユーザーモードに入れば楽勝楽勝、と思いつつサーバー強制停止→起動。

起動したら即VNCコンソールに接続･･･

するとすでにGRUBをすっとばしてブートプロセス中でまたカーネルパニック。
![download.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199750/cb6ff5cb-fefb-f900-b6ac-5a2c1e613f67.jpeg)

### VNCコンソールがだめならシリアルコンソールだ

サーバーを強制停止→起動
起動したら即シリアルコンソールに接続･･･

するとすでにGRUBをすっとばしてブートプロセス中でまたカーネルパニック。

![download.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199750/0fb7e1be-3c47-bcfe-c2c5-b29b28c921e7.jpeg)


### VPSの起動が早すぎてカーネルパニックが迂回できないの巻

あれ?これ詰んだんじゃない?

### たすけてさくらえもーん

さくらのサポートデスクにお願いするしかない!
[お問い合わせ前にご確認ください – さくらのサポート情報](https://help.sakura.ad.jp/206052622/)

電話窓口にれんらくれんらく。

↓
｢お電話ありがとうございます。**本日は休業日のためお繋ぎできません**｣

![3e7249a24bdde29ffcddd2048c4b129f_600.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199750/d6f5ade0-cd52-469a-2a5a-114fd8fd8329.jpeg)


### まずは落ち着いてググろう。

- [忘れるためのメモ: さくらVPSのCentos7が起動しなくなった。。。](https://wasure-memo.h-tsk.com/2015/05/vpscentos7.html)
- [さくらのVPS起動しない\!→直したったｗｗｗ](http://namahage.dip.jp/blog/4637)
- [さくらVPSのUbuntuがリブート後に起動しなくなった \- まちゅダイアリー\(2012\-06\-09\)](https://www.machu.jp/diary/20120609.html)

ほう、カスタムのOSインストールを選択して起動時のプロンプトで`Troubleshooting`を選ぶと既存のボリュームマウントして編集できるのか。
これだ。

### カスタムOSインストールから復旧

>　さくらVPSのコントロールパネル
　　→OSインストール
　　→カスタムOSインストール
　　→CentOS7を選択
　　　→内容を確認するを押す
　　→インストールを実行するを押す
　　　　※バックアップを取ってから作業してね　的なメッセージがでるが無視。。。
　　→準備ができるとVNCコンソールを開くボタンが表示される。
>　ここからVNCコンソールの作業
　トラブルシューティングを選択
　→レスキューを選択
[忘れるためのメモ: さくらVPSのCentos7が起動しなくなった。。。](https://wasure-memo.h-tsk.com/2015/05/vpscentos7.html)

この通りにすすめてVNCコンソールを開くと
･･･すでにvisual installerのブートプロセス。

![3e7249a24bdde29ffcddd2048c4b129f_600.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199750/d6f5ade0-cd52-469a-2a5a-114fd8fd8329.jpeg)

詰んだ。


## 復旧編

結局の所ブートが早すぎて復旧メニューまでたどり着けないのが問題なわけで。
ただ、Linuxのインストーラーの自動起動って60秒後だった気がしたのにカスタムOSインストーラーのブートではそこを華麗にスキップされてる気がする。

ならISOイメージインストールで適当なインストーラーをアップロードして読み込ませれば行ける。
というかlivecdでブートしたらいける気がする。
いけるきがする!

### livecdをCentos公式からダウンロード

[Index of /centos/7/isos/x86\_64](https://buildlogs.centos.org/centos/7/isos/x86_64/) から`	CentOS-7-livecd-x86_64.iso`をダウンロード。

さくらのVPSコンソールからISOイメージインストールを選んで｢SFTPアカウントを発行する｣して`iso`フォルダにダウンロードしたファイルをアップロード。

アップロードが完了するとさくらのVPSコンソールにイメージが表示されるのでそこから起動。

### livecdでブート

```sh
Failed to access perfctr msr (msr c1 is 0)
```
と表示されたきりうんともすんとも。

### ならば普通のインストーラならどうだ。

[Index of /pub/linux/centos/7/isos/x86\_64](http://ftp.iij.ad.jp/pub/linux/centos/7/isos/x86_64/)から
`CentOS-7-x86_64-Minimal-1908.iso`をダウンロード。

あとはlivecdと同じようにファイルをアップロードして起動

![スクリーンショット (18).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199750/5f5dc5b3-b74e-9484-3fb5-cfa09f60347b.png)

![仙道彰 \- Google 検索](https://festy.jp/wp-content/uploads/festy/2015/12/30/10/00/26/389/6.jpg)

![スクリーンショット (19).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199750/bc56e81b-7eb5-2366-83e0-6b2e1dff89b3.png)

キマシタワー

`Rescure a CentOS system` を実行

### Rescure a CentOS system からの操作

[Linuxサーバのレスキューモードを用いたfsck実施手順 \| さくらのクラウド ドキュメント](https://manual.sakura.ad.jp/cloud/server/os-rescue.html)

```
The rescue environment will now attempt to find your Linux installation 
and mount it under the directory : /mnt/sysimage . You can then make any changes 
required to your system. Choose '1' to proceed with this step.
You can choose to mount your file systems read-only instead of read-write by choosing '2'
if for some reason this process does not work choose '3' to skip directly to a shell.

1) Continue
2) Read-only mount
3) Skip to shell
4) Quit (Reboot)

Please make a selection from the above:
```

で1を選ぶと `/mnt/sysimage`にもとのファイルシステムがマウントされているので間違えた`/etc/selinux/config`を修正する。

```sh
# vi /mnt/sysimage/etc/selinux/config
```

```sh
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.

SELINUX=disabled



# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.

SELINUXTYPE=targeted

```

で、`exit`でシェルを抜けるとシャットダウンされるのでコントロールパネルから起動。

```
CentOS Linux 7 (Core)
Kernel 3.10.0-xxxxxx

hostname login:
```

キマシタワー

## というか

疲れ果てた。
設定ミスってたらデフォルトで起動するぐらいの柔軟性をLinuxは持てないのか(逆ギレ



##