Have one computer only? The best method is Clonezilla Live. Just boot off the CD and make images on an external hard drive. It's sort of like the Linux equivalent of Ghost. Of course, it's not Ghost; it's entirely different, yet it is also easy to learn and work with, especially in recovery when disks sizes may have changed. It's certainly worth a spin, and learning about it is very useful and enjoyable if you liked it initially. It does not matter what O/S you are trying to backup or restore.
Have a spare computer that could be used as a server at home or work? The best method is Clonezilla SE. It's far more powerful than Live. With SE, you can PXE boot to the server, pick your image(s), and overwrite everything on your computer - total restoration from a previous date. Or, you can create a zero-troubleshooting environment to cope with the user who has acquired malware that you do not want to deal with for the ten thousandth time: just boot off the network, pick the image, thirty minutes or so later the problem was solved with only about five minutes of your time. It also can multicast an image to same/similar workstation models (chipsets) - even with Windows, drivers and all. If you sysprep a Windows workstation and create an image, then the image could be written to any number of workstations in batches, so that each workstation begins from the Windows "first time" wizard with all of your custom settings included. I once did 40K workstations that way.
I am a big fan, can you tell? A tutorial.
Yes, I think this is a duplicate question.