USB mass storage mode is only for accessing the microSD card. Linux is reporting that there is no medium because you don't have a card inserted in the phone.
Mass storage mode provides exclusive access to the card, and it provides that access on a raw device level, below even the filesystem. You're using Linux's implementation of vfat, not the phone's. You can't access the card at all from the phone while the computer is; doing so would result in filesystem corruption. That's why you can't access the internal memory this way—Android can't give exclusive access to the internal memory, as it needs to access it.
In order to access the phone's internal memory, you need to use MTP or PTP mode. In this mode, the computer accesses the phone at a file level—the phone OS says "here is a list of files on the device" and the computer says "give me file x". You can use both of these on Linux; and it actually works with a recent-enough version of libmtp.
Your final alternative is to use some app (or the command line on the phone) to export the files over the network. You could run Samba on the phone, or an NFS server, or a web server. Or for pictures, the DLNA stack. Best done over WiFi. (Except for using the command line, this is probably a question for android.SE—but I bet they already have it.)