今回はファイルのコピーです。コピーの後にファイルの移動、削除についてやる予定です。が、今使ってる環境でファイルの移動や削除などの処理を実行するのは嫌だなと思う人がいるかもしれません。本番環境で失敗して重要なファイルを削除してしまったら大変です。やや危険を伴うコマンドの場合は問題が発生してもすぐに戻せるか、壊しても問題がない環境を用意しておくのが妥当です。

そこで今回は小型で安価、そして何度でもやり直しができるラズベリーパイを使うことにします。仮想環境でなく実機で動かした方が良いかなと思っただけなので、仮想環境でもいいよという人はDockerなどを利用してコマンドを実行し学習できる環境を用意しましょう。というか、学習用途なら仮想環境を用意するのも方法の1つです、と第1回目に書いておけばよかったかもしれません。
あと、今回はラズベリーパイを使用していますが、その場合できれば3枚のSDカードがあるとベストです。そのうち一枚は容量は少なくても構いません。コピー先、コピー元として使うだけだからです。

ラズベリーパイの選択

 ラズベリーパイはコマンドのテストに使えるだけでなくIoTや電子工作などにも使えます。標準で用意されているOSはGUIを利用できるようにもなっており、最初にこのような機器(シングルボードコンピュータ)に触れる人には優しいのではないかと思います。(GUIなしのものもあります)

ラズベリーパイにはいくつか種類があり、最新のものはラズベリーパイ4です。ただ、コマンドの学習や多くの用途には、ラズベリーパイ4ほどのパワーは要らないでしょう。という事で、ここでは1つ前のラズベリーパイ3B+を使います。遅くてもよければRaspberry Pi2でも構いません。

  • ラズベリーパイ3B

    ラズベリーパイ3B

ラズベリーパイは本体だけでは動作しません。ノートパソコンのように一体化してるわけではないからです。このため、ディスプレイ、モニタ、キーボード、マウス、電源供給するmicro USBケーブル、マイクロSDカードが必要です。
キーボードやマウスはUSB Type Aなのでパソコン用のものが、そのまま使えます。ディスプレイはHDMI接続できるものがあれば大丈夫です。家庭用のテレビでも使えます。

マイクロSDカードは用途によって使用するサイズのものを用意しないといけませんが、今回のような学習用途なら8GBもあれば十分です。可能ならなるべく高速な転送速度のものがよいでしょう。なお、SDカードは最低2枚同じものを購入しておきます。というのも、ファイルの削除などで失敗した場合に、もう一枚のSDカードから復旧させるためです。学習用途でなく止められない用途の場合は2枚でなく3枚用意しておくのがベストです。

とりあえず機器を用意したら電源以外は接続しておきます。ラズベリーパイには電源スイッチがないので電源(micro USBケーブル)を接続するとすぐに電源オンになります。外せばすぐに電源が切れてしまいますので、注意してください。

ラズベリーパイOSのインストール

 ラズベリーパイはSDカードを入れ替えるだけで様々なOSをインストールする事ができます。定番のUbuntuや音楽用途のものやロボット制御用のものなど様々です。

ここでは、ラズベリーパイ財団が用意してくれているOSを使います。以前はラズビアンという名前でしたが、今はRaspberry Pi OSという名前に変更されています。

ラズベリーパイOSに名前が変わったのと同時にSDカードにOSを書き込む方法がものすごく簡単になりました。大昔はコマンド入力したりしました(それはそれで勉強になるわけですが)。

さて、ラズベリーパイOSをSDカードに書き込みましょう。まず、以下のサイトからラズベリーパイOSをダウンロードします。今回は学習用途なので一式入っているバージョン(Raspberry Pi OS with desktop and recommended software)を使用します。

  • Raspberry Pi OS with desktop and recommended softwareをダウンロード

    Raspberry Pi OS with desktop and recommended softwareをダウンロード

次にOSを書き込むソフト(Raspberry Pi Imager)をダウンロードします。

  • Raspberry Pi Imagerをダウンロード

    Raspberry Pi Imagerをダウンロード

ダウンロードしたら解凍後(展開後)、OSにインストール(またはコピー)します。Raspberry Pi Imagerを起動します。

カードリーダーにSDカードを差し込みます。

書き込むOSを選択します。今回使用するのはRaspberry Pi OS (32-bit)です。

SDカードを選択します。

WRITEボタンを押します。

SDカードの内容は全部消去されてしまうので確認のダイアログが表示されます。YESを選択すると書き込みが始まります。

後は待つだけです。どのくらい待てば良いかはカードの読み書きの速度に依存します。遅いカードの場合は気長に待ちましょう。

書き込みが完了すると以下のようなダイアログが表示されるのでCONTINUEボタンをクリックします。

書き込みが終了したらSDカードを取り外してラズベリーパイに差し込みます。あとはHDMIケーブル、マウス、キーボードを接続します。また、必要であればイーサネットケーブルも差し込みます。WiFiでネットワーク接続する場合は不要です。

差し込んだら電源供給を行うマイクロUSBケーブルを差し込めば起動します。起動には少し時間がかかるので待ちましょう。

ラズベリーパイOSの設定

 起動したら手順に従って設定していきます。Raspberry Pi OSのバージョンによって若干設定内容や手順は異なるかもしれませんが、基本的な設定をしてしまえば十分です。
 2021-1-11リリース版では以下のようになります。起動すると図のようなダイアログが表示されるのでNextボタンをクリックします。

CountryをJapanに設定すると他も自動的に設定されます。ここでUS Keyboardの方がいい、使用したいというのであればUse US Keyboardにチェックを入れておきます。設定したらNextボタンをクリックします。

次にパスワードを入力します。この状態ではアカウント名はpiになっていますので、このアカウントのパスワードを入力する事になります。後々VNCで接続する場合は、ユーザー名piでパスワードは、ここで入力したものになります。昔はデフォルトでraspberryというパスワードでしたが、今はこのようにきちんと設定するようになっています。

次はそのままNextボタンをクリックします。

Wi-Fiでネットワーク接続する場合は接続先を選択してNextボタンをクリックします。

接続するWi-Fiのパスワードを入力します。入力したらNextボタンをクリックします。

ソフトウェアのアップデートをするかどうか決めます。アップデートしない場合はSkipボタンをクリックしてください。Nextボタンをクリックするとアップデートが始まります。

アップデートが完了すると図のようなダイアログが表示されるのでOKボタンをクリックします。

最後に再起動します。Restartボタンをクリックします。後は再起動するのを待ちます。

無事に起動したら終わりです。が、SSHやVNCを使って接続する場合はもう少し設定が必要です。
メニューから設定>Raspberry Piの設定を選択します。

インターフェイスのタブにあるSSHとVNCの有効のラジオボタンをクリックします。

VNCで接続する場合のIPアドレスなどの確認はメニューバー右上にあるV2のアイコンをクリックします。すると図のようなウィンドウが表示されます。

SDカードの複製を作成

 設定が終わったらSDカードの複製を作ります。複製を作っておけば失敗してもカードを差し替えるだけで復活できます。
 カードリーダーを接続して、そこに複製するSDカードを入れます。

SDカードを入れると図のようなダイアログが表示されることがあります。ここはキャンセルボタンをクリックしておきます。間違ってOKボタンをクリックしても特に問題はありませんので、このまま以下の作業を継続してください。

次にディスクコピーのソフトを起動します。メニューのアクセサリ>SD Card Copierを選択します。

複製元と複製先を選択します。Startボタンをクリックします。

確認のダイアログが表示されるのでYesボタンをクリックします。

SDカードの複製が始まります。

複製が完了したら図のようなダイアログが表示されるのでOKボタンをクリックします。もし、SDカードが複製できないという事もあるので、その場合は新しいSDカードを使ってみてください。
複製が終わったら複製したカードを差し込んで起動するかどうか確認します。無事に起動すれば準備完了です。

VNCで接続する

 せっかくなのでコンピューターからVNCで接続できるようにしておきましょう。
ラズベリーパイ側はすでに設定が終わっているのでコンピューター側の設定を行います。ここでは以下のVNC Viewerを使用しました。VNC Viewerはスマートフォンやタブレット用もあります。

RealVNC
https://www.realvnc.com/ VNC Viewer
https://www.realvnc.com/en/connect/download/viewer/

 今回は以下のバージョンを使用しました。

 VNC Viewerを起動したら図の空白の部分で右ボタンをクリックして表示されるメニューからNew Connection...を選択します。ちなみにAndroid端末の場合は(+)ボタンが表示されているので、そのボタンをクリックします。

設定画面が表示されるのでVNC Serverの部分に接続するラズベリーパイのIPアドレスを入力します。Nameの欄は接続先を自分で判別するための名前です。わかりやすい名前にしておけば良いでしょう。他の部分はデフォルトのままで特に設定する必要はありません。設定が終わったらOKボタンをクリックします。

接続先の確認ダイアログが表示されますのでContinueボタンをクリックします。

接続先のラズベリーパイのユーザー名とパスワードを入力します。ユーザー名はpiになります。パスワードはラズベリーパイで最初に設定したものを入力してください。(昔はraspberryがデフォルトでしたが、現在は自分で設定したパスワードです)

設定が終わるとアイコン(一回接続するとサムネールになります)が表示されるのでダブルクリックします。

無事に接続されるとラズベリーパイの画面が表示されます。後は、GUIで操作できるのでご自由にといったところです。

ファイルをコピーする

 それでは最初にファイルのコピーをしてみましょう。なお、特に注意書きがない場合はWindowsや Mac、UbuntuなどUNIX系のシェル環境でも動作します。ラズベリーパイを使うのは本番環境で失敗したくない人、あとコマンドに慣れてない人向けです。本番環境で問題ない!という人は、そのままコマンドを入力、実行してもらって構いません。

まず、コピーするファイルを用意します。echoとリダイレクトを使ってひとつだけテキストファイルを作成しておきます。例によって分かりやすくするため、デスクトップにpi.txtという名前で作成します。

ラズベリーパイのターミナルは第1回目でも説明しましたが、図のようにすれば起動します。

起動したら以下のようにコマンドを入力します。

echo 3.1415 > ~/Desktop/pi.txt

さて、次にこのファイルをコピーします。わかりやすくするためデスクトップに314.txtというファイル名でコピーします。 ファイルをコピーするにはcpコマンドを使います。以下のように入力します。

cp ~/Desktop/pi.txt ~/Desktop/314.txt

コピーされたファイルをテキストエディタ等で開くかcatコマンドを使って内容を確認します。確かに内容がコピーされています。

ちなみにPowerShellの場合も同じようにしてファイルをコピーすることができます。これはcpがCopy-Itemのエイリアスになっているためです。 PoweShellでは以下のように入力しても同じ結果になります。

Copy-Item ~/Desktop/pi.txt ~/Desktop/314.txt

次に複数のファイルのコピーを...と思ったら長くなったので続きは次回。

著者 仲村次郎
いろいろな事に手を出してみたものの結局身につかず、とりあえず目的の事ができればいいんじゃないかみたいな感じで生きております。