Raspberry Pi OS(64bit: β版 ) をインストール

Raspberry Pi ネタが続きますが、これまで Raspberry PiOS は 32bit でした。まだβ版ではあるのですが、 64bit 版が公開されていたのでインストールしてみました。ついでに各種設定をもう一度書いてみます。

64bit 版をダウンロード

前提条件として macOS で OS を書き込みます。使うのは Raspberry Pi4 。 iP アドレスは確定していて、イーサーネットで接続するとしておきます。 Wi-Fi は使いません。

https://downloads.raspberrypi.org/raspios_arm64/images/

このアドレスに 64bit 版がありますので、日付の一番新しいヤツをダウンロードします。直接ダウンロードか Torrent ファイルによるダウンロードが選べます。 2021 年 10 月 20 日時点で「 2021-05-28 」が一番新しいものになってますね。

ダウンロードが終わったら Raspberry Pi Imager で書き込みます。ダウンロードしたファイルは zip ファイルになっているので適当なアプリを使って解凍して img ファイルにしておきます。 Raspberry Pi Imager では選択肢の一番下、 custom を選んで img ファイルを選択します。

一番下の Use custom を選択します

私は基本ヘッドレスで運用しているので、 ssh ができるようにしておかなければなりません。 Raspberry Pi Imager で SD カードができあがったら 1 度抜いて再び入れ直します。そうすると macOS 上に boot というディスクがマウントされます。その中に「 ssh 」というファイル ( 中身はなくていい ) を作っておきます。起動時にこのファイルを Raspberry PiOS が読み込んで ssh 接続に必要なものをセットアップしておいてくれます。

私は、ターミナルから

touch /Volumes/boot/ssh

でファイルを作っておきます。後はアンマウントして Raspberry Pi にセットします。

最初の起動でやっておくこと

最初の起動ではまず Update しておきましょう。

sudo apt update
sudo apt -y full-upgrade

以前推奨されていたのは sudo apt upgrade でしたが、最近は full-upgrade になったみたいです。さらに Location を変更します。私は Language を変更せずに使っていますが、同時に Language も変更できますね。

後で出てきますが、ここでログイン後 Console でマルチユーザーログインを選択しておくとはまらずにすみます。

sudo raspi-config

終了するとリスタートを求められるので、 Yes にしてリスタートします。

ユーザー名の変更など

[Raspbian]ユーザ名変更の個人的に「正しい」と思うやり方 | 純規の暇人趣味ブログ こちらを参照してデフォルトユーザーである pi から任意のユーザー名に変更します。削除ではなく変更です。

ここで、グラフィカルユーザーインターフェースをキャンセルしておかないと、 ssh で接続している以外に、 GUI で接続しているユーザー (pi) が存在していてユーザー名を変更できません。 ssh で接続しているから自分だけだと思って作業するとはまりますので、ご注意ください。

sudo useradd -M tmp       #仮のユーザーtmp
sudo gpasswd -a tmp sudo  #tmpをsudoグループに入れる
sudo passwd tmp           #tmpのパスワードを決定する
exit                      #一旦ログアウトして次はtmpでログインする
---
sudo usermod -l NEWID pi  #piをNEWIDにリネーム
sudo usermod -d /home/NEWID -m NEWID
                          #ホームディレクトリを変更
sudo groupmod -n NEWID pi #piグループをNEWIDグループに変更
exit                      #tmpユーザーをログアウトして次はNEWIDでログインする
---
sudo userdel tmp          #仮のユーザーを削除
sudo passwd NEWID         #NEWIDのパスワードを決定する

外付けハードディスク等にシステムを移動

私はその前に公開鍵を転送してパスワードレス認証にしてます。これはどこにでもあるので省略。

さて外付けディスクにシステムを移動させます。 Raspberry Pi の場合、 USB にディスクを接続すると、 /dev/sda になるのですが、複数の接続があったりすると必ずしもそうなるとは言えませんので、 lsblk なり sudo fdisk -l なりで確認しておいてください。ここでは /dev/sda だとして進めます。

sudo parted /dev/sda          #パーティショニングする
(parted) mklabel gpt          #パーティションをGPTにするWARNINGが表示されるのでYESで進める
(parted) mkpart primary ext4 0% 100%
                              #パーティションを分けずにext4にする
(parted) q                    #partedを終了

さて、パーティショニングも終わったのでいよいよシステムを転送します。 dd コマンドを使います。

sudo dd if=/dev/mmcblk0p2 of=/dev/sda1 bs=32M conv=noerror,sync status=progress

if は現在のシステム (0p1 がブートローダー、 0p2 がシステムです ) 、 of は転送先。ステータスで現状を報告するように指定しましたので、 SD カードの容量分転送して終了します。

転送が終わったら、システムのチェックをかけます。

sudo e2fsck -f /dev/sda1

ここでは、 Fix<y>? というメッセージが数回表示されると思いますので、で応答してください。これも正常に終了したら、リサイズをかけます。余談ですが e2fsck で数十回 Fix メッセージがでたときがありました。これは異常だと判断してパーティショニングからやり直しました。

sudo resize2fs /dev/sda1

これで、転送は終了です。

起動に向けて最終調整

このやり方は、ブートローダーを SD カード上に持ち、その後外付けディスクからシステムを読み込むという手順になります。直接外付けディスクから立ち上げる方法もあるらしい ( 実際試した ) のですが、うまくいきません。何がおかしいのかわからないので、 SD カードが必要な方法に落ち着きました。

さて、後はブートローダーに外付けディスクに入れたシステムを読み込ませる手順を踏みます。

起動時にブートローダーが参照するのは boot/cmdline.txt ですが、ここに使われているのは partuuid です。これをまず調べます。

ls -l /dev/disk/by-partuuid/

これで接続されている外付けディスクの UUID がわかるのでメモしておきます。先に述べた boot/cmdline.txt を開くと、 partuuid を指定している部分があるので、外付けディスクのそれと置き換えます。このファイルの変更点はここだけですので、保存して終了します。

次はブートローダーによって起動されたシステムの中に /etc/fstab の指定があります。外付けディスクの中にある指定なので、いったん外付けディスクをマウントしてその中をいじります。

sudo mount -t ext4 -o defaults /dev/sda1 /mnt

ここでは /mnt にマウントしましたが、どこでも良いです。そしてその中の /etc/fstab を開きます。ちょっとややこしいのですが、 /mnt の中の /etc/fstab を開くので、 /mnt/etc/fstab を開いて編集します。

proc                  /proc           proc    defaults          0       0
PARTUUID=xxxyyyzz-01  /boot           vfat    defaults          0       2
PARTUUID=xxxyyyxx-02  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that

こんな内容になっているはずなので、 / の方の partuuid を先ほどメモしたものに入れ替えます。 /boot の方はとりあえずいじらなくて良いです。

長々と書いてきましたが、これで終了です。ミスがなければ sudo reboot で外付けディスクから 64bitOS が立ち上がります。 ssh で接続すると、

Linux raspberrypi 5.10.63-v8+ #1459 SMP PREEMPT Wed Oct 6 16:42:49 BST 2021 aarch64

というメッセージとともに立ち上がると思います ( バージョンは変わる可能性がありますね ) 。一番最後に aarch64 の文字があれば成功です。後は煮るなり焼くなり好きにしてください。お疲れさまでした。

投稿者プロフィール

kaizawa
kaizawaブロガー
新潟県在住。1964年生まれ、東京オリンピックの年ですね。
突然燃え上がったり、鎮火したり興味の波が激しいので注意が必要です。

コメントを残す

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

CAPTCHA


blog

前の記事

秋らしい画像に変更しました