19

So I'm going to give Linux Mint a whirl. As I understand it, /home is where users' content like documents, downloads, and media will be stored.

Because my SSD hard drive is small, I'd like to use a USB hard drive for /home. This raises a couple of questions:

  • Is there anything inherently wrong or bad in doing this?
  • Will it be reasonably safe and reliable, compared to using an internal SATA hard drive?
4
  • 7
    Not a problem. I've operated for months at a time with the entire Linux distro on a USB HDD. Even with USB 2.0, I didn't see any noticeable performance problems. As a practical matter, an external drive is as safe and reliable as in internal one. There is no issue with putting /home on another drive.
    – fixer1234
    Sep 8, 2015 at 0:28
  • 4
    Maybe you intended to this anyway, but please make sure to reformat the disk with a Linux filesystem such as ext4. External disks typically come pre-formatted as NTFS, which is not really suited for /home of a Linux system (for example due to missing permissions, symlinks etc.). Sep 8, 2015 at 17:27
  • /home is where the user's content is usually stored, yes, but you don't have to put it there. You can put /home on an internal drive (and any other important subdirectories) and then link to directories on the USB.
    – Zorawar
    Sep 8, 2015 at 18:54
  • BTW, the actual drive inside the enclosure is most likely that same SATA. If your enclosure is openable (not sealed or glued etc.), they you might try to extract the drive and connect it as a usual 2.5" SATA HDD inside the computer case.
    – Ruslan
    Sep 9, 2015 at 9:13

6 Answers 6

25

Assuming you have a quality USB port, cable, and external drive, it should should be as safe and reliable as using an internal drive, especially if you have USB 3.0, if you are using USB 2.0 you will likely see some very noticeable performance degradation.

4
  • Shouldn't it also be safe and reliable on slower connections, too? I.e., your first phrase is slightly misleading.
    – phresnel
    Sep 9, 2015 at 9:24
  • @phresnel: If you're buying new gear, only cheap stuff is usb2-only at this point. You might be more likely to avoid a hiccup where the computer sees the drive temporarily disconnect with good quality USB3 cabling. If you have existing USB2 gear that you trust not to randomly disconnect/reconnect, then that's fine. Sep 9, 2015 at 10:47
  • Note, the USB controllers and devices add a little latency, and sometime other "surprises" to your disk mounts. It's better if you just mount over SATA connection.
    – SnakeDoc
    Sep 9, 2015 at 15:14
  • 1
    I decided to accept this answer because I went ahead and did it (put /home on the USB 3.0 drive, formatted as ext4), and, I have absolutely thrashed the system with multiple Virtual Machines running off disk images stored on /home. It's been absolutely rock solid.
    – misha256
    Sep 17, 2015 at 21:28
28

You can do this, but it isn't recommended. The biggest reason would be that the hard drive would always need to be connected 100% of the time, which negates the "portable" aspect of a USB hard drive.

If the decision is between an external USB drive or an internal SATA drive, go with the SATA drive. It'd be faster (even on USB3), and there would be no accidentally disconnecting it if you forget that you're logged into a computer that needs the drive to run.

6
  • 12
    Good point if you're talking about a drive used as a portable drive. If you are simply repurposing drives in a USB enclosure and they always remain attached, that's not an issue.
    – fixer1234
    Sep 8, 2015 at 1:13
  • The drive would be connected 100% of the time. Exactly as @fixer1234 puts it, I just want to make use of my portable hard drive because I don't have a spare SATA one. I'm actually going to put the portable hard drive inside the PC case (not sure where I got it, but I have a motherboard USB-header to 2xUSB Port adapter cable in my collection of random stuff, it's designed for exactly this purpose, to install external USB devices internally).
    – misha256
    Sep 8, 2015 at 21:21
  • 10
    @misha256, external USB drives are just ordinary SATA dives in a USB enclosure. If you're going to go to that trouble then it might be worth your while to just extract the drive and attach it directly to a free SATA port on your motherboard. Problem solved.
    – Wes Sayeed
    Sep 8, 2015 at 21:36
  • 1
    @WesSayeed Apparently some hard drive manufacturers are integrating the SATA-to-USB bridge right on the hard drive PCB so you don't actually get a physical SATA connector. But point taken. I'll take the risk of opening it. If it's got a SATA connector, great. If not, I'll just use the USB connector. Either way it's good. In fact, opening it up will improve cooling, a nice bonus.
    – misha256
    Sep 9, 2015 at 3:25
  • 2
    While it seems from comments away from the original question we are talking about a desktop computer specifically here, adding a second SATA drive isn't an option for most laptops but you can get USB "stick" drives that are small enough to leave in a port permanently even on a laptop in a bag. I've seen these used to expand the storage of an SSD based laptop. It obviously isn't as fast as the internal SSD by any stretch but some of the USB3 ones have surprisingly good speed and latency figures. Sep 9, 2015 at 8:57
5

From a security standpoint, there are some issues if the drive is unencrypted and accessible to others. The first one that comes to mind is that your SSH authorized keys reside in your home directory. If someone "borrowed" the drive for a while, copied their own authorized keys to users' home directories, and then put the drive back, it might be possible for them to log in as those users if keys are enabled on the system.

You could obviously do this with an internal drive as well, but the external drive would be a lot more convenient and tempting.

1
  • 1
    Good point, more of a reason to run with encrypted home directories. Sep 9, 2015 at 10:49
5

There is no problem with putting /home on an extermal drive, assuming:

  1. Your external drive does not get unplugged mid operation (neither windows nor Linux likes that. Windows ships with a default setting which makes access a lot slower but safer. Which means "do not unplug it while in use").
  2. Speed will be slower than a direct connection to the SATA or SAS bus. How much slower depends on the connection and for many things even USB 2 (at ~30MB/sec) might be fast enough. (e.g. playing MP3's, playing movies, reading config files, ...)
  3. This does assume that you do power up the external drive before you boot the laptop (else mounting will fail).
  4. It ignore any potential USB driver bugs. Easy enough to test though).

Note that there are lots of stories about external drives being less reliable. I have no idea if this is true or if it is merely a result of having droppable devices which get lugged around in backpacks, going from frost (outside) to hot humid college lecture halls. Maybe a bit of both.

Note 2: Do not get a WD green drive as external drive. They tend to park a lot. This is good for power usage if the drive is used as archive storage and then allowed to spin down. When in active use (either in windows, Linux or any other OS) you might get a drive which spins down every minute, then spins back up, and down, and up, and down, .... This tend to wear out the drive and waiting on it to spin back up adds delays to the OS.

3

It can work, but it is not going to be fast or reliable. I have a system running entirely from USB (because the SATA controller stopped working). I found that a race condition when waking from suspend frequently caused file system corruption.

In my case using a USB hard disk worked more reliable than a USB flash storage. This just means reliability can vary depending on USB device, it does not prove that hard disks are inherently more reliable than flash.

2
  • In my experience Sleep/Suspend/Hibernate has always been hit and miss, even on solid modern machines. That's running Windows of course, not sure if Linux does it better. But since I'm running a desktop, the ability to sleep/suspend/hibernate is not an issue, I won't be using those features.
    – misha256
    Sep 8, 2015 at 21:15
  • @misha256: My experience with Linux suspend/resume has not been good. Closed-source graphics drivers often cause trouble. Without that, it's sometimes ok. Sep 9, 2015 at 10:53
2

While it's possible to do what you're asking (as in the other answers), I would avoid it as I'm not sure what the behaviour would be if it was removed for any reason.

If you are worried about using space up on your SSD, I'd install the OS as normal but then store documents/photos/music/video etc on the external drive.

You could then (sym)link the external harddrive back to the home directory if you want to access them easily.

Is this for a laptop or a desktop? If it's a desktop, could you take the HDD out of its enclosure and install it internally?

2
  • This is for a desktop. If I had a spare SATA hard drive I'd use it, but as it stands, I just have the portable USB 3.0 hard drive. I could open it up, remove the drive itself, but I've heard some manufacturers are building portable hard drives with the SATA-USB bridge built into the drive, which means no SATA connector!
    – misha256
    Sep 8, 2015 at 21:06
  • 1
    But, you just gave me a great idea. I can still put the portable hard drive inside the PC case. There are spare USB headers on the motherboard and I have an adapter cable that can be used internally (USB header to 2 x USB ports, designed for internal use, pretty neat).
    – misha256
    Sep 8, 2015 at 21:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .