Moving Linux on a windows drive for dual booting

README! There are many use cases for dual booting and guides for achieving it, this one concerns moving an existing Linux to a drive on which Windows is already installed and dual booting them. In other words, you will be combining existing Windows and Linux systems to coexist on the same hard drive.

I’ve been using the same hard drive for a while and transporting it from laptop to laptop whenever one would fail me (you can do that with linux). Now, after 8 years, I was fearing it was the actual hard drive that would break next so this time, I had to move my actual operating system to another physical disk.

Wanting to be able to dual boot into windows as well, I was stuck in a scenario for which there was not much help on the web. Here’s what I did:

  1. Resize your Windows partition using the disk management tool to make room for Linux and its swap. The new Linux partition must be larger that the one you are moving from.
  2. Reboot to a Linux live CD or GParted and create a bootable Linux and a swap partition (they must be primary) after the Windows partition.
  3. Clone you existing Linux OS partition from the old hard drive to the new.
    1. Plug in your old drive (external SATA, external disk case, extra hard-drive bay, etc.) but leave it unmounted.
    2. dd if=/dev/sdXY of=/dev/sdWZ bs=1M

      where XY is the drive letter and partition of the Linux OS you are moving from and WZ those of the partition you are moving to.

    3. Wait for a while, depending on the size of the partition, this could take a bit because you are cloning every single byte from one partition to the other. In my case, it tool a good solid two hours and half.
  4. Unmount and disconnect your old Linux OS hard drive. In case something goes wrong, simply popping it back in your computer will restore your setup just the way it was before.
  5. Mount your new Linux partition.
  6. From within the Live CD, restore the GRUB2 bootloader by executing
    grub2-install --root-directory /mountPoint /dev/sdW

    where mountPoint is where you new Linux partition is mounted and sdW is the drive where it resides.

  7. Since the partition’s GUIDs have changed you need to update the /etc/fstab file on your Linux with the new ones. Any file editor will do. Look up the new GUIDs for your new OS and swap partitions by running
    ls -al /dev/disk/by-uuid/
  8. Remove the live CD and restart the computer.  From within GRUB2’s boot menu, you should only see your Linux and not Windows, that’s normal. Boot your Linux OS.
  9. Run
    grub-mkconfig -o /boot/grub2/grub.cfg

    GRUB2 will scan your hard drive, find the Windows install and create a new boot configuration file. Now, when you reboot your machine, you will see Windows within the boot menu menu entries.

  10. Finally, since the size of the underlying partition holding your Linux installation has changed, the size of the file system has to be updated as well:
    resize2fs /dev/sdW

Done! Moving operating systems around and getting them to cohabit alongside each other is tricky and far from being straightforward so I hope this guide worked for you. You will most likely have to adapt it to your own situation and if you feel something you did could benefit others, please comment.

Apple wood wine bottle stands

wine bottle stand

Two years ago, we had to fell an old apple tree from my parent’s garden. Wanting to experiment with this unusual variety of wood, I gathered the best logs and took them to a sawmill to have planks made and let them dry for a year in a shed.

Fast forward to last Christmas, not wanting to buy gifts and being left with very little time to come up with something before the 24th, I had the idea of making balanced wine bottle stands for everyone out of that old apple tree. It’s a simple project, it’s can be made in batches, can be gifted along with an actual bottle and would make an awesome souvenir of that tree we had so much fun climbing onto and playing around during our childhood.

Apple tree is a pain to work with, the grain is highly irregular and convoluted and the density of the wood varies widely within the same piece. However, the end result is spectacular, especially on the more weathered down parts of the tree, which have turned multiple shades of pink, brown and black due to parasites and moisture. From log to plank, there was a huge amount of loss but through keeping the project small I managed to get something workable out of all that wood.

 

How to program a new Toyota transponder key

In need of an extra key for your Toyota? Avoid the dealer, they charge an arm and a leg for a simple procedure you can do yourself for free. Searching the web turned up a couple of techniques, but the one that worked for me was found in a youtube comment by user Nazareth434.

My car is a Toyota Matrix 2005 but apparently this procedure is valid for several Toyota models and years. According to the diy-time tutorial, it should work for the following models

  • 2004-2006 Camry
  • 2004-2010 Sienna
  • 2004-2008 Solara
  • 2003-2009 4Runner
  • 2004-2010 Highlander
  • 2005-2010 Scion TC
  • 2008-2009 FJ Cruiser
  • 2003-2009 Rav4
  • 2007-2008 Yaris
  • 2005 Matrix
  • 2005 Corolla
  • 2010 Hilux
  • 2005 Kluger
  • 2010 Hiace
  • 2003-2007 Toyota Sequoia (special instructions)

Diy-time also has procedures for other Toyota models. If nothing including this procedure has worked for you, don’t despair, at least your copy can open doors. Attach the key to a concealed spot under you car and save it for the “oops I’ve locked myself out” type of situation.

Procedure

First, you need a blank transponder key for your model and year. You can get one for 10$ or so through eBay or Amazon. Then, have the key cut by your local hardware store and make sure it fits your ignition lock: you should be able to turn it all the way to the start position and hear the starter going without the engine turning on. With the master key (the black key, not the valet key, which is grey) and the copy in hand, install yourself in the driver’s seat and follow the procedure carefully. It took me about 30 minutes and many tries to get the steps right as there is timing involved. Persevere and and it should work.

  1. Insert the MASTER key in the ignition 5 times, leaving it IN the ignition on the 5th time. Do not turn the key. Don’t rush that step, do it slowly.
  2. Open and close the driver’s door 6 times, leaving the door closed on the 6th time. (the two first steps have to be completed within 30 seconds)
  3. Remove the master key from the ignition. The security light should now be solid red to indicate programming mode. If it’s not, repeat from the beginning.
  4. Insert the new key in the ignition but don’t turn it. Do that step quickly as the computer only stays in this mode for a couple of seconds.
  5. The security light will resume blinking. After 60 seconds (maybe more, be patient), the light will stop blinking and turn off.
  6. Remove the new key, insert the master and turn the engine on and then off.
  7. Done! Test your new key. When you insert it, the security light should stop blinking and the car should start.

The theory

Its wrongly called programming a key but in fact, no key gets programmed by itself, its the car that gets programmed. Keys have an RFID emitter in them which outputs a unique identifier when prompted by the car’s anti-theft device’s reader upon insertion in the ignition. If that identifier is not in the car’s computer valid key identifier list, the car will not start.

What the procedure above does is putting the car’s anti-theft system in programming mode and then telling it that it should include the new key’s id in its list of permitted keys. This is done by doing a set of special steps with the master key in. If you possess the master key, chances are you are the master, but should you loose all you keys, there will be no way of starting the car again other than replacing the anti-theft computer; something the dealer will charge a lot for.

Fixing AMD (ati) radeon display issues on Fedora

Note (09/01/17): also worked on a recent upgrade from 23 to 25.

I had put off system upgrades for so long that I found myself having to go from Fedora 20 to 23. It took a while but everything was going smoothly until I hit Fedora 23 on. There, after the mandatory reboot, hooking up my secondary monitor would freeze the display and screen repainting on some programs (like Eclipse) had become problematically slow and CPU demanding. This being Linux, I scoured the web on a quest to find some clues on what was not configured correctly but nothing came up. I’m running an AMD A6-3420M APU and while AMD provides driver for that chip, they are according to reports very finicky and a pile of trouble to get running.

I resorted to simply downgrading the driver. It was working correctly in the past, so I could see no obvious reason an older version would not do it this time.

First find the version of the driver currently installed:

dnf info xorg-x11-drv-ati

Which should spit out something along the lines of:

Installed Packages
Name        : xorg-x11-drv-ati
Arch        : i686
Epoch       : 0
Version     : 7.6.0
Release     : 0.4.20150729git5510cd6.fc23
Size        : 151 k
Repo        : fedora
Summary     : Xorg X11 ati video driver
URL         : http://www.x.org
License     : MIT
Description : X.Org X11 ati video driver.

So the faulty driver is version 7.6.0. Now, run:

sudo dnf --showduplicates --allowerasing --releasever=24 downgrade xorg-x11-drv-ati

Here, we’re asking dnf to go look in a previous release of Fedora for an earlier version of the driver. If the problems you are experiencing appeared with a recent update, you could avoid the –releasever argument altogether to just revert back to the previous version.

If the downgrade does not work, you rerun the command to roll back the driver even further in the past, but if after a couple times you haven’t had success, the issue probably lies with another package so run a dnf update to and take your investigation elsewhere, maybe the kernel, wayland, X, the window composer or gnome-shell.

When you update your system in the future, you’ll have to run:

sudo dnf --exclude=xorg-x11-drv-ati update

Otherwise, dnf will reinstall the broken later version of the package. This command will also give you packages with broken dependencies. That’s normal, those are packages that share dependencies with the one you have downgraded and for all I know could actually have been the ones causing you trouble. Just let them be.

Make sure you check back from time to time if another version of the offending package has been released by issuing a simple dnf update and checking the version now available.

DIY leather wallet

After 15 years of use and abuse in my sweaty jeans, my wallet had finally reached the end of its run. Looking at a worthy replacement, I started shopping around the web and found several canditates. However, either slightly too bulky or just out of my means, I finally decided to build my own. A tedious search on the web turned up this one, a template for a simple bifold wallet with slots for two cards on each size. Careful analysis of the design indicated that there was much more to leather work than met the eye and instead of cooking up my own design only to risk the wallet not folding properly, I opted to simply follow the instructions (for once). It’s sturdy, maintainable and looks good; hopefully, it will outlast me.

Wanting to offer some as Christmas gifts as well, I ended up making three. Here is abbreviated list of the challenges I encountered during the building:

  • leather is difficult to find, be thorough in you search for sources, call every fabric shop and cobbler in your region and once you find some, get there and feel the material for yourself;
  • sewing leather is long and tedious if you want to do it properly (with saddle stitching in this case), get the right needles and be patient, I ended up going through David Attenborough’s entire series on plants and birds in the course of putting mines together;
  • burnishing the edges of the leather (ie: make them smooth and shiny) is hard and appears to not work on vegetables tanned types; you also need a burnisher, which I build by cutting a section of a branch, hooking it up to a Dremel and then sculpting it to make a groove.