Earlier quoted context omitted.
Same, but with Debian for almost 20 years. Don't remember how I did it before, but the last few migrations were just `dd if=/dev/sda.old of=/dev/sda.new` and then gparted to enlarge the root partition to fill out the new disk.
How do you know you're not propagating bitrot over time? Feels like a binary here and there may accumulate mismatching checksums over the years from bad hardware or some filesystem error... Not to speak of malware. All it takes is once... Feels a lot safer to do the system- and package installation from scratch and then rsync/dd only /home and /etc.
Your home and /etc actually matter more.