以下では、Raspberry pi 4 Model B(4GBタイプ)に、Raspbian をインストールし、
rootユーザーへの切り替え、SSH接続、システムの更新を行うまでの手順を記載したものである。
また、最後に、RaspbianをインストールしたmicroSDXCカードの、
バックアップ方法とリストア方法についても記載した。
インストールには、microSDXCカードへの書き込みで別マシンが必要になる。
ここでは、Linux(CentOS 7)マシンを使用している。
<使用したもの>
○OSインストール段階で使ったもの
Linuxマシン、
SDXCカードリーダー、
空の高速なmicroSDXC(ここでは、ランダムアクセス性能にも優れた64GB、U3タイプを用いた)、
(注意)
microSDXCは、64GBのものを用いた。
容量が大きいことは、ユーザーデータの保存容量が増すだけでなく、
SDカードのコントローラーによって分散書き込みできる領域が増すということだと考えられるので、
SDカードの寿命も長くすることができると考えられる。
○OS初期セットアップ段階で使ったもの
キーボード、
マウス、
HDMI接続モニター、
アップデートのためにインターネットに接続できるネットワーク環境も用いている。
■Raspberry piの公式OSであるRaspbianの導入
ファイルのダウンロードやSDカードへの書き込みなどの準備作業では、
Linuxマシン(CentOS 7 64bit)を用いた。このLinuxマシンではGUIが使える。
この項目では、この準備用マシンでの操作について記載している。
○ダウンロード
以下のページから、Raspbian というOSをダウンロードした。
https://www.raspberrypi.org/downloads/raspbian/
Raspbianには、現在のところ二種類が用意されていた。
いずれも、バージョンは、September 2019 というものである。
一つは、Raspbian Buster with desktop and recommended software で、
デスクトップの環境に追加のお勧めソフトウェアがパッケージされたものである。
もう一つは、Raspbian Buster with desktop で、そういう追加のソフトウェアがないものである。
(必要に応じて、自分で追加ソフトを選択して導入することもできる。)
ここでは、追加ソフトウェア付のデスクトップ環境を選択した。
ダウンロードしたファイルは3GB程で、zipで圧縮されていた。
(注意)
ブラウザを用いてダウンロードした場合、転送速度が非常に遅い場合に、
セッションがタイムアウトになってしまうことがあった。
その場合、wgetコマンドを用いてダウンロードすれば良かった。
○microSDXCカードへのインストール
インストールと言っても、インストーラーがあるわけではない。
ダウンロードしたファイルは、OSのイメージになっているので、
それをSDカードにそのまま書き込むシンプルな方法で良い。
まず、圧縮ファイルを展開した。
# unzip 2019-09-26-raspbian-buster-full.zip
すると、2019-09-26-raspbian-buster-full.img というファイルが得られた。
このファイルをmicroSDXCカードにRAWデータとして書き込めば良い。
次にその方法を示す。
(注意)
ファイルとして書き込むのではない。(注意)
imgファイルにはRaspberry piシステムディスクのイメージがそのまま書き込まれている。
RAWデータとして専用のコマンドでmicroSDXCカードに書き込むことによって、
そのディスク構造(パーティションやファイルシステム)ごとmicroSDXCに転写されることになる。
Linuxシステムでは、SDXCカードはデバイスファイルと対応づけられる。まず、SDXCカードリーダーに差し込んだSDXCカードが、
即ち、対応づけられたデバイスファイルにデータを放り込むことによって、
そのSDXCカードにデータが転写される。
Linuxシステム上でどのデバイスファイル名で認識されたかを確認する。
そこで、microSDXCカードを操作するために、gnome-disksを起動した。(GUI必要)
# gnome-disks
このアプリケーションは、gnome-disk-utility というパッケージから導入できる。
そして、ターゲットの空のmicroSDXCカードを、準備用マシンのカードリーダーに差し込んだ。
起動中のgnome-disksにより、microSDXCがどのデバイスファイルに割り当てられたかわかった。
あるいは、下記ページを参考にして、デバイス名を調べることができる。
http://akira-arets.blogspot.com/2010/03/centos54sd.html
ここでは、microSDXCカードが /dev/sdX というデバイスファイルを割り当てられたものとする。
次のフォーマットを参考にして、microSDXCにデータを書き込んだ。(=インストール)
# dd if='2019-09-26-raspbian-buster-full.img' of=/dev/sdX bs=4M
1624+0 レコード入力(注意)
1624+0 レコード出力
6811549696 バイト (6.8 GB) コピーされました、 223.274 秒、 30.5 MB/秒
この段階では、書き込まれたデータは6.8GBであるが、
Raspberry pi システムを立ち上げてセットアップが完了した段階では、
64GBのSDカードいっぱいにまでファイルシステムが拡張されていた。
以前のより古いRaspbianではこのような自動拡張はなかったと思う。
(注意)
デバイスファイル(/dev/sdX の所)の指定は間違えないようにすること。
さもなければ、意図せずに別のディスクの内容を破壊してしまうことになる。
bsで指定されている4Mというのは一度に書き込み操作するデータの大きさである。
これが小さいとシーケンシャルライトにならずに、書き込み速度が落ちてしまうことがある。
ここで使用したSDXCカードは、U3という書き込みが高速のものである。
Raspberry piでは、SDXCカードがハードディスク代わりとなるので、高速アクセスのタイプを選んだ。
本当はきちんとランダムアクセスの早いSDXCカードを探して選んだ方が良い。
書き込みが完了したら、microSDXCカードに対して予めgnome-disksで「ディスクの取り出し」を行う。
その上で、microSDXCカードをカードリーダーから取り外した。
■Raspberry pi の起動
○先ず初めに
インストール済みのmicroSDXCカードをRaspberry piのカードスロットに差し込んだ。
キーボード、マウス、そしてHDMI端子よりモニターに接続した。
さらに、ローカルネットワーク接続用のLANケーブルを差し込んだ。
その上で、電源供給のためにType-Cを差し込んだ。
これにより、Raspberry piが起動した。
(注意)
デフォルトでは、SSHログインもできないし、
セットアップは、GUIで行うためにマウスも必要だった。
モニターの無いところで起動してしまうと、終了させることもできなくなり、
仕方無く電源断をすればSDのファイルシステムを壊してしまうことになるだろう。
初回起動は、ラズベリーのアイコンが表示されてから、モニターにデスクトップ画面が表示されるまでに時間がかかった。(5分くらい?)
モニターが真っ暗な状態になっていてもじっくり待つ必要があった。
デスクトップが表示されると、セットアップを促すウインドウが開かれた。
地域や言語を選択し、piユーザー(デフォルトユーザー)のパスワードの設定を行った。
WiFi接続の設定もここで行うことができる。
設定が完了すると、再起動が行われた。
○rootユーザーを使用するための設定
rootユーザーは、パスワードを設定するだけで使用できるようになった。
仮想端末を起動した。
rootユーザーのパスワードを設定した。
pi@raspberrypi:~ $ sudo passwd root
○SSHログインできるようにするための設定
続いて、rootユーザーに切り替えた。
(さきほど設定したパスワードを入力した。)
pi@raspberrypi:~ $ su
Password:root@raspberrypi:/home/pi#
これでrootユーザーに切り替わった。
SSHという空のファイルをbootディレクトリに作成した。
root@raspberrypi:/home/pi# touch /boot/ssh
これで、再起動を行うと、SSH接続が可能となった。
次回は、SSH接続を行うので、ここでRaspberry piに割り当てられているIPアドレスを確認した。
root@raspberrypi:/home/pi# ip a | grep inet
inet 192.168.1.2/24 brd 192.168.1.255 scope global noprefixroute eth0192.168.1.2 がそのアドレスである。環境によって当然異なる。
再起動を行った。
root@raspberrypi:/home/pi# reboot
■Raspberry pi システムの更新
○Raspberry pi へのSSHログイン
上記手順で、Raspberry piにリモート接続(SSH接続)ができるようになった。
別マシンから、Raspberry piにSSH接続を行った。
(デフォルトではrootユーザーは直接ログイン不可だった。)
$ ssh pi@192.168.1.2
○システムのアップグレードを行った。
piユーザーでSSHログイン後、rootユーザーに切り替えた。
(さきほど設定済みのrootパスワードを入力した。)
pi@raspberrypi:~ $ su
Password:これで、rootユーザーに切り替わった。
root@raspberrypi:/home/pi#
不意にSSHセッションが切れることに備えて、仮想端末tmuxを導入した。
root@raspberrypi:/home/pi# apt-get install tmux
仮想端末tmuxを起動した。
root@raspberrypi:/home/pi# tmux
念の為、インストール直後のunameの情報を挙げておく。
root@raspberrypi:/home/pi# uname -a
Linux raspberrypi 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linuxシステムの更新を行った。
(updateでパッケージの更新の有無を調べ、upgradeで更新する。)
root@raspberrypi:/home/pi# apt-get update
root@raspberrypi:/home/pi# apt-get upgrade
更新には結構な時間が必要だった。
ネット環境、microSDXCカードの性能にも依るだろうと思う。
完了後、再起動を行った。
root@raspberrypi:/home/pi# reboot
アップデート後のunameの情報
とくに変化は無かった。
root@raspberrypi:/home/pi# uname -a
Linux raspberrypi 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux
■ディスプレイ不要のヘッドレス運用について
ところで、この段階で、マウスを使うGUIデスクトップ画面をリモートアクセスで利用するための設定ができる準備ができた。
ネットワーク越しに、別のパソコンからリモートアクセスでデスクトップ画面を利用することをヘッドレス運用と言う。
Raspberry pi 専用にディスプレイを接続する必要がないということである。
ヘッドレス運用のための設定が必要な場合は、以下を参照してください。
二つにページを分けていますが、注意点もあるため、順に目を通すことをお勧めします。
・デフォルトpiユーザーでヘッドレス運用をするための設定について
【Raspbian Buster September 2019】VNC Serverを利用してpiユーザーのリモートデスクトップ環境を構築する
・新規にユーザーを作成してヘッドレス運用をするための設定について
【Raspbian Buster September 2019】VNC Server virtualモードで、新規に作成したユーザーのリモートデスクトップ環境を個々に構築する
上記の設定を行う前に、システムのアップグレードを先ず行うことを推奨します。
■システムのバックアップとリストア
初期セットアップが完了した後、いつでも同じ環境に戻せるようにするために、
microSDXCにインストールされているシステム全体のバックアップを作成した。
ここでも、バックアップファイルの保存先はLinux(CentOS 7)とした。
○Raspberry piからmicroSDXCカードの取り出し
まず、Raspberry pi を終了させた。
root@raspberrypi:/home/pi# poweroff
Raspberry piのシャットダウンを確認後、
本体microSDカードスロットから、microSDXCカードを取り出した。
○取り出したmicroSDXCカードのバックアップ
microSDXCカードをバックアップ保存先とするLinuxマシンのカードリーダーに取り付けた。
既に述べた方法を参考にして、デバイスファイル名を確認した。
ここでは、microSDXCカードが /dev/sdX というデバイスファイルを割り当てられたものとする。
# dd if=/dev/sdX | gzip -c > Raspbian_Raspi4_testmachine_20191025.img.gz
ddコマンドにより、microSDXCの内容が全て読み取られて、
gzipコマンドによって圧縮されてから指定したgzファイルに保存される。
圧縮をかけたので、microSDXCは64GB程度あるが、3GB程度に圧縮されて保存できた。
○バックアップファイルからmicroSDXCへリストア
リストアするには次のようにする。
# gzip -dc < Raspbian_Raspi4_testmachine_20191025.img.gz | dd of=/dev/sdX
バックアップのときに発行したコマンドと逆のデータの流れになっている。
(注意)
一つ気になることがある。それは、リストア先のmicroSDXCの容量である。
リストア先のmicroSDXCカードがバックアップ元と全く同じ容量であるか、
あるいはそれよりも大きい場合は問題ないだろう。
しかし、逆に、少しでも容量が小さい場合にはデータを全て書き込みできずに、
エラーになると考えられる。
同じ64GBと表記されたmicroSDXCでもメーカーや型番やロットによって、
容量が同じでない場合があるので注意が必要である。
悩ましさを切り捨てるために、リストアが必要になった際には、
128GBサイズのmicroSDXCカードを使ってみることも手である。
○上記の方法でリストアを試した結果
バックアップしたRaspberry pi 4 のSDカードの容量は、次の通りである。
(parted) unit b
(parted) p
Model: SD SA64G (sd/mmc)
Disk /dev/mmcblk0: 61983424512B
そして、リストア先として用いた新しい空のSDカードの容量は、次の通りである。
(parted) unit b
(parted) p
Model: SD SR64G (sd/mmc)
Disk /dev/mmcblk0: 63864569856B
このように比べると、リストア先のSDカードの容量は同じ64GBタイプでも少し大きいものだとわかる。
これはメーカーや、型番、ロットによって異なるので実際に試してみなければわからない。
したがって既に述べたように、リストア先としてはワンサイズ上のタイプのSDカードを選ぶ手が確実となる。
リストアコマンドの結果は次の通りである。
bs=4M は一度に書き込むデータの量である。
これを省略するとシーケンシャルライトにならずにSDへの書き込みが非常に遅くなる場合がある。
[root@localhost Raspberry]# gzip -dc < Raspbian_Raspi4_testmachine_20191025.img.gz | dd of=/dev/sdX bs=4M
121061376+0 レコード入力リストア先SDカードのサイズは、63864569856バイトあるので、問題なく書き込むことができたわけである。
121061376+0 レコード出力
61983424512 バイト (62 GB) コピーされました
そして、このリストアしたSDカードを、新規に購入したRaspberry pi 4で用いて、
そのまま起動したところ以前と同じ設定のシステムを得られた。
例えば、前のシステムで設定したVNC SERVERも自動的に起動された。
同じ設定のRaspberry piを増やすことができるのでバックアップ、リストアはとても便利である。
また、SDカードが故障して起動しなくったり、システムがおかしくなった場合でも、リストアは有効である。
以上
<参考>
・ddの進捗を確認
< https://qiita.com/tukiyo3/items/5e3fd748287ffa4b6612 > 2019年10月27日
・gzip - ファイルを圧縮・展開 - Linuxコマンド
< https://webkaru.net/linux/gzip-command/ > 2019年10月27日
新品価格
¥7,800から (2020/1/19 06:25時点) |