Raspberry Pi 4にCentOS7をインストール&設定


ラズパイ4を購入したので、Raspbianではなく一般的なサーバーとしてよく使われるCentOSを入れてみたいと思います!!

ただし、実用的じゃないので自分はすぐにRaspbianに戻しました(笑)

参考にさせて頂いたサイト

Raspberry Pi 4 で CentOS 7 を動かす
CentOSにntpサーバを入れて、日本標準時刻に自動的に合わせるためのメモ
CentOS 7 NTP設定・・・ちょっと待て!?

Raspberry Pi Imagerの準備

こちらは、microSDのフォーマットやOSの書き込みなどを自動で行ってくれるソフトです!

Raspberry Pi Downloads - Software for the Raspberry Pi

ここから、任意のOSを選択してダウンロード&インストールをしましょう!
私は、microSDの書き込みをWindowsで行ました。

ディスクイメージのダウンロード

上記のサイトだと、CentOSをデフォルトでサポートしていないので、下記のリンクからラズパイ4用のCentOS7のディスクイメージをダウンロードしましょう。

ダウンロード

Raspberry Pi Imagerを使って、microSDに書き込む

ディスクイメージのダウンロードが終わったら、インストールしたRaspberry Pi Imagerを使って、microSDに書き込みます。

  • Operating System:ダウンロードしたディスクイメージ
  • SD Card:PCに挿している書き込みたいSDカード

2つ指定すると、「WRITE」が押せるようになるので押して書き込みましょう。

しばらく待って、この画面がでたら書き込みが完了!!

ラズパイに有線LANを挿して、SSHで接続する

書き込みが終了したら、書き込んだSDカードをラズパイに挿して起動しましょう!
起動したら、デフォルトの以下のユーザーでログインして、IPアドレスを確認します。

ユーザ名:root
パスワード:centos

ログインできたら、以下のコマンドを打って、IPアドレスを確認しましょう !

ip a | grep 192

そうすると、192から始まるIPアドレスが取得できます。

[root@localhost ~]# ip a | grep 192
    inet 192.168.0.2/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0

ここから分かるとおり、このラズパイのIPアドレスは「192.168.0.2」ということが分かりましたので、別のPC(今回はmac)からSSHでログインします。
(Windowsの方はTera TermというソフトをDLをしてそこからログインします。)

まずは、ターミナルで以下のコマンドをうち、ラズパイでログインした通りにここでもログインしましょう。

ssh root@調べたラズパイのIPアドレス

私の場合だと、以下のようなコマンドになります。

そしたら、このようになるのでyesと入力します。

The authenticity of host '192.168.0.2 (192.168.0.2)' can't be established.
ECDSA key fingerprint is SHA256:mOsYHnXBZPXZIAs0bzk7eOv3hZ4Rt2mJKfzlZiylR3o.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

次は、パスワードが求められるので「centos」と入力してEnterを押します。

Warning: Permanently added '192.168.0.2' (ECDSA) to the list of known hosts.
[email protected]'s password:

このような状態になれば、ログインは成功です!!

Last login: Tue Apr 21 17:23:37 2020 from 192.168.0.7
[root@localhost ~]#

ここまでをまとめると、このような感じになるはずです

rootのパスワードを変更する

初期状態だと、誰でもログインできてしまうので以下のコマンドを打って、任意のパスワードへ変更しましょう。

passwd root

すると、新しいパスワードの入力と確認が求められるので2回入力します。

「passwd: すべての認証トークンが正しく更新できました。」
と表示されたら完了です!!!

パーティションの拡張を行う

まず、以下のコマンドを打ってください。

df -h

そうするとこのような結果が表示されると思います。

[root@localhost ~]# df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root        1.4G  1.2G  211M   85% /
devtmpfs         1.9G     0  1.9G    0% /dev
tmpfs            2.0G     0  2.0G    0% /dev/shm
tmpfs            2.0G   17M  1.9G    1% /run
tmpfs            2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/mmcblk0p1   286M   52M  235M   18% /boot
tmpfs            391M     0  391M    0% /run/user/0

/def/rootを見てみると、microSDは32GBのものを使用しているのに、うまく使いきれていません…

なので、以下のコマンドを入力して拡張しましょう!

/usr/bin/rootfs-expand

そうすると、最後にDone.と表示されると成功です

なので、もう一度df -hと入力すると拡張されていることが分かります。

vimエディタのインストール

以下のコマンドを入力して、vimというエディタをインストールしましょう。

sudo yum install vim -y

NTPサーバーを入れて日本の標準時に合わせる

/etc/chrony.confを編集して、NTPサーバーの指定しましょう!
デフォルトでは以下のようになっているので

/etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

このserver から始まる行が、海外の時刻を提供しているサーバーらしいので、全部コメントアウトして、以下の行を追加します。

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
### ↓ここからコメントアウト
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
######## ↑ここまでコメントアウト

### ↓ここから追加
# 日本標準時を提供しているNTPサーバー(stratum 1)
server ntp.nict.jp iburst
# 上記サーバーと直接同期しているNTPサーバー(stratum 2)
server ntp.jst.mfeed.ad.jp iburst
####### ↑ここまで追加

今回は、時刻補正のためのNTPなので、以下の行を追加してサーバーとしては使わないようにする。

port 0

海外のNTPサーバーと大幅にずれていると設定出来ないらしいので、以下のコマンドで手動設定しましょう。

chronyc makestep

以下のコマンドを入力して、NTPサーバーの再起動と起動時に自動で実行するようにします。

systemctl restart chronyd
systemctl enable chronyd

dateコマンドを入力して見ます。

2020年  4月 23日 木曜日 16:23:00 UTC

JSTになってない!!!!

ちゃんとJSTになって時刻が日本時間になっているかたは、以上です、お疲れ様でした。

なので、timedatectlコマンド入力して見ます。

      Local time: 水 2020-04-22 16:23:51 UTC
  Universal time: 水 2020-04-22 16:23:51 UTC
        RTC time: n/a
       Time zone: UTC (UTC, +0000)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

!?!?!?!?
そもそも、タイムゾーンがUTCだったのでいくらやってもUTC時刻に補正されちゃうんですね….😭😭😭

なので、以下のコマンドでタイムゾーンを東京に変更して、もう一度NTPサーバーの再起動を行い、dateで時間を確認します。

timedatectl set-timezone Asia/Tokyo
systemctl restart chronyd
date

すると….

2020年  4月 23日 木曜日 01:24:14 JST

ちゃんとJSTの時刻が設定されました!!!!

ちなみに、ラズパイを再起動して確認してみても

[root@localhost ~]# date
2020年  4月 23日 木曜日 01:39:05 JST

うまく設定できてることが確認できました🎊🎊🎊