如何同時掛載 2 個作業系統的文件系統?
我想知道,是否可以讓我的 Raspberry Pi 安裝同樣由數位相機安裝的 SD?
我有一個場景,我拍照的速度相對較快(Raspberry Pi 觸發快門),有時照片會從緩衝區中衝出,然後最終進入 SD 卡。所以,我想在每次快門釋放時檢查 SD 卡的內容,以確保拍攝照片,所以安裝將是只讀的,所以也許這可以安全地完成?
也許答案是SD 卡延長線?
我已經購買了無線創見 SD 卡,但是對目錄內容的輪詢不可靠並且可能很慢。
入侵 Transcend Wifi SD 卡的人 Dmitry Grinberg聲稱 SD 卡上有 linux runnig,並且 SD 的儲存同時由 SD 上的嵌入式 linux runnig 和數位相機(可能也是某種 linux)安裝。他擔心兩個設備安裝相同的儲存。
也就是說,兩個作業系統(卡中的 linux 以及外部連接到它的任何系統)都具有相同的 FAT32 文件系統以讀寫方式安裝。如果這不嚇到你,它應該 - 外部文件系統可以隨意記憶體讀取和緩衝寫入,因此無論內部驅動程序多麼聰明,它都無法擁有完整的畫面。這裡的教訓是不要在沒有仔細考慮後果的情況下寫入 /mnt/sd。
我想知道樹莓派和數位相機之間是否可以做類似的事情。
問候, 弗拉特科
@Celada 的答案是正確的,但是如果您願意玩火併冒著損壞數據的風險,那麼有辦法做您想做的事。
首先,第二個系統必須以只讀方式掛載文件系統。如果您不這樣做,您將損壞文件系統。你似乎已經知道了。
其次,任何從第二個系統訪問文件系統的嘗試都將過時。由於記憶體,第二個系統將始終“看到”系統,因為它在過去的某個時間。您不會看到文件系統的更新——新文件、刪除、文件在寫入時增長。
但是,如果您在第二個系統上刪除記憶體,則可以“更新”第二個系統的“共享”文件系統視圖:
echo 3 > /proc/sys/vm/drop_caches
漂亮的?不。克魯奇?當然。特別是對於不是設計為在設備級別共享的文件系統。
但話又說回來,Oracle 的高性能 QFS 文件系統在其“多讀取器”配置中做到了這一點,其中一個文件系統可以被許多主機讀取:
http://docs.oracle.com/cd/E22586_01/html/E22571/gkxer.html
如果您可以線上找到原始碼,Sun Microsystems 在被 Oracle 收購之前開源了基本的 QFS 文件系統程式碼。
您可以同時在多個系統上安裝塊設備的唯一方法是,如果塊設備包含為此目的而設計的文件系統,例如OCFS2。“普通”文件系統喜歡
ext4
或vfat
不支持這一點。由於數位相機幾乎可以肯定只支持vfat
文件系統類型,因此這是不可能的。市場上存在一些聲稱可以做到這一點的產品(例如帶有 wifi 的 SD 卡),但它們是非常醜陋的黑客。他們採用了一些技巧,例如通過檢查文件中的 JPEG 數據是否完整來嘗試檢測相機何時完成寫入文件,然後希望相機停止訪問該文件,而這永遠無法保證。這些產品可能會為您工作,但同樣也有可能它們不會做任何事情或嚴重破壞您的數據。YMMV。