I use ubuntu
to deal with daily job. Now I buy a new laptop, and I want to migrate my whole system(programs, packages, data, settings, etc) to the new machine.
I know I can copy my home folder to new machine and I will get (almost) all data and settings. But is there a safe way to copy the whole system? Or it's a bad idea?
Prerequisites:
The same version of Ubuntu is installed on both machines. The architecture (32/64 bit) can be different.
Step 1: Store the list of installed packages
Run the following command on the source machine to store the installed packages names in ~/pkglist:
Step 2: Transfer your config
Use scp or rsync or even a flash drive to transfer your home directory (~/, ~/.), the source list (/etc/apt/sources.list) and any other files you customized or installed (like apache config under /etc or softwares on /opt) from the source machine to the target one.
Step 3: Install packages
On the target machine run the following command in a failsafe terminal session to install your packages:
Extract from:
http://eggsonbread.com/2010/01/28/move-ubuntu-to-another-computer-in-3-simple-steps/
First off, How to list all installed packages this question covers exporting (then installing) your exact set of packages.
As you noted, most of your configuration will be in /home.
That being said, each time I do this, I start from scratch so to speak. I'll install ubuntu and manually add packages that I know I use, configuring them one at a time. The list of packages installed on your old computer is a good starting place to find different pieces. Once stuff is more or less set up, I'll then copy over just the data files (but not the config files) from my old computer. This does take more time to do, but it's worth it to switch to the newest version. (My old desktop runs 10.04, my new on currently runs 11.10, although I plan on updating that to 12.04 when it has been around for a month to work off any remaining rough edges) But this plan is for if you're ok with a few things working slightly differently than before. If you need things to be exactly the same, go ahead and do the above.
I was looking for an easier way of doing this and I found Aptik:
I just used it to migrate from an old laptop to a new one, both running Ubuntu 18.04. Seemed to work pretty well.
Most configs and personal files will be in
/home
. For example by default my GNOME theme, shell settings, Chromium history/bookmarks/etc., vimrc, bash_profile, and most settings carried over nicely.An important thing is to preserve permissions and timestamps. See Copy files without losing file/folder permissions The
-a
flag for rsync is ideal for this. Rsync is recommended for large file transfers. Use--partial-dir
to be able to restart progress. I also exclude.gvfs
(not a real file) and.cache
.Also consider installing /home on a separate partition if you are just reinstalling the system on the same hard drive. What are the pros and cons of having a separate home partition?
There are several utilities that can make direct copies of your file system and some (Norton Ghost for example) can adjust your partitions to adapt to the new disk. Software like this allows you to not only copy from disk to disk but also keep a separate, compressed backup for yourself in the future.
There's also the tool
dd
to do this, however it takes a bit more knowledge and research to produce the results that you would like.Remember that you can easily remove your hard disk from one machine to another without any problem.