Switching between Linux distributions is a common practice for testing and development.
Switching between Linux distributions is a common practice for testing and development.
I enjoy trying new distributions but don’t want to reinstall everything. The video explains copying your user files and home folder so you can get going quickly. Is this actually a reliable method? What script did the person make, and where can I find it? Thanks for the link!
Porting the /usr folder isn't advisable. It holds most system applications and libraries, which differ across distributions. Moving it is discouraged even between identical distros or on another platform. The /home directory offers a bit more flexibility, but copying it still feels risky without knowing other settings. Many programs require tailored compilation depending on their environment. Missing dependencies or inconsistent naming conventions must be addressed. Not every application is fully compatible as a binary.
You must configure /usr as its separate mount point during installation, then when you switch systems, you can easily reconfigure the same mount point in the new distribution and all resources will be available.
You can obtain your program list from various package managers and reinstall it this way. For example, in Ubuntu you might run: dpkg --get-selections. You can redirect the output to a file using the > command like: dpkg --get-selections > installedPrograms.txt. Avoid simply copying files from /home or /usr, as they contain many configuration files that could interfere with your new installation. You must identify which files are safe to transfer. For instance, if you're using conky on both versions, you might move your .conky folder over, but if switching to a different distro with another KDE version, the .kd5 folder could cause issues.
Consider creating a complete backup at the file level first, then relocate your /home directory.
It's a simple fix that anyone can apply, though the approach depends on your preference. I reviewed the video as well, and it seems Linus didn't specifically reference the user directory—just the general idea of a user managing a GitHub repo. He likely described a custom set of commands (possibly using tools like Ansible) that handle installations and updates automatically. This usually involves downloading files from a remote source, unpacking them properly, or mimicking traditional zip/tar operations to distribute content.
In scenarios where data needs to be moved to a different setup ('foreign' environment), things can get tricky, especially when switching between distributions and package managers. Solutions exist: AppImage binaries often behave like standalone apps, though some still need extra setup. Pre-packaged containers from Flatpak or Snap can also be automated with various methods.
Just a reminder: avoid copying your backup to a new system unless necessary—dotfiles are tricky. These are special files that programs create for user settings, often located like /home/$USER/.config. If a fresh install encounters them, it may cause issues like misconfigured graphics or paths. Generally, you can safely move visible files and folders onto another system.
[That moment when you thought the answer was way too long?] Fuzz0r has a valid argument. I recommend considering a Virtual Machine as a flexible alternative. They’re highly customizable, easier to manage, and can be accessed remotely via RDP/VNC. You could test different OSes without disrupting your main setup or risking data loss.
Another practical tip: if you need to try out various distributions, install the one on an external USB drive. Boot from it while keeping your current desktop intact. Your files stay on your original drive, and the USB can serve as a backup or for quick access.
If you're still unsure, the VM option gives you a sandboxed environment—perfect for experimentation without affecting your primary workspace.