こんばんにちは
ラズパイことRaspberry Piという有名なワンボードコンピュータがあります。
私は基本的にサーバー的用途としてしか使わないのですが、通常はOSとしてRaspbianというものをインストールします。
しかし、実はRaspbian以外にもCentOSやFreeBSDなんかもインストールして使えてしまいます。
ハードウェアピン等の制限があるようですが、サーバー用途に限って言えば電源が入ってLANとかが使えば問題ないので無視します。
そこで、今回はCentOS7をインストールしてみます。
続きをどうぞ。
目次
前提
- インストール等はMacで行います。
- 使用するラズパイは[こちらの記事]で開封したものです。
- 自宅のネットワークにはLANケーブルで有線接続します。
OSイメージダウンロード
CentOSの公式ページにあります。
そこの、Get CentOS Nowに進みます。
そこの、alternative downloadsに進みます。
そこの、「AltArch Releases」の項目に「Minimal image for RaspberryPi 2/3」というのがあるので、これをダウンロードします。
wgetします。
~ % wget http://mirror.centos.org/altarch/7/isos/armhfp/CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1804-sda.raw.xz
OSイメージの展開
xzファイルを展開します。
High Sierraではデフォルトだとxzコマンドが入っていなかったので入れます。
~ % brew install xz
展開します。
~ % xz -d CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1804-sda.raw.xz
インストール
インストールといってもddコマンドでSDカードにイメージを焼きます。
まず、SDカードをカードリーダ等でMacに接続します。
diskutilで確認します。
~ % diskutil list
/dev/disk0 (internal):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme 251.0 GB disk0
1: EFI EFI 314.6 MB disk0s1
2: Apple_APFS Container disk1 250.0 GB disk0s2
/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +250.0 GB disk1
Physical Store disk0s2
1: APFS Volume Macintosh HD 161.6 GB disk1s1
2: APFS Volume Preboot 21.5 MB disk1s2
3: APFS Volume Recovery 518.1 MB disk1s3
4: APFS Volume VM 4.3 GB disk1s4
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *15.9 GB disk2
1: Windows_FAT_32 NO NAME 15.9 GB disk2s1
この場合はSDカードは/dev/disk2ですね。FAT32でフォーマットされている事を確認します。
書き込むために、アンマウントします。
~ % diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful
それでは書き込んでいきます。disk番号を間違えるととんでもないことになりかねないので気をつけましょう。
~ % sudo dd bs=1m if=./CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1804-sda.raw of=/dev/disk2
途中は何も表示されませんが、Control+Tで経過が表示されるようです。
load: 2.41 cmd: dd 78141 uninterruptible 0.00u 2.15s
150+0 records in
149+0 records out
156237824 bytes transferred in 66.170211 secs (2361150 bytes/sec)
終わったらシェルに戻ってくるので、SDカードを取り出します。
~ % diskutil eject /dev/disk2
Disk /dev/disk2 ejected
起動
- SDカードを挿す。
- HDMIでディスプレイを接続する。
- キーボードを接続する。
- LANケーブルを接続する。
- 電源のUSBを接続する。
すると以下のような表示が出ます(システムメッセージで見えづらいかも)。
CentOS Linux 7 (Core)
Kernel 4.14.27-v7.1.el7 on an armv71
localhost login:
初期状態では、
- UserName:root
- Password:centos
となっていますので、ログインします。
bashが走ります。
[root@MacBook-Pro ~]#
なぜかホスト名がSDカードを焼いたMacと同じになっている…
IPを固定する
とりあえずsshで接続して作業をしたいので、そのための設定だけしてしまいます。
といっても既にsshdは動いているようなので、IPv4アドレスだけ固定します。
nmcliでもいいのですが面倒なのでnmtui使って適当に変更します。
環境に合わせて変更しますが、最低限以下の項目は変更が必要でしょう。
- Profile name eth0 //なぜか”Wired connection 1″となっていてわかりづらかった
- IPv4 CONFIGURATION //固定にするならManual
- ADDRESSES 192.168.100.180/24
- Gateway 192.168.100.1
- DNS servers 192.168.100.1
ついでにhostnameも変更しておくと良いかもしれません。
これで、
# nmcli con down eth0
#nmcli con up eth0
とすれば設定が反映されます。
LAN内の他の端末からssh接続してみます。
~ % ssh root@192.168.100.180
root@192.168.100.180's password:
[root@raspi2 ~]#
接続が成功すればあとはsshで作業するのでHDMIとかキーボードは不要です。
最初にやること
ファイルシステムの拡張
インストール直後の状態は以下のようになっています。
[root@raspi2 ~]# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/root 1.4G 989M 357M 74% /
devtmpfs 460M 0 460M 0% /dev
tmpfs 464M 0 464M 0% /dev/shm
tmpfs 464M 12M 452M 3% /run
tmpfs 464M 0 464M 0% /sys/fs/cgroup
/dev/mmcblk0p1 667M 44M 624M 7% /boot
tmpfs 93M 0 93M 0% /run/user/0
ファイルシステムを拡張してやる必要があります。
が、空き領域を全て使用していいならwikiに書いてある通りにすれば終わります。
[root@raspi2 ~]# /usr/bin/rootfs-expand
/dev/mmcblk0p3 /dev/mmcblk0 3
Extending partition 3 to max size ....
CHANGED: partition=3 start=2369536 old: size=2928640 end=5298176 new: size=28746719,end=31116255
Resizing ext4 filesystem ...
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mmcblk0p3 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mmcblk0p3 is now 3593339 blocks long.
Done.
結果
[root@raspi2 ~]# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/root 14G 992M 13G 8% /
devtmpfs 460M 0 460M 0% /dev
tmpfs 464M 0 464M 0% /dev/shm
tmpfs 464M 12M 452M 3% /run
tmpfs 464M 0 464M 0% /sys/fs/cgroup
/dev/mmcblk0p1 667M 44M 624M 7% /boot
tmpfs 93M 0 93M 0% /run/user/0
完璧です。
yum update
[root@raspi2 ~]# yum update
ラズパイである事を忘れてしまいそうです。
rootのパスワード変更
[root@raspi2 ~]# passwd
ユーザー root のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
通常ユーザー作成
[root@raspi2 ~]# useradd k-san
[root@raspi2 ~]# passwd k-san
ユーザー k-san のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
作成したユーザーをwheelに所属させます。
[root@raspi2 ~]# usermod -aG wheel k-san
wheelに所属しているユーザーがsudoできるようにします。
[root@raspi2 ~]# visudo
# 以下をコメント解除(最初からされてる?)
%wheel ALL=(ALL) ALL
ここからは今作成したユーザーでssh接続し直して作業をします。
[root@raspi2 ~]# exit
ログアウト
Connection to 192.168.100.180 closed.
~ % ssh k-san@192.168.100.180
k-san@192.168.100.180's password:
Last login: Mon Jul 9 09:25:51 2018
[k-san@raspi2 ~]$
タイムゾーンと時刻同期
こちらの記事をご覧ください。
まとめ
これで必要最低限の設定はできたかと思います。外部公開目的ならもっとちゃんとする必要がありますが、信用できる自宅LAN内での利用や実験目的ならこんなもんでしょう。
カーネルのアップデートもyumで特別なこともせずやってくれるようですね。
インストールしてしまえばラズパイで動いている事を意識せずに使えるので自宅に常時稼働CentOS機が増えて便利です。
ではでは
参考
https://qiita.com/NAZA/items/38303564dde29977d79e
https://qiita.com/revsystem/items/9989a18116e554c133b6
https://mseeeen.msen.jp/centos-7-on-raspberry-pi-3/
https://blog.smallserver.jp/raspberry-pi-3-%E3%81%A7-centos-7-%E3%82%92%E5%8B%95%E4%BD%9C%E3%81%95%E3%81%9B%E3%82%8B/