Here are my notes on copying the content of an old storage hard drive over to a new. The label of the old hard drive is "archive" and the label of the new hard drive is "archive_2017". It is assumed that your old hard drive will be mounted at "/archive".
NOTE: There's no guarantee that this will work for you, and some parts might have been left out unintentionally. You need to double-check everything before doing it yourself!
Insert new hard drive and check its name:
sudo lshw -C disk
RESULT:
...
*-disk
description: ATA Disk
product: ST2000DM006-2DM1
vendor: Seagate
physical id: 0.0.0
bus info: scsi@4:0.0.0
logical name: /dev/sdc
version: CC26
serial: Z4Z73TZD
size: 1863GiB (2TB)
...
Look for the product name or size which matches your new hard drive (in this case it is 2TB) and note the logical name, in this case /dev/sdc, it will be used later.
Open Gparted and format the hard drive as ext4, select "gpt" as partition table type:
HDD: /dev/sdc
partition: /dev/sdc1
LABEL: archive_2017
UUID: 1e37f41d-5e07-41e6-855a-0b82aef893c7
PARTUUID: 4c5c2ea6-674d-47f9-b358-5898965a14fc
Chown the partition, exchanging "USERNAME" with your user name
sudo chown -R USERNAME:USERNAME /media/USERNAME/archive_2017/
sudo chmod -R 755 /media/USERNAME/archive_2017/
Test it is mounted
ls /media/USERNAME/archive_2017 -la
Test the difference in content between two hard drives with diff
diff /archive/ /media/USERNAME/archive_2017/
Copy over the content from old to new hard drive with rsync. First, dry-run rsync:
rsync -avhW --dry-run --no-compress --progress /archive/ /media/USERNAME/archive_2017/
Run without --dry-run if it looks good, which will copy the files. This could take some time, dependent on how many files you got.
Find the UUID for the new HDD with
sudo blkid
RESULT:
/dev/sdb4: LABEL="archive" UUID="cb13a23c-14f7-4d40-bc5e-73a1b655e748" TYPE="ext4" PARTUUID="00080ea0-04"
/dev/sdc1: LABEL="archive_2017" UUID="1e37f41d-5e07-41e6-855a-0b82aef893c7" TYPE="ext4" PARTUUID="4c5c2ea6-674d-47f9-b358-5898965a14fc"
Insert the UUID for the new HDD in fstab, so it mounts automatically at boot
sudo vi /etc/fstab
Show which partitions are mounted, and mount points. /dev/sdb4 is old HDD, and /dev/sdc1 is new HDD.
df -aTh | grep dev/sd
/dev/sdb4 ext4 1,3T 1,1T 129G 90% /archive
/dev/sdc1 ext4 1,8T 1,1T 688G 61% /media/USERNAME/archive_2017
Let the update take effect, or simply restart the computer
sudo mount -a
RESULT:
df -aTh | grep dev/sd
/dev/sdb4 - - - - - /archive
/dev/sdc1 ext4 1,8T 1,1T 688G 61% /media/USERNAME/archive_2017
/dev/sdc1 ext4 1,8T 1,1T 688G 61% /archive
RESULT after shutdown and restart, during which the old HDD was removed
df -aTh | grep dev/sd
/dev/sda1 ext4 184G 50G 125G 29% /
/dev/sdb1 ext4 1,8T 1,1T 688G 61% /archive
/dev/sda2 ext4 1,9G 204M 1,5G 12% /boot
The new hard drive should now be the "/archive"-drive.
For more info on rsync, see https://serverfault.com/questions/43014/copying-a-large-directory-tree-locally-cp-or-rsync/505758#505758