Quote:
Originally Posted by kovidgoyal
Can you manually create files in /media/Kindle Main Memory
|
Using both calibre-mount-helper and a manual mount command fail with a read-only FS. Basically I can mount it manually, read/write as expected with a umask=000, but when I open Calibre, with or without calibre-mount-helper, the FS goes to ro?
Text blob of the commands/output below:
Code:
$ cat /etc/fstab | grep Kindle
/dev/sdb1 /media/Kindle\040Main\040Memory vfat auto,user,rw,umask=000,noexec,uid=1000,gid=100 0 0
$ mount /dev/sdb1
$ calibre &
[1] 9885
...
QGtkStyle was unable to detect the current GTK+ theme.
Failed to read MOBI cover
Failed to read MOBI cover
Failed to read MOBI cover
Failed to read MOBI cover
Failed to read MOBI cover
Failed to read MOBI cover
[Errno 30] Read-only file system: u'/media/Kindle Main Memory/metadata.calibre'
Traceback (most recent call last):
File "/usr/lib/calibre/calibre/gui2/device.py", line 69, in run
self.result = self.func(*self.args, **self.kwargs)
File "/usr/lib/calibre/calibre/gui2/device.py", line 311, in _books
mainlist = self.device.books(oncard=None, end_session=False)
File "/usr/lib/calibre/calibre/devices/kindle/driver.py", line 177, in books
bl = USBMS.books(self, oncard=oncard, end_session=end_session)
File "/usr/lib/calibre/calibre/devices/usbms/driver.py", line 164, in books
self.sync_booklists((bl, None, None))
File "/usr/lib/calibre/calibre/devices/usbms/driver.py", line 305, in sync_booklists
write_prefix(self._main_prefix, 0)
File "/usr/lib/calibre/calibre/devices/usbms/driver.py", line 303, in write_prefix
with open(self.normalize_path(os.path.join(prefix, self.METADATA_CACHE)), 'wb') as f:
IOError: [Errno 30] Read-only file system: u'/media/Kindle Main Memory/metadata.calibre'
$ cd /
$ umount /dev/sdb1
$ sudo fsck.vfat /dev/sdb1
dosfsck 3.0.10, 12 Sep 2010, FAT32, LFN
/documents/Sanderson, Brandon/Alcatraz versus the Evil Librarians (Alcatraz 1) - Sanderson, Brandon.mobi
Contains a free cluster (9088). Assuming EOF.
/documents/Sanderson, Brandon/Alcatraz versus the Evil Librarians (Alcatraz 1) - Sanderson, Brandon.mobi
File size is 363737 bytes, cluster chain length is 319488 bytes.
Truncating file to 319488 bytes.
Leaving file system unchanged.
/dev/sdb1: 77 files, 5667/405900 clusters
$ mount /dev/sdb1
$ cd /media/Kindle\ Main\ Memory/
$ touch test
$ ls
audible documents music system test
$ ls
audible documents music system test
$ calibre &
[2] 10124
$ QGtkStyle was unable to detect the current GTK+ theme.
Failed to read MOBI cover
Failed to read MOBI cover
Failed to read MOBI cover
Failed to read MOBI cover
Failed to read MOBI cover
Failed to read MOBI cover
[Errno 30] Read-only file system: u'/media/Kindle Main Memory/metadata.calibre'
Traceback (most recent call last):
File "/usr/lib/calibre/calibre/gui2/device.py", line 69, in run
self.result = self.func(*self.args, **self.kwargs)
File "/usr/lib/calibre/calibre/gui2/device.py", line 311, in _books
mainlist = self.device.books(oncard=None, end_session=False)
File "/usr/lib/calibre/calibre/devices/kindle/driver.py", line 177, in books
bl = USBMS.books(self, oncard=oncard, end_session=end_session)
File "/usr/lib/calibre/calibre/devices/usbms/driver.py", line 164, in books
self.sync_booklists((bl, None, None))
File "/usr/lib/calibre/calibre/devices/usbms/driver.py", line 305, in sync_booklists
write_prefix(self._main_prefix, 0)
File "/usr/lib/calibre/calibre/devices/usbms/driver.py", line 303, in write_prefix
with open(self.normalize_path(os.path.join(prefix, self.METADATA_CACHE)), 'wb') as f:
IOError: [Errno 30] Read-only file system: u'/media/Kindle Main Memory/metadata.calibre'
$ touch test2
touch: cannot touch `test2': Read-only file system
$ mount | grep Kindle
/dev/sdb1 on /media/Kindle Main Memory type vfat (rw,noexec,nosuid,nodev,umask=000,uid=1000,gid=100,user=vry)
I have it mounted, I can RW to it, I open calibre, and the FS goes back into ro mode?
Thanks, by the by, for your prompt response, I appreciate your help =)
Edit: I then umount and remount it and it's rw again, until I open calibre, and then the FS goes back to ro.