this post was submitted on 21 Apr 2024
262 points (97.8% liked)

Linux

48008 readers
1431 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 13 points 6 months ago (4 children)

I have a super-n00b question, and I apologize in advance, but, uh...yeah, what is a serial console?

[–] [email protected] 9 points 6 months ago

Tl;dr: Stick in a USB cable and the other side gets your console.

[–] [email protected] 9 points 6 months ago (2 children)

You attach a secondary computer via serial (COM port) with your primary computer and then you can open a console on that one. You can access the primary computer as if you would be sitting in front of it.

[–] [email protected] 5 points 6 months ago (1 children)

You probably have to explain what Serial actually is.

[–] [email protected] 3 points 6 months ago (1 children)

I mean serial is just a port that runs in serial. You send something and you receive something afterwards, after you've received you can send again...

[–] [email protected] 2 points 6 months ago (1 children)

Not all people know that, to be fair.

[–] [email protected] 3 points 6 months ago

True. It's not quite common nowadays unless you work in administration or are an enthusiast.

[–] [email protected] 3 points 6 months ago (1 children)

https://en.wikipedia.org/wiki/Serial_port

Because there's going to be kids around here who have never seen this port (other than maybe on a Point Of Sale (POS) system?)

[–] [email protected] 2 points 6 months ago

Lol, I appreciate it, but I'm actually old enough to remember those! I know what a serial port is; I just didn't know what a serial console was or if it was related. Haha.

[–] [email protected] 5 points 6 months ago (1 children)

Adding to what DmMacniel said, it's a hardware interface, often accessed via a USB port (which after all, is the universal serial bus).

[–] [email protected] 6 points 6 months ago (1 children)

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.

[–] [email protected] 2 points 6 months ago

My motherboard which is only a few years old (2ish?) has serial port pin outs.

[–] [email protected] 4 points 6 months ago (1 children)

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 /dev devices 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:

  1. 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)
  2. 1x RS-232 null modem cable

That's pretty much it in a nutshell. Then

  1. 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
  2. System 1 repair system mounts the failing system partition
  3. System 1 modifies failing system grub configuration to enable a serial console on the attached USB-to-serial device file and saves changes, then unmounts failing system partition
  4. Power off System 1
  5. Remove repair partition device
  6. Open terminal window on System 2 (recovery system)
  7. Connect System 2 terminal to the attached USB-to-serial device file using screen (oh wow those were some old days)
  8. Power on System 1
  9. 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)

[–] [email protected] 7 points 6 months ago (2 children)

Wait, that's a tl;dr to you? o_O

[–] [email protected] 3 points 6 months ago (1 children)

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!

[–] [email protected] 1 points 6 months ago

Haha I'm really glad I could make another person laugh today! xD

[–] [email protected] 2 points 6 months ago

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