私は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(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には問題ありません)。