2015-06-09 57 views
0

我在這裏有一個很頭疼的問題。我們在相距數百公里的地方有多個樹莓小盆。我們需要能夠安全地(遠程)升級它們,因爲本地訪問的價格可能高達幾百歐元。通過GPRS到嵌入式設備的部署

的raspis運行rasbian,/是安裝在RO防止腐敗時,電源被切斷(通常次/天),SD卡上。 SD卡是從相同的基本映像克隆的,但包含手動安裝的軟件包和修改後的文件,這些文件可能在不同設備之間存在差異raspis都有一個USB閃存作爲一個更耐腐蝕的RW驅動器和一個腳本來啓動時格式化,以防驅動器損壞。他們通過不同的可靠性通過GPRS連接回家。

該系統的要求如下:

  • 的配置文件,腳本和二進制文件,在leasts /等/根和家庭優選易於版本GIT中
  • 高效上/從任何降級優化版本到其他通過GPRS - >傳輸文件的增量只
  • 可能性自動回滾最近應用的補丁,如果連接不再工作
  • 根文件系統無法在RW模式下,同時下載的變化,需要存儲的變化本地b在應用之前/

簡單的方法可能是在遠程git存儲庫中保留文件系統的完整副本,在提交之間生成差異文件,將修補程序上傳到該字段並應用它。但是,目前不同raspis上的文件並不相同。這意味着,至少在安裝系統時,文件必須通過類似於rsync -a的同步進行同步。

的程序應該是一起「拯救之間的差異/和SSH文件夾U盤上的文件,安裝/ RW,從文件應用差異,掛載/ RO」的線。 Rsync的確實的差異,獲取和同時應用,所以我的第一個問題是:

1是否存在類似rsync的,可以節省從本地和遠程文件三角洲和後來申請呢?

另外,我還從來沒有一個系統像這樣和drawt是「最接近合法的,我可以拿出」。這裏有很多移動部件,我很害怕我事先沒有想到的事情會導致事情發生可怕的錯誤。其餘的我的問題是:

  1. 我在這裏的基地,是否有一個更聰明/安全(r)的方式來做到這一點?
  2. 如果不是,我應該遵循什麼樣的最佳實踐以及需要特別小心的事情(不要使設備變磚)?
  3. 我該如何處理安裝新程序等事情?繞過數據包管理器,安裝在/ opt?
  4. 如何管理權限/所有者(應用程序邏輯的root + 1用戶)?只是以一切行爲爲根本,希望最好?
+0

這是一個有趣的問題,所以+1,但我認爲這是目前形式太寬,以簡潔的回答。 –

回答

1

是的,這是一個很廣泛的問題。這不會直接回答你的問題,而是爲你的研究提供指導。

一裝置,以防止文件系統損壞被使用的覆蓋文件系統(例如,AUFS,UnionFS),其中根文件系統被安裝爲只讀,並且基於tmpfs(基於RAM)或基於閃存的讀寫被安裝在「只讀」根上。這需要您自己的初始化腳本,包括使用pivot_root命令。由於沒有安裝RW,因此該系統可以穩健地處理斷電。要點是pivot_root前,FS貌似

/  read-only root (typically flash) 
/rw tmpfs overlay 
/aufs AUFS union overlay of /rw over/
的pivot_root

/  Union overlay (was /aufs 
/flash read only root (was /) 

更新到/閃存文件系統後

被重新掛載成可讀寫,做了更新,並重新安裝完成只讀。例如,

mount -oremount,rw <flash-device> /flash 
cp -p new-some-script /flash/etc/some-script 
mount -oremount,ro <flash-device> /flash 

您可能會或可能不會立即看到的變化反映在/ etc取決於什麼是在tmpfs的覆蓋。

您可能發現自己大量使用chroot命令,特別是如果您決定使用軟件包管理器。快速樣品

mount -t proc none /flash/proc 
mount -t sysfs none /flash/sys 
mount -o bind /dev /flash/dev 
mount -o bind /dev/pts /flash/dev/pts 
mount -o bind /rw /flash/rw # 
mount -oremount,rw <flash-device> /flash 
chroot /flash 
# do commands here to install packages, etc 
exit # chroot environment 
mount -oremount,ro <flash-device> /flash 

學習使用補丁命令。有二進制補丁命令How do I create binary patches?

對於所有出錯的情況下的超級恢復,您需要帶看門狗定時器的硬件支持以及從備用(二級)根文件系統執行故障安全引導的功能。

如果您需要防彈產品,您會花費大量的時間和金錢。沒有捷徑。