SDカードやLive USBなしでRaspbian OSを実行できますか?

SDカードやLive USBなしでRaspbian OSを実行できますか?

私はRaspbianオペレーティングシステムで動作するPythonベースのGUIアプリケーションを開発しました。停電中にSDカードが破損することがよくあります。 OSイメージを頻繁にバックアップし、SDカードが破損した場合は、もう一度書き込む必要があります。 SDカード/ Live USBなしでRaspbian OSを実行できるソリューションはありますか?

答え1

「RAMで実行」は簡単ですが、問題は解決しません。

電源を切ったときだけカードの取り外し、カードにも書き込みます。

解決策:

  • カードの書き込みを中止してください。
  • ファイルシステムのロギングを有効にします。
  • 正常に終了しますshutdown -h now
  • 再起動するとうまくいきますshutdown -r now

答え2

一部のRPiモデルでは、DHCP / BOOTPとTFTP(ほとんどNFS)を使用してネットワーク経由でRPiを起動できます。これには、DHCP / BOOTP、TFTP、およびNFSサービスを提供する別の永続システムが必要です。RPiは何もなく始まるからです。これはワイヤレスではなくイーサネットでのみ機能します。

RPi 3BとRPi 4に対してこれを行う方法に関する既存のドキュメントがあります。内容はかなり長いので、ここにすべての詳細をコピーするわけではありません。下記のリンクをご覧ください。

  • RPi3BおよびRPi3B+の公式ドキュメント

    RPi3B(RPi 3B+ではない)は、最初にネットワークブートを有効にするために「ヒューズを切断する」必要がありました。

    Raspberry Piをネットワーク起動するには、まずSDカードから起動し、設定オプションを使用してUSB起動モードを有効にする必要があります。これにより、Raspberry Pi SoCのOTP(One Time Programmable)メモリにビットが設定されます。ネットワーク起動を有効にする

    その後、適切なネットワークブートに必要な必要なサービスを提供するように他のサーバーを構成する必要があります(RPi以外のシステムにネットワークブートを提供するのと非常に似ています)。

  • これを行うための追加文書は次のとおりです。永続サーバーが Raspberry OS の代わりに CentOS を実行している場合

  • RPi4もこれを行うことができます;PXEブートコードを更新するには、RPi4を再フラッシュする必要があるかもしれません。以下は抜粋です(さまざまなファイル名で更新する必要があります)。

    sudo apt-get update
    sudo apt-get upgrade
    wget https://github.com/raspberrypi/rpi-eeprom/raw/master/firmware/beta/pieeprom-2019-10-16.bin
    rpi-eeprom-config pieeprom-2019-10-16.bin > bootconf.txt
    sed -i s/0x1/0x21/g bootconf.txt
    rpi-eeprom-config --out pieeprom-2019-10-16-netboot.bin --config bootconf.txt pieeprom-2019-10-16.bin
    sudo rpi-eeprom-update -d -f ./pieeprom-2019-10-16-netboot.bin
    cat /proc/cpuinfo
    

    そしてサーバーの設定をやり直してください(今回はDebianを実行するので、Rasbpberry OSには問題ありません)。

関連情報