Raspberry Pi に Ubuntu を外付けディスクでヘッドレスインストールする

条件がたくさんあって合致する Web サイトがありません。いくつか参考にさせて頂いたサイトを参照しながら、実行していこうと思います。

なぜそうしたいか、そしてやりたいこと

実は先日来ちょこちょこいじっている MacPro(2006) なんですが、 Web サーバーにしようと思っていたんですね。しかし、いかんせんパワーが足りない。今から 15 年前のマシンですから致し方ないところはあるのですが、 Web サーバーとしてはレスポンスに問題がある。じゃ、どうしようと思ったところで Raspberry Pi にその役を担ってもらおうと思ったわけです。

でもってやりたいことは次の通り。

  • OS は Ubuntu Server
  • 母艦は Raspberry Pi 4B(8GB)
  • OS を収めるのは外付けディスク
  • 基本ヘッドレスでセットアップする

外付けディスクはこれまで他の Raspberry Pi で使っていた 120 GB の SSD を流用しました。これが後々頭を悩ませることになるとは思いもよりませんでした。

ステップ 1 Raspberry Pi のファームウェアを更新する

USB ブートができるようになるためには、 EEPROM に収められているファームウェアを更新する必要があるそうです。そこで一旦、 Raspberry PiOS で立ち上げます。いつも通り sudo apt update && sudo apt -y full-upgrade で最新版にしておきます。

次に、 /etc/default/rpi-eeprom-update を開いて行末を"stable"に書き換えます。更に、 EEPROM を書き換えます。

sudo rpi-eeprom-update -d -a

リスタートすると実際に EEPROM に書き込まれて新しいファームウェアによる起動になります。

ステップ 2 Ubuntu をインストール … できない

このステップ 2 で私の場合 2 日要しました。できる人にはまだほど遠いのを痛感したのです。

基本私は macOS と Raspberry Pi を行ったり来たりしながら作業しようと思っていました。 Ubuntu インストールもささっと終わらせて次の段階に進もうと、進めると思っていました。先にも書いたように、外付けディスクはこれまでも Raspberry Pi につないで使っていたものの流用です。流用ということはフォーマットが ext4 になっているんですね。これでも macOS は読み書きはできなくとも認識すると思っていました。

認識しません。ターミナル上から情報を見ても、ユーティリティのディスクユーティリティから見ても認識しません。読み書きどころかフォーマットどころか候補にも挙がってこないのです。これ、困りました。

となると Raspberry Pi につないでインストールすると言うことになります。手順としては、

  • 落としておいた Raspberry Pi 用の Ubuntu イメージを Raspberry Pi に転送する 
  • Raspberry Pi に外付けディスクを接続する
  • 外付けディスクに dd コマンドで Ubuntu イメージを転送する

簡単ですね。手順が少し違っただけ。そう思っていました。手順通りに行って以前、 Raspberry Pi でも行ったリサイズをかけてみます。エラーメッセージがでます。転送後の外付けディスクは容量 120 GB にもかかわらず 16 GB ほどしか認識されていません。これではダメですね。エラーメッセージはエクスパンドできませんでした。みたいなもので、全く問題解決につながるようなものではありませんでした。

ステップ 3 やり直し・練り直し

Raspberry Pi から Ubuntu をインストールできないなら、 Ubuntu から Ubuntu をインストールできるんじゃないか。ということで、やってみましたがこれもダメ。

インストールは完了して立ち上がってくれるのですが、 2 度目以降リスタートかけたが最後、立ち上がらなくなります。これでうまくいくと書かれているのは Ubuntu ではなく、 Raspberry PiOS の方。 Ubuntu には何かあるのかしら? と思って、再度ググってみました。すると、 raspberry pi 4 で ubuntu20.04 を usb ブートするの巻 | ゆっくり遅報 さんのところで似たようなことをやっています。

ステップ 4 Ubuntu インストール成功

我が家には、 macOS ・ Linux の他にもう一つ Windows11 があります。外付けディスクを Windows11 につないでみると macOS と同じように認識しません。しませんが、フォーマットの方には現れてきます。オッ! これならいけるかも、これにつないで Raspberry Pi Imager で書き込めばいいのではないか。

成功したんですね。 1 度フォーマットして F ドライブとしてマウントさせてやったら、 Raspberry Pi Imager の方でも認識してくれました。実は、フォーマットしてから macOS にもつないでみたんですが、 macOS ではうんともすんともいいませんでした。この辺よく分かっていません。

何はともあれ、 Windows11 上で Ubuntu インストールが完了しました。

後は先ほどのリンクにあるとおり、ブートローダーの圧縮を解いてやって、起動させれば良いことになります。

ステップ 5 SD カードなしで外付けディスクから Ubuntu 起動成功

Ubuntu を Raspberry Pi につないで、 SD カードを抜いた状態にして電源 ON ! Ubuntu サーバーが立ち上がりました。ゆっくり遅報さんのところで書かれていた、 apt 更新の度にブートローダーの圧縮を解いてやるスクリプトも順調に動いています。再起動も問題ありません。ただ、 apt 更新時に Files have not changed, Decompression not needed というアラートが出てきます。ファイルは変更されてないよ。圧縮を解く必要はないぜ。というメッセージですね。若干気持ち悪いのですが、エラーではなくアラートなので無視することにします。

ここまで長かった。長かったけど、起動できただけで Web サーバーとしての設定はこれから、金曜の夜から、日曜の午後まで … こんなに時間がかかるとは思わなかった。さて、これからは Web サーバーとしての設定が待っています。後はじっくり腰を据えてかかります。

投稿者プロフィール

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

コメントを残す

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

CAPTCHA