Question: My current situation is:

* One hard disk
* Dual boot Ubuntu 11.04 and Windows 7. Partitions:
	+ 100MB Windows System thingy
	+ 144GB Main Windows
	+ 160GB Ubuntu
	+ 4GB Swap
	+ 12GB System Restore stuff

Now I want to install an 80GB SSD and move Ubuntu to it. AFAIK I need to:

* Shrink the 160GB Ubuntu partition to 80GB
* Copy it over to the SSD
* Change `fstab` to mount the SSD as `/`

How do I do the second? And what do I need to do about Grub?

Answer: 
1) Copying files
================

You want to copy the FILES, not the whole partition ( including its free space ), so you don't need to resize the partition first. Boot from the livecd and mount both the HD and SSD ( after formatting a partition on the SSD of course ), then copy all of the files over:

```
sudo cp -Tax /media/hd /media/ssd

```

Use the correct names for the hd and ssd mount points of course. Then you just need to edit the /etc/fstab on the ssd to point to the new fs UUID ( you can look it up with `blkid` ). Finally you need to install grub on the ssd. 

2) Dealing with GRUB
====================

a) Command line:
----------------

```
sudo -s
for f in sys dev proc ; do mount --bind /$f /media/ssd/$f ; done
chroot /media/ssd
grub-install /dev/ssd
update-grub

```

Of course, use the correct device for /dev/ssd. The whole disk, not a partition number. 

b) "Recommended repair" magic button in Boot-Repair:
----------------------------------------------------

<https://help.ubuntu.com/community/Boot-Repair>

```
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

```

![enter image description here](https://i.stack.imgur.com/6Emng.png)

Finally reboot and make sure your bios is set to boot from the SSD.
I tried to install `Boot-Repair` tool from instruction in the [answer](https://askubuntu.com/a/40454/1548713) of this question on Ubuntu 20.04 (on installed version, not live) to check that everything will be fine on live version:

```
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

```

There was error:

> 
> Cannot add PPA: 'ppa:~yannubuntu/ubuntu/boot-repair'. ERROR:
> '~yannubuntu' user or team does not exist.
> 
> 
> 

Instruction from [here](https://askubuntu.com/a/226064/1548713) helped to me.

Below this instruction (How to install the Boot-Repair tool in an Ubuntu live disc):

```
sudo apt install software-properties-common; \
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"; \
sudo add-apt-repository -y ppa:yannubuntu/boot-repair; \
sudo apt-get update; \
sudo apt-get install -y boot-repair && boot-repair

```

When command:

```
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"

```

was being executed there was the following warning:

> 
> W: GPG error: <http://ppa.launchpad.net/yannubuntu/boot-repair/ubuntu>
> focal InRelease: The following signatures couldn't be verified because
> the public key is not available: NO\_PUBKEY 32B18A1260D8DA0B E: The
> repository 'http://ppa.launchpad.net/yannubuntu/boot-repair/ubuntu
> focal InRelease' is not signed. N: Updating from such a repository
> can't be done securely, and is therefore disabled by default. N: See
> apt-secure(8) manpage for repository creation and user configuration
> details.
> 
> 
> 

But it did not prevent installation of `boot-repair`. It was installed successfully.