Fastest way to get started on a new machine


I am curious what people’s recommended workflows for getting started on a new machine are, installing all the software and drivers you normally use. I am mostly interested in Linux but I am curious if better workflows exist in Windows or Mac. Do you have a fancy setup script? Do you have a custom distro? Do you use a virtual machine or container-ish hack? Do you clone your system somehow? Any tools you recommend?

I use Ubuntu. I just install the new system, copy over my home directory (rsync -avP or something like that), and then apt install whatever I find is missing.

Last time I installed a new machine I put all partitions but /boot on ZFS, should make the above even easier next time.

I am assuming that the machine is a desktop/laptop. For a server, I would do a more careful migration of /var, /etc, and other relevant directories. But on a laptop, I pretty much never customize anything there, and just keep a backup in case I need to grep it for some stuff. In fact, I am happy to lose the cruft that accumulates in directories for each new install.

I don’t think that containers make much sense for a laptop/desktop, but these days they have almost zero overhead anyway so why not. I have a colleague who runs Ubuntu on a MacBook Pro within a container (he likes the hardware).


I use Arch Linux.

I re-create my user (that ends up having the same UID and GID because is the first user created). I copy the home from the old machine (preserving permissions). I execute a pacman command in the old machine to check all packages I explicitly installed and install the same in the new machine (or a subset of them, if I perceive many of them are not necessary anymore).

Arch Linux installation process is kinda of manual, but I like it this way. I often end up improving my installation one extra step towards my ideal. One day I will test that disk encryption thingies.

1 Like

I use Debian.

I just install the new system, making use of the tasksel step in the end to install the recommended packages for a desktop system.

I have a gitted shell-script helping re-install all other packages that I need, along the lines of:

# Base utilities
apt install -y emacs git
apt install -y htop tree gparted
apt install -y rsnapshot

# Desktop environment
apt install -y awesome kitty i3lock kupfer lxpolkit

(This list of packages is not kept updated each time I install a package. Instead, before using this script on a new system, I try and make sure it is as up-to-date as possible by looking for apt install commands in the /root/.bash_history files of other machines.)

I then create my user and populate the (initially empty) home directory with

  • config files coming from a few git repos;
  • possibly other files and documents coming from my back-up system.