Linux – Using different SSDs types (not only SATA based) as system drive

compact-flashlinuxperformancepower-managementssd

Currently I have a Thinkpad X61s and want to make it both a bit faster and a bit more power efficient.

For that reason I thought that adding SSD drive would make most sense. Unfortunately, because of financial reasons, buying SSD of over 200GB capacity is out of reach for me (not only it would be worth more than the rest of the laptop, but also I currently have a 500GB drive in it, so even such a drive would be kind of a downgrade for me).

During preliminary testing with a cheap Transcend 4GB Class 6 (14MiB/s streaming, 9MiB/s random read) card I experienced boot times to be reduced by half so putting the OS only on it would already would be an improvement. Unfortunately, my system now is about 11GiB in size so anything less than 16GB would be constraining.

In this laptop I can connect additional drives on at least 5 different ways:

  • using SATA-ATA converter caddy in the X6 Ultrabase
  • using internal mini PCIe slot
  • using integrated SDHC slot
  • using CardBus (a.k.a PCMCIA or PC Card) slot
  • using USB

Thankfully, because I use only Linux on this PC the bootability of them is irrelevant as I can put the /boot partition on internal HDD and / on any of the above mentioned Flash memories (as I already did for the SDHC test).

From what I was able to research and from my own experience those options come with rather big downsides or other problems:

SATA-ATA caddy

It has three downsides:

  • I have to carry the Ultrabse with me at all times (it's not really inconvenient, but those grams do add) and couldn't disconnect it when I want to disconnect the battery
  • It makes the bay unusable for the optical drive and occasional quick access to other hard drives
  • the only caddies I could buy have rather flaky controllers in them so putting my OS on it would hamper its stability

Internal mini PCIe slot

This would be an ideal solution, if only I could find real PCIe SSDs, not only devices that could talk only SATA or ATA over PCIe mechanical connection (the ones used in Dell Mini or Asus EEE).

Theoretically Samsung did release such devices but I couldn't find them in retail anywhere.

Integrated SDHC slot

It's a nice solution with a single drawback: the fastest 16GB SDHC card on the market can only do around 35MiB/s read and 15MiB/s write while still costing like a normal 40GB SATA SSD that's 10 times faster. Not really cost-effective.

CardBus (a.k.a PCMCIA or PC Card) slot

Those cards are much faster than the SDHC option (there are ones that can do well over 50MiB/s read in benchmarks) and from what I could find the PCMCIA controller in my laptop does support UDMA so it should be able to deliver comparable speeds.

They still cost similarly to SD cards but at least they provide streaming performance comparable to my current HDD.

USB

That's the worst option. Not only is it limited to 20-30MiB/s by the interface itself the drive would stick out of the laptop so it's a big no no.

The question

As such I think that going the "CF in a CardBus adapter" route will be the best option. My question is: did anyone try using CF cards in CardBus adapters as system drives with Linux on Thinkpad laptops? Laptops in general? What was the real-world performance?

I don't have any CF cards so I can't check how well does it work with suspend/resume, or whatever it's easy to make it work in initramfs (I'm using ArchLinux and SD card was trivial — add 3 modules in single config line and rebuilding initramfs) so any tips/gotchas on this are welcome as well.

Best Answer

Hubert, good summary of the various options. What did you ultimately go with?

One user says that the SuperTalent SR32C7MME is a true mini-PCIe card, not mSATA. If that's true, its claimed 350/80 MB/s read/write write speeds should make it the best choice: http://communities.intel.com/message/143517#143517

As you note, what definitely won't work are the mSATA cards. They physically fit in a latop's mini-PCIe slot, but use a different protocol, which only some very new laptops support.

At first I thought using the laptop's "PC Card" (PCMCIA) slot would make the most sense, but very few SSDs are made in the CardBus form factor, they're all fairly small and expensive, it's not clear whether a CardBus SSD will even work correctly in an adapter in a PC Card slot.

The newer SDXC cards, although not that fast, might still be a good choice, if they actually work in your laptop's SD slot. It sounds like they might not. As you point out, a Compact Flash card in the PC Card should work, but I haven't tried that either.

Hardware examples of each of the above (this stupid website will not let me post actual links to the products, so you'll have to google):

  • $116, 32 GB SuperTalent SR32C7MME:
  • $180, Intel 310 Series 80GB mSATA Enterprise Solid State Disk SSDMAEMC080G2C1 (will not work):
  • $230, Wintec FileMate 96GB 3FMS4D096JM-R:
  • $78, Wintec FileMate 64GB Secure Digital Extended Capacity (SDXC) Model 3FMSD64GBXC-R:
  • $160, Transcend 64GB Compact Flash 400X Model TS64GCF400:
Related Question