自主的20%るぅる

各々が自主的に好き勝手書くゆるふわ会社ブログ

Raspberry Pi 3 Model BにインストールしたCentOS7を初期設定する話

OSのセットアップだよ〜

さてさて、前回はRaspberry Pi 3 Model BでとりあえずCentOS7が起動したっぽい所まで確認できました。

というわけで、今回はその続きをやることにしませぅ。

そうです!CentOS7の初期設定です。ここからはRaspberry Pi特有のネタもありつつ、そうじゃないネタもありつつでお届けする事になります(`・ω・´)

まずは起動!

早速セットアップ!……と行きたいところですが、まず起動しましょう。

起動するのは非常に簡単で、

  • OS書き込み済みのSDカードを所定の位置にセットする
  • 有線LAN、USBキーボード、HDMIディスプレイを接続する
  • 電源を繋ぎ、ディスプレイに流れるアレコレ眺める
  • 起動したら、ユーザ名が「root」、パスワードが「centos」でログイン

って手順を着実に実行するだけでOK。

ちゃんともろもろ環境を整えてさえいれば、電源を入れてから5秒程度で起動する感じですね。遅くても10秒はかからないかなーって印象。

ipアドレスを知ろう!

で、ログインしたらrootなコマンドプロンプトが使えるようになっているので、下記のコマンドでIPアドレスをチェックします。

[root@centos-rpi3 ~]# ip addr

このコマンドを実行すると、下記みたいな表示が現れてラズパイにアサインされたIPアドレス1)DHCPでIPアドレスを取得しているケースが大半なので、こうやって今のアドレスをチェックしているってイメージっすを知ることができます。赤枠の所ですね。

DSC_1513

私は秘密主義者なので、内部ネットワークに関する部分はボカしてます。

そのため、ちょっと分かりにくくはあるんですが、「eth0」の「inet」ってところの右隣にIPv4なIPアドレスが表示されているはずです。

これをコピっておいてください。

ここからのお約束だよ(`・ω・´)

とはいえ、このまま進むと説明がアレになってしまうので、RFC 6890 – Special-Purpose IP Address Registries2)と、ついでにRFC 5737 – IPv4 Address Blocks Reserved for Documentation(ついでのついでに、RFC 3849 – IPv6 Address Prefix Reserved for Documentationに基づいて、下記のIPアドレス等を使用したものとしてアレします。

用途 アドレス等 備考
ネットワークアドレス 192.0.2.0 TEST-NET-1
サブネットマスク 255.255.255.0 /24
ブロードキャスト
アドレス
192.0.2.255  
ルータ 192.0.2.1  
内部サーバ
(DNS/DHCP/NTP等)
192.0.2.10
192.0.2.11
 
Raspberry Pi 3
Model B
192.0.2.100  
自端末 192.0.2.200  

SSHでログインしよう!

IPアドレスが分かったので、手元のPCからログインしましょう。

ターミナルエミュレータ3)Macなら「ターミナル」、Winなら「Tera Term」とかを起動して、ラズパイにアサインされたIPアドレスへrootとして接続します。

例えば、手元のMacからやると下記のような感じになります。

[foobar@Mac]$ ssh root@192.0.2.100
The authenticity of host '192.0.2.100 (192.0.2.100)' can't be established.
ECDSA key fingerprint is SHA256:{フィンガープリント(省略)}
Are you sure you want to continue connecting (yes/no)? (「yes」と入力し、エンター)
Warning: Permanently added '192.0.2.100' (ECDSA) to the list of known hosts.
root@192.0.2.100's password:(「centos」と入力し、エンター)
Last login: Wed Aug  3 HH:mm:ss YYYY
[root@centos-rpi3 ~]#

途中で2回ほどキーボード入力が必要4)「yes」って入力する所は初回だけでOKですなですね。

これで、手元のPCからラズパイちゃんに接続できるようになったので、本格的な設定をおこないましょう。

rootのパスワード変更!

なにはともあれ、rootのパスワードをデフォルトから変更しましょう。

特に変わったこともなく、passwdコマンドを使って変更すればOKです。

[root@centos-rpi3 ~]# passwd
ユーザー root のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
[root@centos-rpi3 ~]#

このパスワードは忘れないようにしましょうね(はぁと

CentOS7でネットワーク周りを手動設定する

DHCP経由じゃなくてStaticにIPアドレスをアサインするようにしましょう。……いちいち、ディスプレイ繋げて「ip addr」とかタイプしたくないので!

CentOS7ではネットワーク周りはNetworkManagerで管理されています。ので、CentOS6までとはちょっと操作が異なるっぽいですね。

やり方はいろいろある5)ちょっとでもグラフィカル(TUI)にやりたい人は「nmtui」でググると幸せになれますんですけど、CLIでやるのがお好きなので「nmcli」コマンドを使ってみましょう。

今の設定はどうなってる?

まずは現行の設定がどうなってるのかを見てみませぅ。

まずは、ラズパイのCentOSが認識しているデバイスの一覧を見てみましょう。

[root@centos-rpi3 ~]# nmcli device
デバイス  タイプ    状態      接続
eth0      ethernet  接続済み  eth0
lo        loopback  管理無し  --

今回は、「eth0」を使うのでそのデバイスがどういう設定になっているかを見てみます。

[root@centos-rpi3 ~]# nmcli connection show eth0
connection.id:                          eth0
(中略)
connection.autoconnect:                 yes
ipv4.method:                            auto
ipv4.dns:
(中略)
ipv4.addresses:
ipv4.gateway:                           --
ipv4.routes:
(中略)

関係ありそうなところだけ抜粋するとこんな感じですね。

実際に設定してみる

DHCP用の設定になっているので、これらを変更していきます。

下記のコマンドで、固定のIPアドレスとルータ(ゲートウェイ)のアドレスを設定できました。

[root@centos-rpi3 ~]# nmcli connection modify eth0 ipv4.method manual ipv4.addresses "192.0.2.100/24" ipv4.gateway "192.0.2.1"

続いて、ネームサーバもセットしましょう。

[root@centos-rpi3 ~]# nmcli connection modify eth0 ipv4.dns "192.0.2.10 192.0.2.11"

これで最低限の設定はできたので、NICを再起動して設定を反映させてみます。

[root@centos-rpi3 ~]# nmcli connection down eth0 && nmcli connection up eth0

ターミナルエミュレータから実行すると、SSHの接続が切れちゃうので再接続します。

[Mac]$ ssh root@192.0.2.100
ECDSA key fingerprint is SHA256:{フィンガープリント(省略)}
Are you sure you want to continue connecting (yes/no)? (「yes」と入力し、エンター)
Warning: Permanently added '192.0.2.100' (ECDSA) to the list of known hosts.
root@192.0.2.100's password:(「centos」と入力し、エンター)
Last login: Wed Aug  3 HH:mm:ss YYYY
[root@centos-rpi3 ~]#

ちゃんと設定できていれば、普通に再接続できますね〜。これからはIPアドレスが固定になっているので、再起動をしても悩むことはなくなりますね。

疎通をテストする

今やった設定で支障がないか、簡単にテストしてみましょう。

まずは内部ネットワーク向けの疎通テスト。ルータにpingを打ってみます。

[root@centos-rpi3 ~]# ping -c 4 192.0.2.1
PING 192.0.2.1 (192.0.2.1) 56(84) bytes of data.
64 bytes from 192.0.2.1: icmp_seq=1 ttl=64 time=1.18 ms
64 bytes from 192.0.2.1: icmp_seq=2 ttl=64 time=0.568 ms
64 bytes from 192.0.2.1: icmp_seq=3 ttl=64 time=0.550 ms
64 bytes from 192.0.2.1: icmp_seq=4 ttl=64 time=0.519 ms

--- 192.0.2.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.519/0.705/1.184/0.277 ms

大丈夫そうですね(`・ω・´)b

続いてインタネット向けの疎通テスト。どこでもいいんですけど、今回は自社のWebサーバにpingを打ってみます。

[root@centos-rpi3 ~]# ping -c 4 agent-grow.com
PING agent-grow.com (163.44.168.161) 56(84) bytes of data.
64 bytes from v163-44-168-161.a065.g.tyo1.static.cnode.io (163.44.168.161): icmp_seq=1 ttl=47 time=15.0 ms
64 bytes from v163-44-168-161.a065.g.tyo1.static.cnode.io (163.44.168.161): icmp_seq=2 ttl=47 time=14.3 ms
64 bytes from v163-44-168-161.a065.g.tyo1.static.cnode.io (163.44.168.161): icmp_seq=3 ttl=47 time=14.0 ms
64 bytes from v163-44-168-161.a065.g.tyo1.static.cnode.io (163.44.168.161): icmp_seq=4 ttl=47 time=14.0 ms

--- agent-grow.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 14.056/14.368/15.022/0.400 ms

名前解決も疎通も大丈夫そうですね(`・ω・´)b

アップデートを適用する

ネットワーク周りも落ち着いたところで、各種アップデートを適用しておきましょう!

ファームウェアアップデート

RASPBIANだったら、専用のファームウェアアップデートコマンド「rpi-update」が最初から入ってます。

これを使えば良いのですが……。CentOSには入ってない!……ので、Hexxeh/rpi-updateにアクセスしましょう。

ここに書いてある説明を読みつつ、rpi-updateをインストールします。

まずはインストール。

[root@centos-rpi3 ~]# sudo curl -L --output /usr/bin/rpi-update https://raw.githubusercontent.com/Hexxeh/rpi-update/master/rpi-update && sudo chmod +x /usr/bin/rpi-update
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12022  100 12022    0     0   9833      0  0:00:01  0:00:01 --:--:--  9846

そして、アップデートの適用。

[root@centos-rpi3 ~]# sudo rpi-update
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
 *** Performing self-update
 *** Relaunching after update
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
 *** We're running for the first time
 *** Backing up files (this will take a few minutes)
 *** Backing up firmware
 *** Backing up modules 4.1.19-v7
This update bumps to rpi-4.4.y linux tree
Be aware there could be compatibility issues with some drivers
Discussion here:
https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=144087
##############################################################
 *** Downloading specific firmware revision (this will take a few minutes)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   168    0   168    0     0    107      0 --:--:--  0:00:01 --:--:--   107
100 51.1M  100 51.1M    0     0  1652k      0  0:00:31  0:00:31 --:--:-- 2198k
 *** Updating firmware
 *** Updating kernel modules
 *** depmod 4.4.16-v7+
 *** depmod 4.4.16+
 *** Updating VideoCore libraries
 *** Using HardFP libraries
 *** Updating SDK
 *** Running ldconfig
 *** Storing current firmware revision
 *** Deleting downloaded files
 *** Syncing changes to disk
 *** If no errors appeared, your firmware was successfully updated to e7178c06ac5b527085ceb380aa56f1ed52558ea0
 *** A reboot is needed to activate the new firmware
[root@centos-rpi3 ~]#

コレで適用できたはずなので、ラズパイちゃんを再起動します。

[root@centos-rpi3 ~]# shutdown -r now

念のため10秒ほど待ってみた後、SSHで再接続します。ここでちゃんとログインできたらアップデート成功ですね!

[Mac]$ ssh root@192.0.2.100
root@192.0.2.100's password:(「centos」と入力し、エンター)
Last login: Wed Aug  3 HH:mm:ss YYYY
[root@centos-rpi3 ~]#

OSのアップデート

続いてOSのアップデートを適用しましょう。「yum update」コマンドですね!

[root@centos-rpi3 ~]# yum update
読み込んだプラグイン:fastestmirror
base                                                                                                                           | 3.6 kB  00:00:00
extras                                                                                                                         | 2.9 kB  00:00:00
updates                                                                                                                        | 2.9 kB  00:00:00
(1/4): extras/7/armhfp/primary_db                                                                                              |  14 kB  00:00:01
(2/4): base/7/armhfp/group_gz                                                                                                  | 154 kB  00:00:02
(3/4): updates/7/armhfp/primary_db                                                                                             | 828 kB  00:00:02
(4/4): base/7/armhfp/primary_db                                                                                                | 2.6 MB  00:00:04
Determining fastest mirrors
依存性の解決をしています
--> トランザクションの確認を実行しています。
(中略)
--> 依存性解決を終了しました。

依存性を解決しました

======================================================================================================================================================
 Package                                      アーキテクチャー             バージョン                              リポジトリー                  容量
======================================================================================================================================================
更新します:
(中略)

トランザクションの要約
======================================================================================================================================================
更新  nn パッケージ

総ダウンロード容量: nn M
Is this ok [y/d/N]:(ここで「y」と入力し、エンター)
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
警告: /var/cache/yum/armhfp/7/updates/packages/NetworkManager-libnm-1.0.6-30.el7.armv7hl.rpm: ヘッダー V4 RSA/SHA1 Signature、鍵 ID 62505fe6: NOKEYTA
NetworkManager-libnm-1.0.6-30.el7.armv7hl.rpm の公開鍵がインストールされていません
(中略)
------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                  nn MB/s |  nn MB  nn:nn:n
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 から鍵を取得中です。
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-userland-release-7-2.1511.el7.centos.0.4.armv7hl (@centos-base_rbf)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
上記の処理を行います。よろしいでしょうか? [y/N](ここで「y」と入力し、エンター)
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-AltArch-Arm32 から鍵を取得中です。
Importing GPG key 0x62505FE6:
 Userid     : "CentOS AltArch SIG - Arm32 (https://wiki.centos.org/SpecialInterestGroup/AltArch/Arm32) <security@centos.org>"
 Fingerprint: 4d9e 39f1 499c a21d d289 77f8 cafe f11b 6250 5fe6
 Package    : centos-userland-release-7-2.1511.el7.centos.0.4.armv7hl (@centos-base_rbf)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-AltArch-Arm32
上記の処理を行います。よろしいでしょうか? [y/N](ここで「y」と入力し、エンター)
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
(中略)

完了しました!
[root@centos-rpi3 ~]#

お手軽ですね(`・ω・´)b

ルートパーティションの拡張

最後に、ルートパーティションを拡張します。

デフォルトでは、SDカードの容量すべてを使ってはいません。手元の環境だと下記のようになっていました。

[root@centos-rpi3 boot]# df -aH
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root        2.1G  1.1G  871M   55% /
devtmpfs         481M     0  481M    0% /dev
sysfs               0     0     0     - /sys
proc                0     0     0     - /proc
tmpfs            486M     0  486M    0% /dev/shm
devpts              0     0     0     - /dev/pts
tmpfs            486M   13M  473M    3% /run
tmpfs            486M     0  486M    0% /sys/fs/cgroup
cgroup              0     0     0     - /sys/fs/cgroup/systemd
cgroup              0     0     0     - /sys/fs/cgroup/net_cls
cgroup              0     0     0     - /sys/fs/cgroup/cpu,cpuacct
cgroup              0     0     0     - /sys/fs/cgroup/freezer
cgroup              0     0     0     - /sys/fs/cgroup/devices
cgroup              0     0     0     - /sys/fs/cgroup/memory
cgroup              0     0     0     - /sys/fs/cgroup/blkio
systemd-1           0     0     0     - /proc/sys/fs/binfmt_misc
debugfs             0     0     0     - /sys/kernel/debug
mqueue              0     0     0     - /dev/mqueue
configfs            0     0     0     - /sys/kernel/config
/dev/mmcblk0p1   315M   75M  240M   24% /boot
tmpfs             98M     0   98M    0% /run/user/0

なので、拡張したいのですが……。どうやればいいんでせぅ(´・ω・`)?

……って答えは「/root/README」に書いてあります。6)ちなみに、Wifiを有効にする方法もここに書いてあります

それに従ってやってみましょう。

[root@centos-rpi3 boot]# touch /.rootfs-repartition
[root@centos-rpi3 boot]# shutdown -r now

この後10秒程度待って、再接続できるかを確認して……。

[Mac]$ ssh root@192.0.2.100
root@192.0.2.100's password:(「centos」と入力し、エンター)
Last login: Wed Aug  3 HH:mm:ss YYYY
[root@centos-rpi3 ~]#

接続できたら、拡張されたかどうかを見てみましょう。手元の環境だとこんな感じ!

[root@centos-rpi3 ~]# df -aH
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root         30G  933M   28G    4% /
devtmpfs         481M     0  481M    0% /dev
sysfs               0     0     0     - /sys
proc                0     0     0     - /proc
tmpfs            486M     0  486M    0% /dev/shm
devpts              0     0     0     - /dev/pts
tmpfs            486M   13M  473M    3% /run
tmpfs            486M     0  486M    0% /sys/fs/cgroup
cgroup              0     0     0     - /sys/fs/cgroup/systemd
cgroup              0     0     0     - /sys/fs/cgroup/memory
cgroup              0     0     0     - /sys/fs/cgroup/freezer
cgroup              0     0     0     - /sys/fs/cgroup/devices
cgroup              0     0     0     - /sys/fs/cgroup/net_cls
cgroup              0     0     0     - /sys/fs/cgroup/cpu,cpuacct
cgroup              0     0     0     - /sys/fs/cgroup/blkio
systemd-1           0     0     0     - /proc/sys/fs/binfmt_misc
mqueue              0     0     0     - /dev/mqueue
debugfs             0     0     0     - /sys/kernel/debug
configfs            0     0     0     - /sys/kernel/config
/dev/mmcblk0p1   315M   75M  240M   24% /boot
tmpfs             98M     0   98M    0% /run/user/0

ルートパーティションが拡張されたことが確認できました(`・ω・´)b

ひとまずこれで最低限の設定はできたかな?

ってことで、ひとまずの設定はできたかな〜って感じですかね。

まあ、実際に使うためにはもう一手間二手間が必要ですが、そのあたりは今後順次やっていこうかと思うです(`・ω・´)b

注訳はこちら

注訳はこちら
1 DHCPでIPアドレスを取得しているケースが大半なので、こうやって今のアドレスをチェックしているってイメージっす
2 と、ついでにRFC 5737 – IPv4 Address Blocks Reserved for Documentation(ついでのついでに、RFC 3849 – IPv6 Address Prefix Reserved for Documentation
3 Macなら「ターミナル」、Winなら「Tera Term」とか
4 「yes」って入力する所は初回だけでOKですな
5 ちょっとでもグラフィカル(TUI)にやりたい人は「nmtui」でググると幸せになれます
6 ちなみに、Wifiを有効にする方法もここに書いてあります
Let’s share this article!

{ 関連記事 }

{ この記事を書いた人 }

Avatar photo
Yuta Hayakawa

2016年6月入社。2020年12月より取締役に就任しました。

普段は東京本社で管理職のお仕事したり、広報的役割としてテキスト書いたり動画作ったりするのが最近のお仕事。

自称「社内システムチーム統括」として、社内システムチームの面々を見守りつつ毎日を過ごしています。

プライベート面では、音楽やコンピュータ関連、ゴルハム&ジャンハム関係、ゲーム関係が興味あるポイント。

あと、我が子可愛い。

記事一覧