I'm planning to make an SD card (or a flash drive) my home directory so as to be able to work on different PCs without much hassle.
Is this a bad idea for some reason?
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.Sign up to join this community
While they are quite reliable (no moving parts), SD cards/USB flash drives can be slower (you probably do not want to run disk-intensive operations from there) and have limited write cycles. From this Super User question:
Flash memory indeed has limited write cycles. However, by now it is unlikely that you'll encounter this within the normal lifetime of such a card.
You will probably want to avoid a journaling file system, as this puts extra strain on the memory chips: for this you can use ext2. (I remember this was the case once, but as noted in a comment, this might not be the case anymore)
I think you'd be OK as long as you backup frequently and replace the card/flash drive if it starts showing errors.
I've ran an entire system from an SD card before (over USB 1.0!) It was extremely slow. I was running OpenBSD. It has
softdep which increased performance by a large amount, though that doesn't transfer to Linux.
I'd say the biggest thing to make sure of is that you mount it with
noatime, this way, you don't get penalized by every read you do. Also, you should have a good reason for doing this. I did it with the purpose of saving power in a basic router setup(where I didn't need more than 1G of space).
This will also be significantly slower unless you use a USB 3.0 port and a matching thumbdrive/SD card reader. USB 3.0 is actually faster than the ubiquitous SATA-2, so in theory if you use USB 3.0, you shouldn't have any performance problems.
Also, you may want to make sure you can log in to your account without your thumb drive just in case
I do this and it works just fine for me. But I only use it on one computer; the biggest problem I see with using the same card for two means you can only use one at a time. Just something to watch out for: I ran into a bit of trouble because the system was trying to mount the /home directory before the SD card was detected, aborting the boot process. I had to alter the boot scripts (Arch Linux) slightly to wait for the card before mounting it and moving on with the boot.
From my experience, I will really suggest NO. On past few years working of Linux environment for my development purposes, the thing that matters most is performance and stability and SD cards are hardly meant for those, I believe they serve as secondary storage more(Please correct me If I am wrong), rather than primary high speed storage such as HDD itself.
One of the most daunting task you will probably face during this campaign, is when you lose your SD card, or corrupt it somehow. Although, this can be fixed, its a lot confusing task for starters. Waiting for help from an online community such as this site itself might not guarantee a solution and you may get stuck with an useless system for days.
If your home folder is not huge and all your PCs have normal connectivity, you could try one or more of these cloud storage services: Dropbox, Google Drive, Sugarsync, Microsoft Skydrive (but there are many more).
We're living in times of cloud storage and ubiquitous connectivity: if you don't have particular constraints, using a SD to bring your documents with you is simply anachronistic.