Best File System for EMMC storage on a very basic Laptop. Opinionated People Welcome

I will have a (hopefully working) used sight unseen 2-in-1 low-end laptop in a few days (or maybe less) that has EMMC storage, and will rapidly see some form of a linux distro (Multiboot to the rescue, I get to rapidly sample live-cds finally!). I’ll likely go with my favorite, Manjaro (Arch base), if distro choice matters. The idea is to maximize longevity without hopefully giving up too much random io performance, because usability. I have a tablet that has worn out EMMC, and while everything else in the 6 year old device is in flawless condition, its as good as scrap parts because of it. I’d like to prevent a repeat if I can.

Hopefully that is more context than you ever needed. Currently I run everything on EXT4 because I have been running everything on EXT4 for ages and it seems to work.

F2FS sounds cool, but is it really the right choice? These things can be complicated and I could spend years learning my way through differences in filesystems and how best to configure them for any given usecase, but it seems to me like this specific area is something best left to the real pros. Should I just stick with EXT4 with the noatime flag and journaling turned off, or should I switch to something else? And if you think I should switch to something else, what do you suggest, and please for the sake of all of us who enjoy pretending we understand things, why do you suggest that filesystem/configuration?

I hope once I have this thing setup to have lots of fun discussing touchscreens+GNU (in a separate thread)

1 Like

F2fs is a good option, but it’s designed for a system that sees limited writes.

What you may consider is mounting your .cache and /tmpand whatnot on ram disks. The best way to reduce writes is to prevent software from writing cache stuff to the disk

That is an interesting suggestion, sgtawesomesauce. I like it.

My concern with that would be giving up ram on a system that already will have far too little even for things like web browsing these days.

It will (if as advertised) only have 2 gigs of non-upgradeable ram.

If it could dynamically grow the ram disks as needed and free up the space when it was done that’d probably work well for all but special cases I’m guessing. I would just have to refrain from doing other stuff while updating and give it room to do its work.

USB drive for /home? Is this eMMC 16/32/64GB? If it has USB 3 then you could grab a couple USB 3 thumb drives and clone it so you have a usable backup that you can carry with you. Given how cheap the drives are, you could keep a couple 32/64GB drives on hand and not worry about burning it out. Also look in to some other method of keeping anything important backed up so you aren’t exclusively relying on thumb drives for critical data.

If you want to get really crazy you could try to see how much space is inside and jam a 2.5" USB 3 HDD or SSD drive inside. I’m pretty sure the smaller capacity 2.5" SSD’s don’t take up the full space of the case they come in.

I’m guessing this is one of the low end Atom processors or similar, so don’t expect miracles. The single core performance is really rough. They have great battery life though so it can be pretty handy if you have realistic expectations.

Sadly, not enough space to add a 2.5" drive, but there is an M.2 slot for the wifi, though I don’t know if it’ll accept it, I might replace that with a cheapo M.2 SSD and go with a USB wifi adapter, but that would be down the line and likely only if the EMMC is toast (aka have no other option). I was hoping to replace that wifi module with one that has GPS, since the point of this thing is its portability (while running full linux/gnu).

It has almost nothing for available ports, but I was considering taking one and hard wiring in an internal USB hub for adding these things (GPS, storage, etc) and breaking out one of the ports somewhere else in the case (possibly a second one as USB3 over a type-c connector), but thats a long-shot, because it being a portable device for the purpose of being super portable and being a 2-in-1 means it can be held in any way like a tablet, or stood on its side, etc, I can’t have USB devices sticking out the side of it all of the time, and wiring in to the board is tricky, and a bit of a pain for the USB3 port too (more wires, pain of a location, etc). I’d only do that if I can find a cheap spare board. If it were a normal laptop, I’d just use some double-sided tape or industrial velcro and stick really thin devices to the lid, but with this it folds back on itself so that won’t work.

I may wind up finding myself a TINY USB3.0 flash drive that sits close enough to flush, but I don’t have high hopes for random IO speeds on regular flash (which is as I understand it very different from EMMC in its performance). That might be a good hope for caching and the /tmp folder though I suppose. I am sure I could live with giving up a 2.0 port even for that, but I’d like to keep the 3.0 port available for making backups and plugging in a hub with other extra junk I might want to use once in a while.

Yeah my goal is to be able to do really low power tasks, read docs and manuals, hopefully do some SDR (software defined radio) stuff just for fun, hoepfully toy with somme mapping software, etc. I also have wanted to toy with making a tablet with full linux+GNU work really well for a decade, and this seems a good chance.

For backups, I am thinking of automating a popup to yell at me to run a backup script over wifi to a local media server every once in a while or something. Never done that before so I don’t know how that’d work. Maybe make a system tray icon for that (never done that before).

This seems to have strayed. So far, we have talked about F2FS and moving .cache and /tmp, and I think concluded they maybe should wind up on a thumb drive. I just realized like a dummy, there is a uSD card slot, which I will be filling with a quality uSD card. They can beat up the uSD if need be. That is an expensive bit of storage to beat up, but what else am I going to do? It is also slow as a dog (even a really nice SD card), but it should do fine I’d think. Maybe I’ll even throw some swap space on there too, just in case, and make sure swappiness is set to the “if death is the only other option” setting. I havn’t had swap on a disk in at least 5 years (have not needed it no matter what I was doing). Should be interesting to see if I could find a sweet spot for it.

Does that sound like I am getting somewhere? F2FS on the EMMC, moving .cache and /tmp (and giving it a bit of swap? maybe a gig, or two for the heck of it? or is that just a waste?) to a uSD card.

Ram disks have a max capacity and only take up the memory that is required for storing data. Ex: you have a ram disk with a capacity of 8gb, but it has 1gb of data. It will take up 1gb of ram, plus a few kb for filesystem level stuff.

So yeah, what I’d do is put /, /usr on emmc, then I’d put /home, /var, /tmp on uSD.

That way your os level stuff that gets read often but seldom written to (use a non-arch distro so you don’t update every day, fedora with deltarpms might be a good choice) can be on that device, then the rest that gets lots of writes is on something removable.

Or, even better, put your boot partition and efi on the emmc and put the rest of it on the SD card.

1 Like

I have never run Fedora, but it is in my list of distros to include in my multiboot flash drive to test on the hardware. I prefer to keep things uniform when I can, but you make a good point about the update frequency, though I don’t actually update things very often excluding security updates. That way I can keep track of what breaks what when something does go wrong. In reality I suspect (but am very possibly totally wrong in my perception), it is probably a similar amount of actual write TIME to the disk as running Ubuntu (again, never ran Fedora so I can’t compare to it), aka a similar amount of data written, just instead of in massive chunks its a few here and there. Pick an LTS kernel and leave what works be kind of thing.

If Fedora has even half the scale of the repos available via AUR/Pacman, and updates are less frequent/more focused on stability and necessary security updates, it would likely fully fit my needs and probably be a much better choice for this use-case.

I definitely would not put the OS on a uSD card unless I had no other choice. They are dog slow (20mb/s ballpark kind of slow reads, 4mb/s if you are lucky on writes). I have lived by raspberry pi before, and it can be done, but I would never choose to return to it (in fact, you can now flip a bit in the newer pi’s to set them to only boot from USB now because a USB3.0 drive over USB2.0 while shared with ethernet is still faster than uSD).

The EMMC I don’t recall on writes but reads are around 90mb/s on most of them (can be faster), similar to an older USB3.0 flash drive in sequential (I think EMMC is faster in random i/o). That’d be a bad time all the time (edit: putting the OS on the uSD). But I would absolutely selectively shift a lot of the stuff from the home folder over to the uSD and suffer a speed penalty for rarely used stuff and things like my documents folder, where I’d be writing to it frequently but the files are small enough to be fine at 20mb/s. I do that with my SSD as is, redirecting my frequently written to Downloads folder to a mechanical drive, along with things like my music directory, which doesn’t need to be acccessed at 550mb/s.

I’ll have to see what the condition of the EMMC is when it arrives. If its in bad shape, I won’t have much of a choice, for now at least. I don’t have any low profile USB flash drives.

Just want to pitch in where I can. I don’t think this is possible as the key is not suited for storage. You’ll have to find an adaptor (which I have not been able to find) and even then, using it as a boot drive may not be possible. Though in that instance you could put just /boot/efi on the emmc.
If you do find an adaptor and such. Feel free to share your experience :slight_smile:

Absolutely. There are ones that are “Half Mini PCI-E” interfaces, and ones that are “NGFF” interfaces, from what I have in my notes so far. This one is an “NGFF” interface. The “NGFF” interface is an M.2 connector. The PCI-E interfaces can be used too, but you need a special kind of card that operates over PCI-E, not sata, which can get really tricky from what I am reading so far. I could have this all wrong too. This is just what I ran across by accident and jammed into my notes so far.

I’ll do a writeup on it though if I actually go through with it and get it working with what I’ve learned and verified

2 Likes