Lousy Software Policies of Microsoft Windows 10

Been a long time since I had Windows as a primary OS on any machine I cared about. I had forgotten Microsoft’s lousy software policies. Nobody could really forget the lousy software or why <ALT><CTRL><DEL> became ingrained in the mind of generations. You can forget the really bad design when you only let Windows run in a VM.

Well, one has to be more specific when talking about bad design and Microsoft. In this particular case it is forced updates with forced reboots. Microsoft ASS-U-MEs that it is the only OS on your machine and that it controls the boot sequence.

Silly Microsoft! Trix are for kids!

The Trix rabbit

What Happened?

I left the office last night with Windows 10 started and BOINC running. Yes, if you are reading in sequence this post is one day after my previous post. I came out to find a Ubuntu 20.04 LTS login screen. Even after applying all of those updates that got applied yesterday Microsoft decided to push out yet another update forcing a reboot.

Forced reboots are why many corporations don’t allow developers to run Microsoft operating systems as a primary on their desktop. This is especially true in the medical device world where you can leave a long build of Qt or CopperSpice from source running when you go home. Having the host OS reboot and take out the Linux VM running the build really jacks things up.

Microsoft Defensive Strategy #1 – Fix Grub

sudo nano -B /etc/default/grub
Grub configuration

You want to change GRUB_DEFAULT=0 to be GRUB_DEFAULT=saved. At the end you want to add GRUB_SAVEDEFAULT=true. Exit and save the file.

sudo update-grub

That will generate new Grub menu for boot. It tells Grub to default to whatever the last selection was. If you have ten different operating systems installed when some kind of power issue causes your system to reboot, it will reboot to the last chosen OS.

Microsoft Defensive Strategy #2 – Try to configure Windows properly

You can find Windows users complaining to Microsoft directly that this “automatic reboot feature is a cancer.” There are many really long winded less than effective “work arounds” listed on official forums. Most of them seem to center around completely removing the ability to restart. Not just removed for updates, your ability to restart gets disabled as well. There are even some advertisement pumping sites like this one with information that might have been right at some point.

Here’s what I did.

This only works for Windows Pro. You shouldn’t be using “Home” for work anyway. Especially not if you need to leave tasks running overnight or for days.

You have to start by hitting the “Windows Key” and R.

Windows key

Hold down the Windows key and hit R then release both. In the run box that pops up you need to type the following:

gpedit.msc

When that application starts go to full screen mode. On the left navigate your way down:

Computer Configuration
    Administrative Templates
       Windows Components
          Windows Update
Navigate to Windows Update on left side of screen
You will then see a lot of settings on the right side

What people tend to do here is look for a “one & done.” Microsoft deliberately made this difficult. If you try that approach as many have, you still end up with the occasional update reboot happening. I took a more deliberate and measured approach.

Turn off auto-restart for updates during active hours
You are limited to an 18 hour window for “active hours”
Configure auto-restart reminder notifications for updates
240 minutes is as high as you can go
Configure Automatic Updates

Most people miss this rather obvious step. You can limit the damage to one day per week or month here.

Update settings

I changed it to every Thursday at 7am. I also told it to install updates for other products because this machine had word pre-loaded. Some people can remember useless things so they can get buy with one week per month. I always get way to involved in a project and forget little things like “Hey, my PC is going to screw me on the third week of the month.”

If I’m changing settings at a client site, (some allow us to do that, some don’t) I tend to choose 11:30am on Friday. Why? I usually find someone to go get fish and chips with on Friday.

Allow Automatic Updates immediate installation
Automatic installation

If Microsoft does not lie to you, this should be enabled. Why not let them automatically install things that aren’t going to bounce the computer or take down a service?

Turn on recommended updates via Automatic Updates

Recommended updates is a double edged sword. You should get a better experience but you increase the chances of needing a reboot.

Be Careful Here

No auto-restart with logged on users for scheduled automatic updates installations

This is the one and only setting people tend to reach for. It is also the most misleading. Many things you want to leave running uninterrupted don’t require an active login. A good example would be backup software where you schedule a task. On this day at this time it backs up your computer whether you are logged in or not.

Enable this

You need to control this setting along with the day and time. You can’t avoid the reboot, but you can mitigate the damage. Just how good do you think your automatic backup is going to be if updates try to apply while it is running? How about when the computer reboots half way through?

Re-prompt for restart with scheduled installations
Enable this and set it to at least 60 minutes

What we are doing here is assuming some restart will slip through so make Microsoft drag a plow. You can keep postponing while you are there. This is one reason you probably want to set the day and time for when you will be in the office. Yes, it is annoying if there are a lot of updates to apply, but you can personally stop any significant damage.

Should look like this when done

Linux Distros That Suck at Multiple Hard Drives

Some Linux distros really suck at dealing with multiple hard drives. Too many “maintainers” only have a laptop.

Background

You need a wee bit of background before we jump in. Hopefully you can see the featured image. Recently picked up this Lenovo M93p ThinkCentre from eBay. I specifically bought an M93p instead of M83 because I wanted two hard drives. I had a 480 GB SSD I wanted to transfer the Windows 10 over to and I had a 6TB Western Digital Black I wanted to use for the other operating systems.

Why did I buy this particular M93p?

Lenovo M93p Ports

I actually added the PS/2 ports today. The little cable showed up to do that. It already had both serial ports, wifi, and the NVIDIA add-on video card. If your eyes are real good you will notice that on the other side of that Wifi antenna is a parallel port.

Software engineers need a lot of ports. If book sales start picking up I may even have to break down and buy another dot matrix printer to print shipping labels with. Yes, parallel port dot matrix printers are still made. You can buy them from newegg.com today. There are lots of legal requirements to print with impact printers on multi-part forms in various shipping and transport industries. They also do a more economic and reliable job on mailing labels . . . if you buy the right one . . . and you have the proper printer stand.

Printer stand back

The best ones from days of old have both a center feed slot and a rear feed slot to accommodate either type of printer. Long time readers of this blog will remember I started work on a Qt and USB series and then life got in the way. That was all USB serial ports talking to real serial ports. My Raspberry Qt series also involved quite a bit of serial port work. My How Far We’ve Come series also involved quite a bit of serial port stuff as well.

Putting it mildly, I still do a fair bit of serial port work from time to time. If I get done with RedDiamond and RedBug without life getting in the way I’m going to start a new post series using CopperSpice and serial ports. The makers of Qt have honked off their installed base with the new “subscription licensing” for Qt 6.x and beyond. Even more honkable, if that is possible, is the chatter that they are trying to license the OpenSource QtCreator as well. Yeah, people are making a hasty exit from the Qt world and many are headed to CopperSpice.

Sadly Needed Windows

Unlike every other machine in this office, I needed to have Windows on this machine. There is some stuff coming up that will require it. There is no way in Hell I was going to try writing my serial port code using Linux in a VM. I may edit it there, but testing is a completely different story.

You’ve never spent days trying to track down why some characters don’t get through. Worse yet, the serial port just “stops working.” After you do a bunch of digging you find that someone baked in some super secret control strings to do special things in the interface driver of the VM. Nothing nefarious. Usually to support “remoting in” via cable connection.

Boot Managers

In the days of DOS and GUI DOS that Microsoft insisted on calling Windows, this was no big deal. BootMagic and about a dozen other competitors existed to help Noobies and seasoned pros alike install multiple operating systems onto the same computer. Honestly, I can’t even remember all of the different products that had a brief life helping with this very task.

OS/2 had Boot Manager backed in. Those of us needing to develop for multiple operating systems usually ran OS/2 as our primary. It just made life so much easier.

Early floppy based Linux distributions came with Lilo. It was generally pretty good at realizing Linux wasn’t going to be on the primary disk. SCSI controllers could support six drives and distributions were different enough you had to boot and build on each.

Grub

Later many distros went with Grub. To this day Grub has issues. The biggest issue is that each Linux distro adopts new versions of Grub at their own pace and Grub has a bit of history when it comes to releasing incompatible versions.

Adding insult to injury is the fact many Linux distros like to hide files Grub needs in different places. When you run your distros version of “update-grub” (as it is called in Ubuntu) it has to be a real good guesser when it wants to add a Grub menu line for a different distro.

Your second fatal injury happens during updates. Say you have an RPM based distro but have Ubuntu as the primary Grub OS. When your RPM based distro updates and changes the boot options for its own Grub menu entry in its own little world it has no way of informing the Grub that is actually going to attempt booting. Sometimes an “update-grub” will fix it and sometimes it won’t. A bit heavier on won’t that will.

Drives got too big

That’s the real problem. During the SCSI days when 80MEG was a whopper we put each OS on its own disk and just changed the boot device. That was our “boot manager.” Every OS existed in its own little universe.

As drives got bigger various “boot manager” type products could play games with MBR based partitions. Only one partition could be “active” so a tiny little boot manager got stuff into the MBR and it changed the active partition to match the requested OS.

Cheap but effective trick as long as you didn’t need more than four partitions. Only a primary partition could be flagged for active booting. Lilo and the other Linux boot managers started allowing Linux distros to boot from Extended partitions.

Today we have GPT and UEFI

I’m not intimate with how these work. The Unified Extensible Firmware Interface (UEFI) created the spec for GUID Partition Table (GPT). {A GUID is a Globally Unique Identifier for those who don’t know. That’s really more than you need to know.}

Theoretically we can have an unlimited number of partitions but Microsoft and Windows have capped support at 128. The UEFI should be replacing Grub, Lilo, and all of these other “boot manager” type techniques.

We shouldn’t have all of these problems

As you install each OS it should obtain its partition GUID then find the boot device and locate the UEFI partition on it. Then it should look for a matching GUID to update and if not found, create an entry. There is a spec so every entry should be following the same rules.

(If you read up on the OS/2 boot manager you will see that from the 10,000 foot level UEFI and the OS/2 boot manager conceptually have a lot in common.)

When any computer boots from UEFI and there are multiple operating systems in the UEFI partition, UEFI should show the menu and let the user select. This should all be in hardware and firmware now. We shouldn’t have Microsoft trying to lock us into their buggy insecure OS and Linux distros shouldn’t be trying to ham-fist Grub into UEFI.

The Split

I wanted all Linux distros to boot from the 6TB drive. I wanted Windows and UEFI to stay on the tiny SSD. This isn’t unreasonable. As all of the background should tell you, I’ve been doing things like this for decades. I did not want to try and stuff everything on the 6TB.

Each Linux distro would get 500 GB – 800 GB depending on how much I thought I would be doing in them. This means I should be able to put up to 12 different distros on the drive.

That may sound like a lot, but it’s not. You’ve never written code that worked perfectly on a Ubuntu LTS and failed rather bad on some of the YABUs supposedly using that LTS as their base . . . I have. The only way to know things for certain is to have a bunch of test systems. When you are testing serial port (or other device stuff) you need to be running on hardware, not in a VM.

Manjaro was the first failure

Manjaro kernel 5.9.16-1 was actually a double failure. I have this distro running on a pair of machines, but it is the only OS on them. Rather like what they’ve done with the KDE desktop. I rather hate the fact PostgreSQL cannot access the /tmp directory bulk import to restore a database doesn’t work on that platform. There are a few other odd Manjaro bugs as well.

I wanted to do some pacman packaging and some testing of the future serial port code in CopperSpice on Manjaro so it was first on the list. It booted fast and seemed to install clean. Rebooted the computer and boom, Windows came up. Navigated to the Advanced Settings under Settings in Control panel and tried to switch the boot OS. Boom! Windows is the only entry.

(*&^)(*&)(*

Let’s Install Ubuntu!

I had real dread when I reached for Ubuntu. That installer has had a lot of assumptions baked into it over the years. I was pleasantly surprised and slightly disturbed.

Installation went smooth and when I rebooted I was greeted with a Grub menu. Both Windows and Manjaro were on the Grub menu, but, should we really be seeing Grub on a UEFI system with multiple operating systems? Shouldn’t there be a UEFI menu that just has an entry for Ubuntu and when you select Ubuntu shouldn’t that be when you see a Ubuntu Grub menu?

Let’s See if Manjaro Boots Now!

Once I verified Ubuntu could boot and apply updates I rebooted and selected Manjaro. That’s as far as you get. The Lenovo logo stays on the screen and nothing else happens. HP owners have the same problem according to Reddit.

Fedora 33 Was Next

The Fedora installer was the worst of the lot. If you chose the second drive via one of the manual methods, it looked for a UEFI partition on that drive. It wasn’t smart enough to determine what the boot device was and go look there. You couldn’t get out of the screen either. There was no back or cancel, you had to power down.

Summary

Manjaro at least tried to install. It failed to create anything in the UEFI partition of the boot disk and it failed to show any error with respect to UEFI creation failure. It refuses to boot from the entry Ubuntu created for it in Grub. Double failure. I suspect this is due to a combination of super secret stuff needed on the menu entry, Manjaro using a different version of Grub, and Manjaro potentially hiding the files in a place Ubuntu doesn’t know to look.

Fedora failed to get out of the starting blocks. That graphical installer needs a whole lot of work!

Ubuntu worked despite my expectations of abject failure.

Just because Ubuntu worked doesn’t mean every YABU will. Most tend to write their own installers. If the developer working on the installer only has a laptop, they are going to take unreasonable shortcuts.

Related posts:

Fedora 33 Black Screen Again

How to Install PostgreSQL on Fedora 33

Fedora 32 – Black Screen After Login

How to Make Manjaro 20.2 work with NAS

You installed Manjaro because you wanted a modern Linux without Ubuntu bloat. Now you can’t find your NAS.

I gotta tell ya man, it’s getting so you can’t keep anything anymore. Admittedly I’m surprised either my WD MyCloud or the Buffalo NAS I have are still operational. Generally “consumer grade” hard drives meet their 5 year MTB by being powered off for at least 4 of those years.

Every day I come into the office expecting to see one of them dead. Definitely started becoming more and more choosy about what I keep on them. I’ve even bought newer USB drives to plug into them, both expanding their available storage and providing a newer spindle to hold the stuff I would really like to have survive my next round of splattered platter syndrome.

The truly sad part about having 6TB or more of NAS is coming to the realization you either have to back this stuff up or kiss it goodbye when the drive(s) goes. Consumer grade NAS generally have a single drive. Some have a pair of drives, but you have to do a full mirror (cutting storage in half) if you actually want to recover anything. That also assumes the power supply in the unit isn’t what cooks. After that you have to move up to the commercial grade NAS with higher prices and RAID levels. You also have to also keep one of those pricey drives with cartridge on a shelf to swap in at the moment of failure.

Linux distros today are either not installing the pieces of Samba necessary to access older NAS or they are deliberately turning that part off in the configuration. I’ve already written about this problem with Ubuntu 20.04 LTS. Thankfully Manjaro didn’t make the issue quite as obscure as Ubuntu. Open a terminal.

sudo pacman -S manjaro-settings-samba

When that runs you will see something like the following.

After the install

It says you need to reboot for the changes, but I’m running the KDE version of Manjaro and Dolphin too to the changes right away.

Dolphin after install

Just to be complete, here is my Manjaro information.

Manjaro version

Happy NAS!

Making the GigaWare 2600460 Keyboard Work With Ubuntu 20.04 LTS

There was a time when RadioShack was cool and when it had some great cheap products. The GigaWare 2600460 keyboard was one such product. This is sometimes listed as 26-460 and sometimes just called the GigaWare Multimedia keyboard.

It has a pleasant and unusual feel when typing. Some of the modern keyboards are like banging your fingers onto the table top with each stroke. Other membrane keyboards have a bad habit of starting out great but after half a million keystrokes they get so soft your fingers hurt all the way back past the middle knuckle after a few short minutes of typing. The GigaWare 2600460 keyboard doesn’t seem to suffer from that.

Before you stutter and stammer about the half a million keystrokes, you need to consider the life many of us lead today. Between writing software and writing books I’m always cycling through keyboards. Someone counted at one of my client sites with some kind of source analysis tool back when I was thirty something and I had over half a million lines of code in production. I’m north of fifty now and haven’t really slowed down. If anything, the book writing and blog posting has me typing more so today than in my youth. I used to take time out to actually date then.

For some people a keyboard is just what they have to use and for others finding the best one for the job is a personal thing. I write about keyboards often. I’ve even written about RadioShack before. I was a child at a time when RadioShack was cool. I’ve even encouraged other writers to have many different types and styles of keyboards because changing them out and re-learning where the critical keys are can really jar loose the brain.

Audio Keys

Audio control buttons

Normally I only “bud out” when at a client site. I dip into my stash of “space music” and drowned out the distractions around me. I my own office I rarely listen because I want to hear if someone drives up. The remote thing had me missing my space music lately. The volume up/down worked, but the other audio controls did not. Most annoying.

Step 1

Step 1 – click the down arrowhead in the upper right corner (assuming standard desktop and layout) of your screen, then choose settings.

Step 2

Step 2 – Choose Keyboard Shortcuts on the settings menu.

Step 3

Step 3 – click the magnifying glass to open the search window and begin typing “audio” until you see the above shortcuts. You then click on one to see the following.

Step 4

Step 4 – press the key you want to use and save. Repeat for all of the audio controls. Yes, I found it odd the volume up/down didn’t have any shortcuts assigned yet actually worked.

Browser Navigation Keys

Browser keys

I did not find any browser navigation shortcut keys in that menu. Mozilla Firefox seems to recognize the three keys on the far left as backward, forward, and reload. Good enough.

Email Home and Search

Right side of keyboard

Might as well make them all work at this point.

Email client shortcut
Home shortcut

I could never see myself wanting this key to be the home folder shortcut when you have the file navigation thing on the menu so I mapped it to the browser home page. You can map (or not) as you see fit.

Search

Now all of the “special” keys do something and the keyboard still types nice.

Fixing Ubuntu Duplicate Printers

Duplicate printers are annoying. Many times I feel Canonical long ago abandoned the “Just Works” slogan for “Just Ship It!” What makes it worse is the duplicate entries don’t work.

Duplicate printers are happening on every system in my office. Doesn’t matter if the system started with Ubuntu 20.04 LTS minimal beta/pre-release or a full install from the current ISO.

At the very best it is sloppy. At the very worst it is a complete lack of testing. You can’t test an OS with automated test scripts; especially if those automated test scripts are simply there to check a box in the AGILE development process.

Close all of your applications.

Open a terminal and type the following:

sudo apt remove cups
sudo apt autoremove

ls /etc/cups/*

sudo rm -rf /etc/cups
ls /etc/cups/*

The last ls command is just so you can verify everything went bye-bye.

Reboot.

Open a terminal window and type the following:

sudo apt install cups

sudo apt install cups-pdf

Reboot.

All should be right with the world now.