Cloning your Debian Install

Sometimes you need to reinstall a Debian system. Maybe your hard drive is going pear-shaped, maybe you got a new computer, maybe you are replicating a system, maybe you are building a lab. In any case, if you want all the packages that are installed on system 1 on your new/other system 2, here’s an easy way:

  1. On system 1, make a file with your installed/removed packages: dpkg --get-selections > packages.txt
  2. Get a base install done on system 2, and set /etc/apt/sources.list to be the same as on system 1
  3. Get packages.txt onto system 2
  4. Run dpkg --set-selections < packages.txt on system 2
  5. Run dselect install on system 2
  6. Optional: Dance

screen Sulks

Occasionally I put my screen session into a state that I call sulking – it refuses to take new input. This happens in two ways – one, my screen session gets fired into the background, and I left with the message [1]+ Stopped screen; the other seems to lock the screen from showing me any input. In the second state I can navigate among screen sessions, and create new instances, but not type.

After much thrashing about, I learned that when I hit C-a z (Control a, z) I put the session in the background, and it can be returned with the command fg. Similarly, if I hit C-a s I have locked the session to input, and to return it I need to hit C-a q. Good things to know.

Padding Numbers in Filenames

I sometimes find myself with scads of files in a directory that, due to the vagaries of sort() do not show up in the “right” order. For example, 1.png, 2.png, … 751.png.

I was poking around with rename, but I wasn’t finding a good way to do this. Thankfully, a poster on TLUG showed me how to use sprintf to get the results I wanted, like so:

rename -n 's/(\d+)/sprintf("%04d", $1)/e' *.png

Very neat.