Is it possible to somehow connect 2 or 3 Raspberry Pis to one SD card and have then all run off one. I understand that reading and setting files may be an issue, but
-
This is certainly an interesting idea that could be looked into. May I ask why you would want to do this, though? I am sure it could be possible, but I can immediately recognise the issue of writing at the same time. File corruption would be very likely with this kind of setup. What would be nice is a method to network boot a Pi from another. Basically, piggybacking on another Pi's OS with only needing an incredibly small SD card client side.– Zeusking19-CodeFeb 1, 2014 at 11:09
1 Answer
This is not possible, in the way you want to do it.
The BCM chip uses dedicated IO lines to the SD card and the OS only has access to this via the Kernel Module, which means the OS must support this kind of data multiplexing (or server if you like) and act as a host.
The problem is only 1 OS can use the SD Card module at a time and not several because of IO synchronisation issues that will corrupt data instantly. Each BCM runs of an oscilator and the internal mechanics decide what speeds to run at. If another Pi at even a slihgly varying clock speed would be connected you would have serious issues. It might be possible by multiplexing the channels, but speed will decrease exponentially since this becomes half-duplex. Say you connect 8 Pi's via a multiplexer.. then the speed will be reduced 8 times. Besides no normal operating system driver is capable of understating this "wait" period and will crash.
It is possible theoretically to have several partitions and have other Pi's boot of these partitions over TCP/IP, but you cannot share the partitions because the driver disallows sharing of certain files to prevent Kernel Panick.