Just wanted to share my experience moving to Linux from MacOS. Very satisfying, but of course not at first. I think my patience has improved a lot too lol.
I started out trying live bootables on my 2012 MBA. 4GB RAM, 60GB HDD. Not a beast really, but it is my only computer. I obviously couldn’t risk ending up without a working OS, so the only option was dual boot from an external drive. Bought an SSD connected via USB and started trying to install distros. Initially Fedora Workstation. Was a mess. Slow, wifi was not working well, odd crashes etc… Decided to start over with something lighter, but all other installers crashed halfway through. I kid you not I shot my back again bent over my small laptop i without working peripherals trying to install different distros. My doctor was not happy when I came back and told her I fucked up my back again because of my posture lol. Apparently, a shitty USB leads to crashes on most installers. I knew Anaconda worked tho, so I went back to a lighter DE with Fedora, XFCE. Set up an install on the SSD with a shared partition I could access from both MacOS and fedora. No big permission issues yet.
Then fixing network drivers. There is a lot of info about what chip needs what driver, a lot of which is incorrect apparently, because my chip which was supposed to work with bcma needed broadcom-wl. The joy when I remembered USB tethering was a thing… For a laptop with no ethernet plug this was a godsend. Got the drivers, got wifi.
And since then, many “issues” I encountered where simply things that generally happened behind the scenes on MacOS I didn’t even know where happening. Learning about these things has been very gratifying, and gives a lot of respect for a polished OS that just works like magic. Eventually, an issue on MacOS I could not solve due to it being a walled garden made me switch to Linux as a daily driver, and once I got over CMD and CTRL being swapped it sped up my workflows and runs better overall. More tweaking tho of course.
There are odd quirks but I found fun solutions for some, and began planning and learning to remedy others. Mostly, everything is working really well. I am having a lot of fun!
My tip for anyone struggling with getting started with linux, set up a log function so you can easily log any relevant changes you make, and have it accessible from somewhere else (like a shared partition or external drive for example). This way you know what you have done and can use that to fix whatever you fuck up. Also, make a knowledge base with the sources you find useful. I have a small kb in UpNote now so I can look up how some things were done instead of having to search and find the right guides over and over.
Could you explain what you mean by a custom log function?
It is not as cryptic as it sounded I just explained it badly.
Log everything you do in human readable text, because realistically as a beginner going through machine generated logs is not very fun, and .bash_history will be filled with stuff that isn’t relevant always.
It is just a bash script that logs a message with the current date to a file I can access from MacOS as well (on the shared partition) so that I can see what I did if I mess up too bad…
Edit:
Here it is:
# Log argument to changelog.txt with current date and time. function log() { local changelog="/run/media/jamie/DUAL/changelog" local text="$(cat $changelog)" if [ "$1" == "--view" ]; then cat $changelog else printf "$text\n$(date +%D:%H:%M): $1\n" > $changelog fi }
Each line looks like this:
03/16/25:11:49: Running dnf upgrade
I will probably add some stuff so I can get the last 5 lines or something if I want, but at the moment this is really fine.
Rather than reading the whole log just to add a line to it, you can use
>>
to append to the end of the file.Nice I didn’t know that ^^ should probably learn at least the basic bash operators, I am just hacking together the different commands I happen to know at the moment really
Edit: why echo instead of printf?
This was causing a lot of issues with newlines, like when I fetched the log to view it my $ was right after the log entry so I switched it back. But it is probably useful in the future to use >> instead :)
Also. If you do want to add an option to show the last few lines of the log using
tail
instead ofcat
will do it.Thanks that is real helpful! A lot easier than what I had fuzzily in mind