題:
在只讀SD卡上運行
hyiu00
2013-02-25 10:57:28 UTC
view on stackexchange narkive permalink

我已經將Raspberry Pi設置為運行XBMC,並且希望它啟動以始終播放SD卡上的播放列表和文件。我已經關閉了Raspbmc自動更新。當我將SD卡切換到“鎖定”位置時,它仍然可以正常運行。現在我的要求是:

  1. “只讀” SD卡系統在我的應用程序中會一直工作嗎?

  2. 由於SD卡始終處於只讀模式,因此,如果我不使用shutdown命令,而只是關閉電源開關,會損壞系統嗎?

  3. 即使這工作可靠,它將始終彈出消息“ Raaspbmc沒有正確關閉”。 Pi開機後有什麼方法可以禁用此消息嗎?

  4. ol>
如果您希望此方法可靠地工作,則必須確保相應的文件系統也已以只讀方式安裝。
六 答案:
Chris Wesseling
2013-08-21 21:16:48 UTC
view on stackexchange narkive permalink

我有類似的用法。我正在使用Pi在建築物入口處窄播網頁。通過電視上的USB端口為Pi供電。

安裝/只讀。

為使其具有防功耗性能,我通過更改 / etc / fstab

  / dev / mmcblk0p2 / ext4默認值,noatime,ro 0 1  

非常簡單。但是功能機器上的某些進程需要進行寫入。

在內存中安裝/ tmp。

很多東西都寫入 / tmp 所以我通過在 / etc / fstab

  tmpfs / tmp tmpfs默認值,大小= 30M 0 0  

我有512MB的Pi,因此我使/ tmp變大了30M。

禁用我不需要寫的服務。

我禁用了 rsyslog 阻止它記錄日誌和 dphys-swapfile ,因為它沒有實際的寫入位置。如果您進行大量佔用內存的繁重工作,則不進行交換運行會帶來問題。就我而言,不是一天只運行一個Midori進程。如何在Pi上 cat /etc/rc2.d/README 進行操作。 (raspbian默認從運行級別2開始,raspbmc可能有所不同)。

讓我執行的服務需要仿寫。

您可以提供對a的寫訪問權限內存中的文件系統,就像live-cd一樣;與聯盟坐騎。但是我不希望為 unionfs或更高版本的 aufs交叉編譯自己的內核。幸運的是, unionfs-fuse 已預先構建。它不能聯合安裝 / ,但是我真的需要嗎?

運行midori我需要X才能工作。 X希望在我以pi身份自動登錄時寫入 / home / pi ,並寫入 / var 中的幾個位置,所以我決定使用unionfs將它們安裝到這些位置。

 #移動原始/ var和/ home asidemkdir / romv / var / romv / home / ro#創建安裝點mkdir / var / home  

,並將2行附加到 / etc / fstab

  unionfs-fuse#/ tmp = rw:/ ro / var = ro / var保險絲,allow_other,nonemptyyunionfs-fuse#/ tmp = rw:/ ro / home = ro /家庭保險絲,allow_other  

這很討厭,因為寫入/ var,/ home和/ tmp的所有內容都都存儲在/ tmp中。但是我只需要讓機器運行8到10個小時,然後電源就會被切斷。

在調整內容時重新安裝讀寫

當我更改網絡時,dhclient編寫的 /etc/resolv.conf 並沒有”

  $ sudo mount / -o remount,rw $ ifdown eth0; ifup eth0 $ sudo reboot  

不要忘記乾淨地關機,或在重新安裝rw之後重新安裝ro。

PS

如果您可以閱讀德語,有一種更清潔的方式(來自archive.org)。 DeutscheGründlichkeit...

avra
2013-02-25 18:07:23 UTC
view on stackexchange narkive permalink

SD卡鎖定位置引腳在PCB上根本沒有連接,因此除非卡具有內部鎖定機制,否則您的鎖定是虛擬的。嘗試在鎖定的SD卡上寫任何東西,然後自己檢查。

scruss
2013-02-25 19:02:25 UTC
view on stackexchange narkive permalink
SD的只讀開關充其量是一個軟件選項。我擁有的幾乎所有設備都將忽略它,如果avra的註釋正確,Raspberry Pi可能無法判斷它是打開還是關閉。因此,對您的問題:
  1. 是的,因為它不是只讀的,所以可以使用。
  2. 是的,它將損壞您的系統。您將需要以只讀方式安裝root,並擁有一個小型ram / tempfs文件系統來處理Linux需要跟踪的內容。
  3. 否,因為您很有可能擁有損壞了文件系統。
  4. ol>
@avra的答案是正確的,因為物理開關檢測到早期RPis中使用的標準尺寸SD卡上寫保護滑塊的位置(我不確定微型卡,我的似乎沒有這樣的東西)沒有連接到任何東西(即卡夾側面的觸點),另一個開關(在卡夾底部)是“卡插入”開關,並且受到RPi的監視。
goldilocks
2013-02-25 20:47:07 UTC
view on stackexchange narkive permalink
  1. 我沒有使用XBMC,但這不是普通操作系統的WRT的好主意,除非您花了一些時間為此目的進行設置。言外之意,如果未明確設置XBMC,那麼也不是一個好主意。

  2. 如果卡真的是只讀的,實際上它不會破壞您的系統,但是,如果它確實是只讀的,則不太可能達到可以運行“關機”的地步。如果您這樣做了(再次表示,您肯定是整個卡確實是只讀的!),請不必擔心關機。只需拔下插頭即可。由於卡上的任何內容都無法更改,所以無論您做什麼都無所謂。

  3. 當然,您可以找到負責創建並編輯它們的init文件(顯然,文件系統必須確實是可寫的。

  4. ol>

    實際上,如果您確實以只讀方式掛載了根文件系統(可能比僅使用鎖定切換更難),則可能無法成功啟動,因為操作系統確實需要寫入磁盤。但是,如果您願意,則可以隨意做任何您想做的事情(並且可以擺脫)。如果該卡為只讀卡,則無法更改,因此不會造成任何傷害。

oktay
2014-03-06 13:10:51 UTC
view on stackexchange narkive permalink

如果只是執行

1。

/ dev / mmcblk0p2 / ext4默認值,noatime,ro 0 1
/ dev / mmcblk0p1 / vfat默認值,noatime,ro 0 1
您具有完全只讀的系統。

2。

您可以使用以下命令啟動Xorg :-logfile /tmp/Xorg.log,找到需要寫訪問權的其他服務,將它們重定向到/ tmp

3。

如前所述,使用

insserv -r dphys-swapfile
insserv -r rsyslog
insserv -r samba(如果已安裝)等來禁用不需要的服務

然後就沒有問題了。好的問題是,只要始終保持RO並始終保持插件/掉電狀態,是否真的不會對SD卡造成任何損害?

最後,一個漂亮的啟動畫面就可以了定制的廉價獨立設備。 :)我喜歡這個想法,可以通過電視的USB端口為PI供電。但這不限於500mA嗎?不確定,但是PI是否需要大約1A?

dhcpclient需要將/etc/resolv.conf以及可能的其他位置寫入/ var。很高興您提到了insserv命令,我需要這些命令。我正在重建設備以獲取新的ca證書。
Darth Vader
2017-06-18 00:21:27 UTC
view on stackexchange narkive permalink

快速瀏覽此在線內容表明,沒有人針對最新版本的XBMC發布任何解決方案。

Goldilocks指出的主要問題是XBMC並非旨在使其只讀。如果您在OpenELEC Media Center論壇上查看此 thread,則這一點會得到進一步發展。普遍的共識是不可能將Kodi只讀。

根據klojum用戶的原因是:

在只讀設備上運行OpenELEC不會發生。 Kodi需要使用視頻信息存儲/更新其數據庫。由於某種原因,系統分區設置為只讀。所有設置都通過第二個/ storage分區。因此,無法通過cmdline或其他方式刪除該選項。每次重新啟動後都無法恢復系統。安裝OE,使其按您的意願運行,並進行完整的備份/映像。在遇到麻煩的情況下將其恢復

這可能是一種解決方法,因為人們已經找到了較舊版本的解決方法,但總的來說,我認為沒有必要。

>

作為使用Kodi兩年的人,我可以理解SD卡損壞的煩惱。但是,還有其他一些更簡單的方法可以解決該問題,其中不包括低級代碼修補。

SD卡損壞的第一大原因是突然斷電。為什麼會發生這種情況有兩個原因。有人在寫SD卡的過程中斷開了Pi的電源。否則係統死機,您必須斷開電源。雖然,我認為第二個原因不太可能導致腐敗。或表明存在另一個故障。

在樹莓派的早期,板上的電源傳輸電路肯定還有一些不足之處。我可以記得曾經導致系統崩潰的日子,只需在打開電源的同時將USB加密狗插入Pi。如果您不相信我,會發現在2011 Raspberry Pi上運行XBMC的問題。另一個問題是,早期的軟件尚未完全成熟。 Pi對台式計算機的看法與以往不同,解決軟件問題需要時間。因此,很多新版本的Kodi很少會受到系統隨機凍結的影響。

要解決突然的功率損耗問題,請通過某種不間斷電源(UPS)為Pi供電。常規的UPS可以使用,但實際上有專門為Pi設計的UPS。像這樣的 Raspberry Pi不間斷電源。如果確實發生系統凍結,則應該為您做好準備。這意味著使用您喜歡的所有設置和應用程序以及首選項來設置操作系統,然後製作SD卡映像。因此,如果出現問題,您可以重新鏡像SD卡。

SD卡將失敗的另一個原因是它已用完。但是,這不是我經歷過的問題。如果您使用知名品牌的高質量SD卡,我想您可能已經解決了一半。要最大程度地減少SD卡的磨損,請確保SD卡處於絕對最小的狀態。

它不應該用作存儲大量電影的存儲空間。

適用於OpenELEC的選項是通過USB驅動器運行它。當然,所有引導文件都必須保留在SD卡上。有很多關於如何執行此操作的教程。 此處看起來很容易理解,但是為了完整起見,我將為您提供概述:

第一步是設置SD卡和USB驅動器。使用MiniTool Partition Wizard之類的程序可將SD卡格式化為FAT32,並具有150MB或更大的主活動分區,實際上,整個SD卡都可以格式化為FAT32。只需確保將分區設置為“主要活動”即可。將SD卡標記為SYSTEM之類的標籤也可能很有用,以便您記住將來的用途。然後將整個USB驅動器格式化為一個主活動分區,文件系統類型為EXT4,再次值得將其標記為STORAGE。

下載並解壓縮OpenELEC後,請轉到根文件夾。然後選擇以下文件:

  openelec.icoREADME.md  

,然後將其複製到SD卡的根目錄中。

下一步,從 target 文件夾複製文件:

  KERNELSYSTEM  

,然後再次將其粘貼到SD卡的根目錄。

然後從 3rdparty / bootloader 文件夾複製文件:

  bootcode.binconfig.txtfixup.datLICENCE.broadcomstart.elf  

並將其粘貼到SD卡的根目錄中。

最後一步是將SD卡上的文件 KERNEL 的文件名更改為 kernel.img

要創建啟動文件,請在SD卡的根目錄中創建一個名為 cmdline.txt 的文件,並在其中添加以下行:

  boot = / dev / mmcblk0p1 disk = / dev / sda1 console = ttyAMA0,115200 kgdboc = ttyAMA0,115200 console = tty1 ssh  

確保關閉並保存文件。從那裡,你很好。信息源建議在USB驅動器上運行XBMC,以提高響應速度。我對此說法不太確定,但是使用此方法不會導致性能下降。

對於您的媒體收藏,我建議將其存儲在第二個驅動器中,無論是USB還是網絡位置。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...