this post was submitted on 31 Oct 2025
769 points (98.2% liked)

Programmer Humor

27158 readers
2203 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 

I don't fucking know why I can't eject USB hard drives. I installed the SysInternals apps, and best they can tell me is that Dropbox is fucking with the drives. I explicitly told Dropbox to not fuck with USB drives. I don't know who's lying, I just want whoever is fucking with the drives to stop fucking with the drives, OK??? OK.

you are viewing a single comment's thread
view the rest of the comments
[–] azertyfun@sh.itjust.works 16 points 2 days ago (1 children)

Real answer: it depends.

  • Deleting a file in use: no problemo. File is removed from the directory immediately, but exists on disk until last program who had the file open closes. Everyone wins! (Unless you're trying to free up space by deleting a huge file that's being held open by a program and not understanding why the filesystem usage didn't go down)
  • Unmounting a hard drive in use: Will error out similarly to Windows. lsof can tell you which process has which files open. There's nuance with lazy unmounts and whatnot but that should not be used in most cases.

Now in practice you should be wary of one very important thing that changes compared to Windows: Writes are asynchronous on Linux. First the kernel writes to RAM, then it flushes to disk at a later time for performance reasons (this is one of the reasons why writing a bunch of small files is many times faster on Linux than Windows). The upshot is that just because your file copy is "done" doesn't mean you can just yank the USB cable. Always safely unmount before unplugging a storage device on Linux.

[–] user224@lemmy.sdf.org 9 points 2 days ago (2 children)

Writes are asynchronous on Linux.

Unless I mount it with sync, which I wish would be default for non-system drives (which are going to be in fstab anyway). I didn't notice any difference, aside from the lack of guessing when the magic is over. 2GiB goes into black hole, now what?

[–] ChaosMonkey@lemmy.dbzer0.com 5 points 2 days ago

You can also use the sync command to flush cached writes and wait for completion, but I agree that it is a bit cumbersome.

[–] azertyfun@sh.itjust.works 3 points 1 day ago

Strongly disagreed. A lot of removable storage benefits very strongly from async writes. The performance benefits are night-and-day and worth the hassle of explicitly unmounting.

I think a better compromise would be to mount non-journaled + removable storage (e.g. vfat USB keys) as sync.