Sometimes, life happens, and you wind up with a forgotten password in Windows and have to break into the system. The below article was written for Windows l0, but the creation of an administrator account by copying some critical files about 1/3rd of the way down the page works in Windows 7 as well. All you need is a boot USB to enter Windows PE mode (or you can boot into Linux and do the same thing).

Thankfully, the process of recovering your password in Windows 10 is much the same as it has been in Windows 8 and above, albeit with a few slight tweaks. Here’s how you can recover both your Microsoft Live 10 login, as well as the credentials for any other users registered with the local machine.

~ How to Reset Your Forgotten Password in Windows 10

The short of it:

  1. Boot into Windows PE (or Linux).
  2. Navigate to the OS drive (mount it if in Linux and cd to where you mounted it).
  3. Change into the Windows\System32 directory.
  4. Rename Utilman.exe to Utileman.exe.bak.
  5. Copy cmd.exe to Utilman.exe.
  6. Reboot into Windows.
  7. When it comes to the login screen, click on the Accessibility button. This will open a command prompt.
  8. Create a new user. For example: net user John /add
  9. Add new user to local administrator group. For example: net localgroup Administrators John /add
  10. Reboot.
  11. Login as the new user. You now have free reign to enable the built-in Administrator account, or change passwords on local accounts.
  12. Don’t forget to copy the Utilman.exe.bak back to Utilman.exe and cleanup the temporary account.

This is a reprint of a previous article, by request. The information contained therein is probably out-dated by a few years. Therefore, I make no promise that the instructions below for setting up Epson scanning on Raspberry Pi is any way accurate.

This is the article that almost didn’t happen.  I need my Epson all-in-one for scanning, and if I couldn’t get it working, then I was going to disconnect the Pi, reformat and repurpose (and I have other purposes for one, certainly).  In fact, I had gotten printing working even over Airprint, so this was the last obstacle.  I was prepared to disconnect it, but I decided to give it yet one more try, and I finally got some success. Continue reading “Geek Friday: Setting up Epson Scanning on Raspberry Pi”

Using GRUB is a little harder than using syslinux, but it is required if you want UEFI support. Here’s how to use GRUB2 for UEFI and LUKS encrypted volumes for the .Arch Linux side and still dual boot into Windows 10

[UPDATE: I should have mentioned that this article is built upon previous work I did using LVM on LUKS on an MBR system. There are scripts with comments that can be used to be a recipe for that at]

This article is partly the result of Microsoft’s constant giving of five confusing names for the same thing and just plain backwards way of doing things. It is also partly because overall GRUB is such a flexible and customizable tool that finding all of the information in one spot is unlikely.
Continue reading “How-To GRUB2 for UEFI and LUKS Encrypted Volumes for Arch Linux and Windows 10”

How to do Bitcoin mining on the Raspberry Pi and what not to do.

So, I’ve been busy lately with, among other things, repurposing my Raspberry Pi for Bitcoin mining. Yet, in spite of a proliferation of guides on how to do Bitcoin mining on the Raspberry Pi, I struggled a bit with getting it all setup. So, while this is mostly about getting it all setup, this article is as much about the pitfalls to avoid. Continue reading “Bitcoin Mining on the Raspberry Pi”

How to create USB Multiboot thumb drive with MBR

The typical USB boot drive uses the legacy MBR to boot, which is fine for most utility and Windows installation images up to Windows 7. There are several free applications that can be used to create USB multiboot thumb drive with various strengths and weaknesses, but the most versatile without sacrificing ease of use might be Easy2Boot. If all that is needed is MBR booting from ISO images, then it often is as simple as adding the appropriate ISO image to the correct directory. In addition, using Easy2Boot makes it easier to transition into more sophisticated boots, including UEFI. Continue reading “Create USB Multiboot Thumb Drive w/ MBR”

Tired of getting probed? Here is one way to automatically add probing sites to ufw.


It sometimes seems that there isn’t a range of IP addresses that isn’t filled with idiots who have no life. They are sleaze who won’t go out and earn an honest living. Running a website requires vigilance, and I’ve learned the hard way that you cannot outsource this to some company that throws up some hardware but won’t lift a finger to help you resolve real issues. However, being vigilant shouldn’t mean that you don’t have any more of a life than the idiots who are out causing problems.

Logwatch is a very useful utility for summarizing, analyzing and reporting issues found in various logs on the system. It simplifies everything because you would otherwise be sifting through dozens, literally, of log files on the system looking for problems.

One of the useful features is that it looks for website probing. It doesn’t seem to catch everything, but it catches enough that if it reports on it, you should act on it and not delay. You could, of course, manually block the IP addresses it reports as a probe, and I did that for some time, but it is a continuous process.  Continuous, monotonous tasks are exactly the sort of thing computers were made for, so why not automate as much as is reasonable and leave only the more difficult things in the log for human eyes?  After all, if it is reporting on it, it is egregious enough of an activity to block the IP either individually or within a given range.

So, I wrote a script that could parse the input and email the resulting file. Instead of calling sendmail, then, you tell logwatch to “email” the output through this script, which I called logwatchproc.bash, which will take care of the rest.

I should mention that if you follow DigitalOcean’s instructions in the Logwatch link above, make a note of a couple of things:

It is bad form to ever modify distributed config files. They have a tendency to get overwritten. Furthermore, it turns out it won’t even have the expected behavior. Be sure to:

  1. mkdir /var/cache/logwatch
    cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/

    Then, you can edit the file in /etc/logwatch/conf comfortably.

  2. Change the line:
    mailer = "/usr/sbin/sendmail -t"


    mailer = "/usr/bin/logwatchproc"

Next, you will want to create the file. I recommend putting it in the home directory of an account used for maintenance (which means not in root’s home), and then linking the file into /usr/bin.

Use your favorite linux (not DOS/Windows, unless you want problems) editor and paste this into it:


[ $# -ge 1 -a -f "$1" ] && input="$1" || input="-"
MYBASE="/home/NameOfUser" # Preferably, whatever user you use for maintenance
echo "=========" >> "${LOGLOG}"
echo "${TODAY}" >> "${LOGLOG}"
# Save it first
cat $input > "${LOGMAIL}"
# Email it before something happens
cat "${LOGMAIL}" | sendmail -t
sleep 30
NUMSITES="$(grep probed ${LOGMAIL} | cut -d' ' -f5 )"
echo "NUMSITES = ${NUMSITES}" | tee -a "${LOGLOG}"
if [ "${NUMSITES}." = "." ]
if [ ${NUMSITES} -gt 0 ]
	grep probed -A "$NUMSITES" "${LOGMAIL}" | tail -"$NUMSITES" > "${PROBEFILE}"

	for II in $(cat "${PROBEFILE}")
		echo "$II" >> "${LOGLOG}"
		ufw insert 3 deny from "$II"  >> "${LOGLOG}"
	echo "No further actions needed." >> "${LOGLOG}"

Be sure to change “NameOfUser” to the maintenance account login name, and save it in a convenient location in that accou nt’s home directory, ex: /home/NameOfUser/bin, for testing. Notice as well that I use “ufw insert 3” to keep it near the top (so it doesn’t interfere with later ALLOW commands). If you have any allows at the top you don’t want to overwrite, be sure to adjust this as necessary.

Next, make a symbolic link to it:

ln -s /home/NameOfUser/bin/logwatchproc.bash /usr/bin/logwatchproc

You can test it manually by calling /etc/cron.daily/00logwatch as root. Initially, you might want to test using the sudo command, but it is better to do an “su -” and change to root for final testing, as environment variables can really affect bash significantly.

That’s it!