ネットワークブート anchor.png

ストレージをもたないコンピュータや,ストレージを何らかの理由で使いたくないなどの理由で,サーバ上に用意したOSイメージを使用して起動出来るものをネットワークブートと呼んでいる。

ローカルネットワークにあるサーバー上にRaspberry Piがロードするファイル(カーネルやルートファイル)を置いて,Raspberry Piがブート時にそれをロードしてRaspbianを起動させるネットワークブートができるようにしてみる。

Raspberry PiはOSをSDカードに書き込んで利用しているため,数ヶ月から1年程度でMicroSDカードやSDカードが寿命で使えなくなってしまう。
この対策としてもネットワークブートは有用。

ネットワークブートの仕組みの一つにPXE(Preboot eXecution Environment)がある。これは,インテルが考えた仕組みでネットワークブートの代表的なものらしい。

Raspberry Piでネットワークブートするには,モデルによりいくつかの方法がある。

  • Pi,Pi2B,Pi zeroでネットワークブート
    以下のような2種類の方法があります。どちらかの方法で実現出来る。
    • 対応したbootcode.binを使う
      SD/MicroSDカードのFAT/FAT32パーテーションのbootcode.binに,ネットワークブート(PXEブート)可能な物を使用する。
      いつからかは不明だがラズベリー財団が提供する2ndステージブートローダーであるbootcode.bin(ソースコードは公開されていない)が,ネットワーク対応になっているみたい。
    • U-Bootを使用する
      SDカードのFAT/FAT32パーテーションに汎用ブートローダーのU-Bootを入れて,最終ブートステージであるLinuxカーネルを読み込む代わりに使う方法。
  • Pi3B,3B+でネットワークブート
    以下のような3種類の方法があります。どれかの方法でネットワークを実現出来る。
    • GPUのfirmwareのブートローダーを使う
      Raspberry Pi3B,3B+のGPUのfirmwareに,ネットワークブートやUSBストレージからのブートが出来る機能が入っている。
      GPUのOTP-ROMの設定を書き換えることで,このfirmwareによるネットワークブート機能が使えるようになる。(もとに戻すことは不可能)
    • 対応したbootcode.binを使う
      上記と同様。
    • U-Bootを使用する
      上記と同様。
  • Pi4Bでネットワークブート
    Pi4BではブートにEEPROMのブートローダーを使用するように変更されました。
    以下のような方法があります。
    • EEPROMでのネットワークブート
      今までのRaspberry PiのGPU firmwareでのブート機能の代わりに,新たに実装されたEEPROMのブートローダーを使用する。
      Pi4B発売直後の現時点ではネットワークブートやUSB機器からのブートには,まだ対応されていない。
      今後の更新で対応されるとのこと。
    • U-Bootを使用する
      上記と同様。

新しくコメントをつける

題名
ゲスト名
投稿本文
より詳細なコメント入力フォームへ

Front page   Freeze Diff Backup Copy Rename Reload   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)
Counter: 1591, today: 1, yesterday: 1
Last-modified: 2020-12-26 (Sat) 15:08:05 (JST) (1000d) by yuji