ネットワークブート 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を使用する
      上記と同様。

新しくコメントをつける

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

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 1881, today: 1, yesterday: 1
最終更新: 2020-12-26 (土) 15:08:05 (JST) (1189d) by yuji