Getting a new SSD and switching to Alpine

After working faithfully for 6 years, my Lenovo IdeaPad 710S laptop’s SSD finally gave out: after using it for 30 minutes to an hour, I’d encounter i/o errors and the laptop would stop working pretty much entirely.

So, instead of throwing out the entire laptop, the rest of which worked fine, I did the sensible thing and just replaced the SSD. We were (as of the time of writing, “are”) leaving for Chicago and so I wanted my SSD soon. Thus we went to Best Buy, even though I could’ve gotten a fully functional SSD for around $20 less if I bought it online. Since I was using a 256GB NVMe SSD, I figured I might as well get another NVMe SSD. The cheapest option was a 512GB SSD, so I ended up getting that.

Replacing the SSD was pretty straightforward: unscrew the cover, unscrew the SSD, replace the SSD, and put all the screws back in place.

If I wanted to, I could’ve cloned the old SSD onto the new one. However, I decided against it for several reasons:

So I decided to install Alpine Linux on my new SSD. In terms of how easy to setup Alpine is, it’s a mixed bag in a couple of interesting ways. It’s by no means “beginner-friendly”, but for an experienced user the setup is so much easier than Arch Linux.

I like Alpine’s apk a lot more than pacman. pacman has arcane letters where apk’s operations are very simple to understand. I also like that apk also doesn’t ask you to confirm where every other package manager does. I believe apk is also a bit faster, but in terms of how fast package managers are, apk and pacman are approximately as fast with everything else being a lot worse.

Alpine also takes a lot of cues from the BSDs. They use doas instead of sudo, and OpenRC instead of systemd. I like doas, and don’t really care about OpenRC vs. systemd.

I’ve had pleasant experiences with Alpine, sans OpenSSL not working (I’ve replaced it with rustls in my projects). Someday I might migrate the Math Advance server to Alpine, in which case my dev and server environments will be identical.1