저는 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에는 괜찮을 것입니다).