Hello all,
Situation: We have a linux computer with various software installed on old hardware that may malfunction and be unsupported. To mitigate this risk, we would like to make an image of this machine so that we can run it in a virtual machine.
How do we do this?
Beyond what has been suggested before me on this thread, you can also rescue-boot both the old and the new system that has a disk same-size-or-larger, and just bit-copy the hard drive as a whole (including partition table) over the network, without passing through an 'image' stage. You can either do so securely (but slower) over SSH, or in plaintext if your network is secure (using netcat). See:
https://www.thegeekdiary.com/how-to-clone-linux-disk-partition-over-network-using-dd/ .
Note: The above tutorial suggests using compression when SSH is not involved (not sure why the difference in approaches), which you may wish to consider removing from the pipeline, especially if cloning over fast LAN - as there's a good chance that the compression, which /may/ not reduce the data volume transferred much (unless you're looking at lots of space that is filled with a static pattern like zeros) and the CPU may become the bottleneck instead of the network, and then, מה הועילו חכמים בתקנתם?
DISCLAIMER: Make sure you understand what you do, so you'll not by mistake write TO the source disk from the target (or from nowhere...), overwriting all your data. :) I would say it wouldn't be a problem if you kept backups, but the original question suggests that one may not be available in this case... so, be careful. As a rule of thumb, the dd _of=_ parameter on the _SOURCE_ should NEVER point to anything local, and quite frankly, should NEVER appear on the source altogether...
HTH,
-- Shimi