*

RaspberryPI3にCentOS7をインストール (mac利用)

公開日: : 投稿者:raru CentOS7, Linux, サーバ

いつの間にやらRaspberryPI 3が発売し、さらにはCentOSまでもがraspberry piに対応していました。
pi2用のcentosイメージもあるみたいです。

piを初代から購入している私としては3も買わないわけにはいかないということで新たに3も購入しました!
ディスク作成から初期設定までの手順を記載しようと思います。

とはいえ、今回は他のサイトで見たのをほぼそのままやってるものも多いです。
特に参考(引用)とさせていただいたのはRaspberry Pi 3 へCentOS7導入からWifi無線LAN接続まで設定メモのサイト様になります。

ディスクの作成

まずはディスクを作成します。
raspberry piのディスクにするためのmicro sdは事前にフォーマットしておきましょう。
フォーマットの方法は先ほどの参考サイトを見ていただくと、わかりやすいと思います。
Raspberry Pi 3 へCentOS7導入からWifi無線LAN接続まで設定メモ

ディスクフォーマット後はイメージの取得です。
イメージは以下のURLから取得できますので、raspberry pi3用のものを取得してください。
http://mirror.centos.org/altarch/7/isos/armhfp/

ファイルがダウンロードできたらあとはコンソールからコマンドで対応できます。
ちなみに以下はmacにて作業しています。

# xzファイルを展開するためにインストール
$ brew install xz
$ xz -d CentOS-Userland-7-armv7hl-Minimal-1603-RaspberryPi3.img.xz 

# ディスク確認
$ df
Filesystem    512-blocks      Used Available Capacity  iused   ifree %iused  Mounted on
/dev/disk1     234586112 202543136  31530976    87% 25381890 3941372   87%   /
devfs                371       371         0   100%      642       0  100%   /dev
map -hosts             0         0         0   100%        0       0  100%   /net
map auto_home          0         0         0   100%        0       0  100%   /home
/dev/disk2s1    60614144      4800  60609344     1%        0       0  100%   /Volumes/PI_CENTOS

# 一旦microsdのディスクをアンマウント
$ diskutil umount /dev/disk2s1 
Volume PI_CENTOS on disk2s1 unmounted

# イメージを書き込み
$ sudo dd if=CentOS-Userland-7-armv7hl-Minimal-1603-RaspberryPi3.img of=/dev/disk2  bs=8192
Password:

393216+0 records in
393216+0 records out
3221225472 bytes transferred in 1472.442878 secs (2187674 bytes/sec)

これで一旦ファイル作成が完了します。

パーティション修正

以前Raspberry Pi2にfedoraを入れた際もパーティション修正が必要になりましたが、今回も必要なようです。
これは起動したRaspberry PI上で実行しています。

OS自体は最初から初期設定がされた状態のようで、起動したらすぐそのまま利用できました。
以下、パーティションを設定していきます。

// dfでディスクを確認後以下
# parted /dev/mmcblk0

(parted) p                                                                
モデル: SD SA32G (sd/mmc)
ディスク /dev/mmcblk0: 31.0GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ: 

番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  316MB   315MB   primary  fat16             lba
 2    316MB   852MB   537MB   primary  linux-swap(v1)
 3    852MB   3000MB  2147MB  primary  ext4

// 3番を一旦削除
(parted) rm 3                                                             
エラー: パーティション 3 (/dev/mmcblk0 上)
に書きこまれましたが、カーネルに変更を伝えることができませんでした。おそらく、使用中だったのが原因だと思われます。そのため、古いパーティション情報がそのまま使われます。さらなる変更をする前に再起動してください。
無視(I)/Ignore/取消(C)/Cancel? i                                          
(parted) p                                                                
モデル: SD SA32G (sd/mmc)
ディスク /dev/mmcblk0: 31.0GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ: 

番号  開始    終了   サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  316MB  315MB   primary  fat16             lba
 2    316MB   852MB  537MB   primary  linux-swap(v1)

// 上にある ディスク /dev/mmcblk0が31GBなのを確認
// そこに記載のある要領で改めてパーティションを作成
(parted) mkpart primary 852M 31.0GB                                       
エラー: パーティション 3 (/dev/mmcblk0 上)
に書きこまれましたが、カーネルに変更を伝えることができませんでした。おそらく、使用中だったのが原因だと思われます。そのため、古いパーティション情報がそのまま使われます。さらなる変更をする前に再起動してください。
無視(I)/Ignore/取消(C)/Cancel? i                                          
(parted) p                                                                
モデル: SD SA32G (sd/mmc)
ディスク /dev/mmcblk0: 31.0GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ: 

番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  316MB   315MB   primary  fat16             lba
 2    316MB   852MB   537MB   primary  linux-swap(v1)
 3    852MB   31.0GB  30.2GB  primary  ext4

(parted) quit                                                             
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

ここまでで一旦前準備が完了します。
まだこのままではディスクの設定は完了していません。

//  /dev/rootに、まだ要領が未反映
# df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root        2.0G  683M  1.2G   38% /
devtmpfs         459M     0  459M    0% /dev
tmpfs            463M     0  463M    0% /dev/shm
tmpfs            463M   12M  451M    3% /run
tmpfs            463M     0  463M    0% /sys/fs/cgroup
/dev/mmcblk0p1   300M   67M  234M   23% /boot
tmpfs             93M     0   93M    0% /run/user/0

// ディスク確認
# fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 31.0 GB, 31046238208 bytes, 60637184 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000a4da3

  デバイス ブート      始点        終点     ブロック   Id  システム
/dev/mmcblk0p1            2048      616447      307200    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          616448     1665023      524288   82  Linux swap / Solaris
/dev/mmcblk0p3         1665024    60637183    29486080   83  Linux

// サイズの設定
# resize2fs /dev/mmcblk0p3
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 = 4
The filesystem on /dev/mmcblk0p3 is now 7371520 blocks long.

// 要領が増えていることを確認
# df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root         28G  687M   26G    3% /
devtmpfs         459M     0  459M    0% /dev
tmpfs            463M     0  463M    0% /dev/shm
tmpfs            463M   12M  451M    3% /run
tmpfs            463M     0  463M    0% /sys/fs/cgroup
/dev/mmcblk0p1   300M   67M  234M   23% /boot
tmpfs             93M     0   93M    0% /run/user/0

これでディスクの要領は確保できました。

ネットワーク設定

次はwifiの設定です。
私は事情があり設定に苦戦しましたが、おそらく通常であれば以下のように設定すればwifiが利用できると思います。

wifiデバイスの有効化

Raspberry piのCentOS7では最初無線デバイスが有効になっていないようです。

# nmcli d
デバイス  タイプ    状態      接続 
eth0      ethernet  接続済み  eth0 
lo        loopback  管理無し  --  

これを以下の流れで有効化します。

これでraspberry piのファームウェアが更新されます。

# yum -y install git
# git clone https://github.com/RPi-Distro/firmware-nonfree.git
# mv /lib/firmware/brcm{,.org}
# cp -R firmware-nonfree/brcm80211/brcm /lib/firmware/brcm
# curl -L --output /usr/bin/rpi-update https://raw.githubusercontent.com/Hexxeh/rpi-update/master/rpi-update
# chmod +x /usr/bin/rpi-update
# rpi-update
# reboot

再起動したらデバイスの確認です。

# nmcli d
デバイス  タイプ    状態      接続 
eth0      ethernet  接続済み  eth0 
wlan0     wifi      切断済み  --   
lo        loopback  管理無し  --  

これでwifiが使えます。

wifiの設定追加

以後サーバ起動時に自動でwifiを有効にできるよう設定していきます。

// ssidには自分が利用するwifiのssidを設定してください。
# nmcli c add ifname wlan0 con-name wlan0 type wifi ssid hogehoge
接続 'wlan0' (95db4014-f3f2-4729-a71b-8854c9293b71) が正常に追加されました。

// ipv4.addresses, gateway, dnsなどは適宜自分の環境に合わせて設定します。
// 私の家だと以下のようになっています。
# nmcli c m wlan0 ipv4.method manual ipv4.addresses 192.168.11.15/24 ipv4.gateway 192.168.11.1 ipv4.dns 8.8.8.8

// 有線接続は不要になるため、私は落としています。
# nmcli c m etn0 connection.autoconnect no

// ipv6についても使わないので一旦落としました。
# nmcli c m wlan0 ipv6.method ignore

// 以下の設定を行うことで、wifi接続時のパスワード入力が自動化できます (たぶん)
# nmcli con mod wlan0 wifi-sec.key-mgmt wpa-psk
# nmcli con mod wlan0 wifi-sec.psk fugafuga

パスワード設定が (たぶん) になっているのは、私は設定前に先に手動でファイルを作ってしまっていたからです。
私は以下の手順を実行しつつ、いろいろ他の試行錯誤をする中で上記の設定も行っているため、どちらが正なのか正直不明な状態です。

# vi /etc/sysconfig/network-scripts/keys-wlan0
# cat /etc/sysconfig/network-scripts/keys-wlan0
WPA_PSK=fugafuga

ただなんにしても、keys-<デバイス名>のファイルを参照してパスワードを補完してくれているのは間違いないかと思います。

これでreboot後も最初からwifiに繋がっていれば設定は完了です

無線同士のssh接続がうまくいかない場合

今回私がハマったのこの件です。
おそらく発生する方は少ないと思いますが、私の環境では無線のみとしたraspberry piに、無線を利用しているmacからsshが繋がらなくなってしまいました。

その時にいろいろ動作を試したところ、以下のような動きになっていました。
[現象]
・wifi接続中のmacからwifi接続のみとしたraspberry piにsshが繋がらない
・tcpdumpで通信をみたところ、そもそもraspberry piに通信が届いていない
・raspberry piからmacへも通信が届いていなさそう
・家にある他の有線サーバからraspberry piへは繋がる
・raspberry piを有線接続にすると繋がる
・有線の時無線側のipを指定してsshしても、有線側で通信が行われている
・firewallを無効化しても変わりなし

正直意味がわからず、なんとなくルータが怪しいのではないかと思いいろいろ見ていましたがルータの設定は問題なさそうでした。
プライバシーセパレータも無効になっていました。

結果的には以下の対応で解消しました。
・ルータのファームウェアを最新に更新

どうも、バッファローのルータでは昔無線同士の通信がうまくいかないというバグがあったようです。
それがファームウェア更新を怠っていたために今になって発生したということです。

サーバの設定を見ても何が何だかわからないわけですね。
ハマりました。

参考サイト

今回は参考というか、wifi設定以外は引用しているだけといっていいレベルなので指摘されたらすぐ消そうと思います。

[参考/引用元]
Raspberry Pi 3 へCentOS7導入からWifi無線LAN接続まで設定メモ

雑感

ついにお手軽centosが使えるようになるということで本当にいい時代になりました。
久しぶりのブログ更新になりますが、私は生きています。

エンジニアというよりも「システムのわかる便利屋さん」みたいなことばかりしていますが、早くエンジニアリングを勉強しなおしたいですね。
仕事をご一緒させていただいたエンジニアさんがモンスター系の方で、刺激を受けました。
あぁレベル違うわ、世界レベルの人だわこれ、という感じです。

私はその頃フロントとしてお客様と電話、メール、エクセルをやりとりしまくる日々なのでした。
あとコード読んでバグ発見と原因調査。

関連記事

no image

CentOSで不要カーネルの削除

サーバを利用して時間が経過すると溜まってくるLinuxのkernelの削除方法の備忘録。 忘れるた

記事を読む

no image

Raspbianでメール送信 ssmtp編

Raspbianで監視などをおこなっているとメールが送信したくなります。 とりあえず何かと管理用に

記事を読む

no image

CentOS6 初期設定

自宅に置いてある安鯖にCentOS6を入れて初期設定を行ないました。 前提条件/設定項目

記事を読む

no image

RedmineからsSMTPでメールを送信

Redmineの管理画面にアクセスしたところメール通知設定は所定のファイルを編集しないとできないよう

記事を読む

no image

yum使いがハマるaptitudeの罠 update

最近までaptitudeの使い方に関して大いなる勘違いをしていました。 yum使いの皆様も私と同様

記事を読む

no image

CentOS7 初期設定

しばらく振りになりますが、ひっそりとWordpressの移設を行っていました。 お仕事が多忙を極め

記事を読む

no image

Raspbian(jessie)にssh鍵認証で接続

Debianがjessieになって、sshd_configのデフォルトの設定が変わりました。 それ

記事を読む

no image

DDNS(No-IP)をcronで更新

DDNSを利用してzabbix agentを導入できないかと思い、ひとまずDDNSの設定を行いました

記事を読む

no image

PidoraにZabbix2.2を入れてみた

※完璧な状態ではありません。 こちらの記事のzabbix設定周りを行うと解決する可能性がありま

記事を読む

no image

OpenDKIMを利用したメール認証

今回はOpenDKIMを利用したメール認証設定を行います。 DKIMやらSPFやら、メールは何かと

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP ↑