Raspberry pi 4 のSDカードがぶっ壊れて起動できなくなった時の復帰手順（備忘録）

つまるところはタイトルの通りです。
具体的に書くと、

**ラズパイ4を電源ぶつ切りしてSDカードのbootドライブが破損した時とかに、初期セットアップ+αをやり直そう！**

というもの。
全部の詳細を書くと長いので、要約しつつ箇条書きで書いていきます。

## 1. SDカードをぶっ壊す 
元気に動いていたラズパイの電源を無情にもぶつ切ろう！
<font color=Red>**（*良い子はマネしないでね）**</font>

## 2. SDカードに Raspberry Pi OS をフォーマット

>Raspbian はこの間 Raspberry Pi OS に名称チェンジしたらしいですよ

まずは、自前のPCにSDカードぶっ刺して、Raspberry Pi ImagerでSDカードの中身をEraser。

次に、SDカードにRaspberry Pi OSをフォーマット。（大体30分～1時間）（2回目以降キャッシュが残ってれば5分くらいで終わる）

これで準備終わり。Raspberry Pi Imagerって素敵ね。

>ちなみにこの後のHDMI接続で上手く画面に表示されないのが怖いので、SDカードのbootドライブ内にあるconfig.txtのhdmi_force_hotplug=1のコメントアウトを外して保存しておくと〇。

## 3. いざ起動へ
<font color=mazenta>**---最低限準備するもの---**</font>
1. ラズパイ本体
2. Type-Cケーブル
3. microHDMI-HDMIケーブル
4. 有線マウス
5. ディスプレイ

準備は整ったか？？
全部接続したか？？？
ならば電源ONだ！！！！！

この時点で、ちゃんとSDカードがフォーマットされていないと、俺たちのホーム画面（黄昏の山々?みたいなやつ）が表示されないので、ダメだったら最初からやり直し or そもそも原因がSDカードではなく基盤の方にあるとか。。。（基盤死んでたら復帰は難しそう）

その後は促されるままにセットアップして完成！って感じかな。
ちなみにこの時有線キーボードがあるとWi-fiの設定もここで済ませられて便利っちゃ便利。

>個人的な話になるけど、有線キーボードと有線マウスが無かったので、とりあえず必須だった有線マウス（500円くらいの安いやつ）を買ったり、自分用のディスプレイが無かったので、家のテレビに直接つないで表示させてみたりと、無いものだらけでも意外となんとかなった。（上記のhdmi_force_hotplugはテレビとかのPC用ディスプレイじゃなくても強制的に出力させる設定でした。）

## 4. SSHとVNCを有効化
一通りセットアップが終わったら、SSHとVNCを有効化します。

左上のラズベリーマーク→Preferences→Raspberry Pi Configrations→interface→SSHとVNCを有効→OK

ここまで出来たらあとはPCから接続してあれこれできるので一安心！
忘れないようにしっかりと<font color=Red>**シャットダウン**</font>をして終了しようね！！

## 5. アップデート
```:pi@raspberrypi~:
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
$ sudo rpi-update

# 以上が問題なく行われれば再起動
$ sudo shutdown -r now
```

## 6. セキュリティ強化等
```:rootのパスワード設定:
$ sudo passwd root
```

```:新規ユーザー作成:
$ sudo adduser [新規ユーザー名]

# 新規ユーザーにsudo権限を付与
$ sudo gpasswd -a [新規ユーザー名] sudo
```

```:IPアドレスの固定化:
$ sudo nano /etc/dhcpcd.conf

# 以下を最後に追加
interface wlan0
static ip_address=[固定化したいIPアドレス]
static routers=[ルーターのIPアドレス]
static domain_name_servers=[DHCPサーバーのIPアドレス]

# 再起動
```

左上のラズベリーマーク→Preference→Raspberry Pi Preference→現在のユーザーとしてログインを無効→OK

```:再起動:
$ sudo shutdown -r now
```

```:新規ユーザーでsshログイン:
C:> ssh [新規ユーザー名]@raspberrypi
```

```:piユーザーを消去:
$ sudo userdel -r pi
# userdel: pi のメールスプール (/var/mail/pi) がありません　が出ても問題はない。
```

```:ufwのインストール:
$ sudo apt-get install ufw
```

```:ポートの開放:
$ sudo ufw allow 22
$ sudo ufw allow 80
$ sudo ufw allow 544
$ sudo ufw allow 5900
$ sudo ufw allow 5901

# 上からssh,http,https,vnc,vnc(仮)

$ sudo ufw enable
# ファイアーウォールを有効化

$ sudo ufw status
# 開放ポート確認
```

```:sshのrootログイン無効化:
$ sudo nano /etc/ssh/sshd_config

# #PermitRootLogin prohibit-password
# ↓
# PermitRootLogin no
# へ変更
```

```:読み書き権限の許可:
$ sudo chmod 777 /
```

## 7. Apache2の導入
```:Apache2のインストール:
$ sudo apt-get install apache2
```

```:index.htmlの編集:
$ sudo nano /var/www/html/index.html
```

## 8. Python のデフォルトバージョン切り替え

```:Pythonのバージョン管理:
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 2
$ sudo update-alternatives --list python
$ sudo update-alternatives --config python
```

## 9. Djangoの導入

```:Djangoのインストール:
$ pip install django
```
プロジェクトを作成したいディレクトリまで移動する。
移動したら、

```:~mydirectory:
$ python -m django startproject [任意の名前]
```