I’m working on a some materials for a class wherein I’ll be teaching some young, wide-eyed Windows nerds about Linux and we’re including a section we’re calling “foot guns”. Basically it’s ways you might shoot yourself in the foot while meddling with your newfound Linux powers.
I’ve got the usual forgetting the . in lines like this:
$ rm -rf ./bin
As well as a bunch of other fun stories like that one time I mounted my Linux home folder into my Windows machine, forgot I did that, then deleted a parent folder.
You know, the war stories.
Tell me yours. I wanna share your mistakes so that they can learn from them.
Fun (?) side note: somehow, my entire ${HOME}/projects folder has been deleted like… just now, and I have no idea how it happened. I may have a terrible new story to add if I figure it out.
rm *.cwhen I meantrm *.o-
have an nvidia GPU
-
have Fedora
-
download RPM package of drivers for Red Hat (after all, Fedora and Red Hat are… compatible, right?)
-
Everything goes fine
-
Six months later, upgrade to a new version of Fedora
-
oops, kernel panic at boot after the upgrade, and no video to troubleshoot after UEFI boot
-
figure out how to boot into a recovery partition from UEFI
-
figure out how to enable a serial console over a USB device
-
figure out how to connect to the serial console from another computer using another USB device
-
figure out what the kernel panic is from (not the upgrade, but the driver which wasn’t upgraded)
-
figure out how to uninstall the incorrectly installed driver
-
figure out how to install the correct driver
That was a fun three week OS upgrade.
I have a super-n00b question, and I apologize in advance, but, uh…yeah, what is a serial console?
Adding to what DmMacniel said, it’s a hardware interface, often accessed via a USB port (which after all, is the universal serial bus).
Christ you guys are making me feel old. I remember back in the day when a serial connection was made through an actual serial port. I know I have some serial cards around here somewhere. I have also used the tar command on an actual tape… Here’s a fun fact, if your tape drive (big reel to reel looking thing, not a cassette or other kind of ‘tape’) has an issue with rewinding, do not use your finger to manually spin the reel. Use a pencil. I finished reeling my tape back up once and realized I now had a blister on the end of my finger.
https://en.wikipedia.org/wiki/Serial_console
tl;dr:
Serial ports are (for example) commonly RS-232, although other types of ports exist. Imagine it to be a very slow Ethernet device. Because it’s so slow (and the technology predates Ethernet and also has different requirements), it’s usually attached directly to a device instead of to a network. But you could connect a modem to it and it becomes connected to a network device.
It could also be connected to a system console device. These are commonly called terminals. Such devices are often monochrome (especially older ones) because a serial connection is often bandwidth limited (eg, measured in kilobits per second instead of megabits or gigabits). Since it’s so slow, it’s not practical for video, so it’s generally just text-only.
Note that your GPU might also output a system console but rendered on your display at very high resolution and with graphics-drawing capabilities. So a system console would be any console that connects to the system.
What is a console? Well, Wikipedia presents several valid articles and the common theme as far as computers go is that a “console” is typically something that a human and a computer use to interact with each other.
For serial consoles, you might find device files for them at
/dev/tty*. But for general serial devices, it could be any of several different types of device files.Wikipedia’s article on
/devdevices has a pretty decent listing of what kinds of devices you might find and several of them might be classified as a serial port. Any serial port might be connected to a serial console.So in my case, a serial console is:
- 2x USB-to-RS-232 (USB is a serial protocol and is basically “just” another (Universal) (and perhaps high speed) Serial port (Bus), so conversion is super cheap)
- 1x RS-232 null modem cable
That’s pretty much it in a nutshell. Then
- System 1 (the failing system) UEFI boots into repair system partition on a separately attached disk (eg, boot from CD or live USB) to get a local system console
- System 1 repair system mounts the failing system partition
- System 1 modifies failing system
grubconfiguration to enable a serial console on the attached USB-to-serial device file and saves changes, then unmounts failing system partition - Power off System 1
- Remove repair partition device
- Open terminal window on System 2 (recovery system)
- Connect System 2 terminal to the attached USB-to-serial device file using
screen(oh wow those were some old days) - Power on System 1
- System 1 boot enters grub recovery menu which allows fixing the system remotely
To be fair, a lot of that complexity could have been done by either reinstalling, or removing the hard drive and attaching it to another computer. But doing it this way allowed me to poke around and try different ways of solving the issue, rebooting, etc. It was a learning experience worth exploring.
It was years ago though and I think there was some complication with trying to understand what device file (or device number or something) needed to be to work on the correct serial device (there are often multiple)
Wait, that’s a tl;dr to you? o_O
I felt the same way so I scrolled down hoping for a shorter answer, but found yours instead and it made me laugh my ass off because how you wrote it really hit me, are you me? xD so I just wanted to say thanks for making my day even better!
Haha I’m really glad I could make another person laugh today! xD
I’ll quote my current boss’s boss’s boss when he asked a question of me:
@inetknght, can you please not write a book? I need a quick answer
-
Everyone here is talking about rm, but when’s the last time you dd’ed the wrong thing by accident?
You can get tripped up by tab completion, hda vs sda, sda vs sdb, flipping the articles around, he’ll, I’ve even blasted a good drive with /dev/random because I did t pay attention to what computer I’m logged into.
My killer app for multiple terminals open at once, weather through several ttys, xterms, tmux or the other one I don’t use was to type out my dd commands with a ls or something safe making in front of it while I look back and forth compulsively to verify that all the targets are correct.
Only reason dd hasn’t bitten me is that in my head, if and of make perfect sense as input and output.
Doesn’t mean I won’t make that error tomorrow, ofc. But I tend not to alias except harmless stuff to avoid that very problem.
Yup, I did that last year. I wrote a Linux ISO to my hard drive instead of a flash drive. It was interesting watching my desktop slowly fail. Thankfully I was preparing a switch to a different distro, so I had backed up what I needed.
deleted by creator
The dumbest must have been when I went through the list of installed packages on Debian and removed everything named “python-…” since I don’t program in python.
This weirdly makes sense to me. Not long ago would have done the same.
I once removed all groups from my user by using
usermod -ginstead ofusermod -GYou probably mean that you used
usermod -Ginstead ofusermod -a -GThe -a stands for append
But you understand what I mean.
I did the same! After that, I never tried to run that command from memory
I totally pulled a LTT and removed my kernel. >_< There was a “real time” kernel listed in apt, and I installed it because I was curious if it would reduce lock latency for a project I was working on. (I wasn’t trying to solve a problem, just curious) It didn’t and I figured it was probably a bad idea to leave it installed. So I did an apt remove, and the rest went something like this.
Apt: Are you sure you want to remove the your kernel? Y/N
Me: Oh jeez… I don’t want to do that.
Motor Memory: Y <return>
Apt: Are you really really sure? Your computer will not boot if you do this. Y/N
Me: Oh, crap! That’s not what I meant to do. Definitely not!
Motor Memory: Y <return>
Me: No! Why would my brain betray me!?
Fortunately this was on a PopOS machine, so I booted into the recovery partition. Even if fixing it only took a minute, I still felt very very dumb. >_<
Not me, and not Linux, but a school mate found the following bash snippet online
:(){ :|:& };:.Naturally, he tried it on the SunOS servers we had access to for schoolwork. He got his account suspended for the rest of the year.
I think most Linux distros are configured to kill fork bombs nowadays.
I’m still stuck in vi
dd if=/dev/zero of=/dev/sda status=progresshmm why is it so fast
OH
CTRL-C
and then a kernel panic yeah my fs was gone
I once tried to restore replication on a broken MySQL cluster by restoring the backup on the only good, running node.
Trusting tab-completion and pressing enter just a tiny bit too early, resulting in overwriting the work of at least four hours, because the files’ names started the same. That whilst trying to initiate a git repository to prevent that kind of mistake…
“I have 200 GB of unused space in the windows partition, I’ll just plug a live CD, divide that partition and merge it with the Linux one, ggez”
Yes, dividing the windows partition destroyed it. Yes, mixing the windows and ext destroyed Linux. I might have been able to recover something but I was like 18 and I just reinstalled windows in a fit of misdirected anger against Linux.
Due to some poorly placed quotes, I managed to create a subdirectory named
~in my home folder. You can imagine what happened next. Luckily, I had just gotten my backup system up and running the day before, so nothing was lost.Deleted the certs from the sshd daemon which locked me out of a remote server that required and a 2 hour drive to fix.
Wonderful. Just like deleting all the
iptablesrules with a default DENY rule in place *chef’s kiss*. Required calling the service provider to enable a remote console over HTTPS (it was a manual action for them… supposedly).
Reformatted windows and installed Linux.
Wait before the hate. This was the first time I did it and knew nothing about it and didn’t know it would wipe my system. So I lost everything.
On the brighter side, you did delete windows.
Yeah I don’t see the problem here









