目录

FIXME this page should probably be split into multiple pages

Partition layout

remarkable: ~/ fdisk -l

Disk /dev/mmcblk1: 7818 MB, 7818182656 bytes
4 heads, 16 sectors/track, 238592 cylinders
Units = cylinders of 64 * 512 = 32768 bytes

        Device Boot      Start         End      Blocks  Id System
/dev/mmcblk1p1   *           1         611       19544  83 Linux
/dev/mmcblk1p2             612        8241      244160  83 Linux
/dev/mmcblk1p3            8242       15871      244160  83 Linux
/dev/mmcblk1p4           15872      238592     7127072   5 Extended
/dev/mmcblk1p5           15872       16482       19544  83 Linux
/dev/mmcblk1p6           16483       17093       19544  83 Linux
/dev/mmcblk1p7           17094      238592     7087960  83 Linux

Disk /dev/mmcblk1boot1: 2 MB, 2097152 bytes
4 heads, 16 sectors/track, 64 cylinders
Units = cylinders of 64 * 512 = 32768 bytes

Disk /dev/mmcblk1boot1 doesn't contain a valid partition table

Disk /dev/mmcblk1boot0: 2 MB, 2097152 bytes
4 heads, 16 sectors/track, 64 cylinders
Units = cylinders of 64 * 512 = 32768 bytes

Disk /dev/mmcblk1boot0 doesn't contain a valid partition table

The mmcblk1 device is the internal flash storage. As partitions 3, 5 and 6 are not mounted during normal use, I would expect these to be a backup root partition (mmcblk1p3) and areas used for other configuration that needs to be kept by the device or used during firmware update.

Mounted partitions

remarkable: ~/ mount
/dev/mmcblk1p2 on / type ext4 (rw,relatime,data=ordered)
devtmpfs on /dev type devtmpfs (rw,relatime,size=91340k,nr_inodes=22835,mode=755)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
tmpfs on /tmp type tmpfs (rw)
configfs on /sys/kernel/config type configfs (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
tmpfs on /var/volatile type tmpfs (rw,relatime)
/dev/mmcblk1p1 on /var/lib/uboot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
/dev/mmcblk1p7 on /home type ext4 (rw,relatime,data=ordered)
remarkable: ~/ df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               226.9M    147.8M     63.1M  70% /
devtmpfs                 89.2M         0     89.2M   0% /dev
tmpfs                   249.3M         0    249.3M   0% /dev/shm
tmpfs                   249.3M      3.5M    245.8M   1% /run
tmpfs                   249.3M         0    249.3M   0% /sys/fs/cgroup
tmpfs                   249.3M         0    249.3M   0% /tmp
tmpfs                   249.3M      4.0K    249.3M   0% /var/volatile
/dev/mmcblk1p1           19.0M      4.2M     14.8M  22% /var/lib/uboot
/dev/mmcblk1p7            6.5G    783.1M      5.4G  12% /home

/ = root filesystem

This is a ~200M partition used as the Linux operating system root directory (think C: drive in the old Windows world).

Although we haven't seen any new firmware released yet, I would expect this partition to possibly be wiped and replaced when upgrading.

/home = user data

This is a ~6.5G partition used for all the user data. Again, as we haven't seen any new firmware updates released yet, we don't know for sure, but I would expect this partition to be left untouched during a firmware update (although they may need to reprocess the files if they change their file format).

User data directory structure

In the below listing, you can see all the documents are stored in a .local/share/remarkable/xochitl subdirectory of the root user's home directory (/home/root).

You will also notice that there are no human readable filenames and that each “document” has a number of associated files with it, depending on the document type. Human readable information is stored within the .metadata files (described further below).

It is also a very flat directory structure. All .metadata files are stored at the same level, no matter where they are in the hierarchy presented on the reMarkable interface. There are sub-folders for thumbnails, cache and highlights images. The folder hierarchy seen in the reMarkable interface is built using the parent attributes in the .metadata files, with the top level documents and folders having a parent of “”.

Below are examples of:

I don't have any eBooks on my reMarkable and I have cut out most of the rest of the documents from the listing.

remarkable: ~/ find /home/
/home/
/home/lost+found
/home/root
/home/root/log.txt.old
/home/root/.local
/home/root/.local/share
/home/root/.local/share/remarkable
/home/root/.local/share/remarkable/xochitl
/home/root/.local/share/remarkable/xochitl/daf42439-c073-4006-b836-8b0f49609337.cache
/home/root/.local/share/remarkable/xochitl/daf42439-c073-4006-b836-8b0f49609337.cache/0.png
/home/root/.local/share/remarkable/xochitl/daf42439-c073-4006-b836-8b0f49609337.content
/home/root/.local/share/remarkable/xochitl/daf42439-c073-4006-b836-8b0f49609337.highlights
/home/root/.local/share/remarkable/xochitl/daf42439-c073-4006-b836-8b0f49609337.lines
/home/root/.local/share/remarkable/xochitl/daf42439-c073-4006-b836-8b0f49609337.lines.backup
/home/root/.local/share/remarkable/xochitl/daf42439-c073-4006-b836-8b0f49609337.metadata
/home/root/.local/share/remarkable/xochitl/daf42439-c073-4006-b836-8b0f49609337.pagedata
/home/root/.local/share/remarkable/xochitl/daf42439-c073-4006-b836-8b0f49609337.thumbnails
/home/root/.local/share/remarkable/xochitl/daf42439-c073-4006-b836-8b0f49609337.thumbnails/0.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.cache
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.content
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.highlights
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.metadata
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.pagedata
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.pdf
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/19.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/4.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/2.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/17.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/18.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/15.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/11.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/5.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/7.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/10.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/6.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/8.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/12.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/1.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/0.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/3.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/16.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/13.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/9.jpg
/home/root/.local/share/remarkable/xochitl/fd2c4b2c-3849-46c3-bf2d-9c80994cc985.thumbnails/14.jpg
/home/root/.local/share/remarkable/xochitl/a02cdfbb-a75c-4b20-b813-33dd977c4bf8.cache
/home/root/.local/share/remarkable/xochitl/a02cdfbb-a75c-4b20-b813-33dd977c4bf8.cache/0.png
/home/root/.local/share/remarkable/xochitl/a02cdfbb-a75c-4b20-b813-33dd977c4bf8.content
/home/root/.local/share/remarkable/xochitl/a02cdfbb-a75c-4b20-b813-33dd977c4bf8.highlights
/home/root/.local/share/remarkable/xochitl/a02cdfbb-a75c-4b20-b813-33dd977c4bf8.lines
/home/root/.local/share/remarkable/xochitl/a02cdfbb-a75c-4b20-b813-33dd977c4bf8.lines.backup
/home/root/.local/share/remarkable/xochitl/a02cdfbb-a75c-4b20-b813-33dd977c4bf8.metadata
/home/root/.local/share/remarkable/xochitl/a02cdfbb-a75c-4b20-b813-33dd977c4bf8.pagedata
/home/root/.local/share/remarkable/xochitl/a02cdfbb-a75c-4b20-b813-33dd977c4bf8.thumbnails
/home/root/.local/share/remarkable/xochitl/a02cdfbb-a75c-4b20-b813-33dd977c4bf8.thumbnails/0.jpg
/home/root/.local/share/remarkable/xochitl/00de970e-5a17-4e52-b19e-a8fda3347f9f.content
/home/root/.local/share/remarkable/xochitl/00de970e-5a17-4e52-b19e-a8fda3347f9f.metadata
/home/root/.local/share/remarkable/xochitl/f21a3d3d-efb2-4292-aff2-55142b7221e5.cache
/home/root/.local/share/remarkable/xochitl/f21a3d3d-efb2-4292-aff2-55142b7221e5.content
/home/root/.local/share/remarkable/xochitl/f21a3d3d-efb2-4292-aff2-55142b7221e5.highlights
/home/root/.local/share/remarkable/xochitl/f21a3d3d-efb2-4292-aff2-55142b7221e5.lines
/home/root/.local/share/remarkable/xochitl/f21a3d3d-efb2-4292-aff2-55142b7221e5.lines.backup
/home/root/.local/share/remarkable/xochitl/f21a3d3d-efb2-4292-aff2-55142b7221e5.metadata
/home/root/.local/share/remarkable/xochitl/f21a3d3d-efb2-4292-aff2-55142b7221e5.pagedata
/home/root/.local/share/remarkable/xochitl/f21a3d3d-efb2-4292-aff2-55142b7221e5.pdf
/home/root/.local/share/remarkable/xochitl/f21a3d3d-efb2-4292-aff2-55142b7221e5.thumbnails
/home/root/.local/share/remarkable/xochitl/f21a3d3d-efb2-4292-aff2-55142b7221e5.thumbnails/0.jpg
/home/root/log.txt
/home/root/.bash_history
/home/root/.bashrc
/home/root/.vimrc
/home/root/.ssh
/home/root/.ssh/authorized_keys
/home/root/.vimrc~
/home/root/.config
/home/root/.config/reMarkable
/home/root/.config/reMarkable/remarkable-test-app.conf
/home/root/.config/remarkable
/home/root/.config/remarkable/xochitl.conf

Metadata file format

A notebook

remarkable: ~/ cat /home/root/.local/share/remarkable/xochitl/a02cdfbb-a75c-4b20-b813-33dd977c4bf8.metadata
{
    "deleted": false,
    "lastModified": "1510442047333",
    "metadatamodified": false,
    "modified": true,
    "parent": "00de970e-5a17-4e52-b19e-a8fda3347f9f",
    "pinned": false,
    "synced": false,
    "type": "DocumentType",
    "version": 0,
    "visibleName": "Notebook"
}

A folder

remarkable: ~/ cat /home/root/.local/share/remarkable/xochitl/00de970e-5a17-4e52-b19e-a8fda3347f9f.metadata  
{
    "deleted": false,
    "lastModified": "1499259452366",
    "metadatamodified": true,
    "modified": true,
    "parent": "",
    "pinned": false,
    "synced": false,
    "type": "CollectionType",
    "version": 0,
    "visibleName": "Personal"
}

Content file format

remarkable: ~/ cat /home/root/.local/share/remarkable/xochitl/a02cdfbb-a75c-4b20-b813-33dd977c4bf8.content
{
    "extraMetadata": {
        "LastColor": "Black",
        "LastTool": "Ballpoint",
        "ThicknessScale": "1"
    },
    "fileType": "",
    "fontName": "",
    "lastOpenedPage": 0,
    "lineHeight": -1,
    "margins": 100,
    "pageCount": 1,
    "textScale": 1,
    "transform": {
        "m11": 1,
        "m12": 1,
        "m13": 1,
        "m21": 1,
        "m22": 1,
        "m23": 1,
        "m31": 1,
        "m32": 1,
        "m33": 1
    }
}

Note: the transform entry stores the transformations to the viewport subsequent to a crop action while reading the document. m11 stores the scaling factor of the height / vertical axis, and m22 stores the scaling factor of the width / horizontal axis. All the other values are unused. Values smaller than 1 lead to a zoom out, with white space around the image. Negative values are not accepted / lead to no display whatsoever.

Pagedata file format

remarkable: ~/ cat /home/root/.local/share/remarkable/xochitl/a02cdfbb-a75c-4b20-b813-33dd977c4bf8.pagedata
P Lines small

This file contains one line per document page, listing for each page the template selected.

Lines file format

copied from stucule's reddit post with permission

The drawings are stored in a proprietary format (.lines file) with the following properties (deduced through extensive experimenting):

Notes:

Libraries/code parsing the format:

Notable folders

/usr/share/remarkable

This folder contains: