Upgrading the Hardware

The new 970 EVO has fourfold capacity at half the price of the 950 PRO. With only one m.2 slot being available I proceeded as follows:

  1. save old drive to iso file using Tumbleweed USB Stick.
  2. remove 950 PRO and install 970 EVO.
  3. install Tumbleweed on 970 EVO using default partitioning
  4. boot into USB stick, mount old partitions using “losetup --partscan” and "mount -o subvolid=5 /dev/loop0 … .
  5. use rsync for copying subvolumes
  6. adjust /etc/fstab for new UUIDs and subvolumes.
  7. reinstall grub

Installing Tumbleweed first and rsyncing has some advantages.

  1. thorough testing of the drive using a pristine system with default partitioning
  2. fast update through rsync; less than one minute real time

Default partitioning:

**erlangen:~ #** fdisk -l /dev/nvme0n1              
**Disk /dev/nvme0n1: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors**
Disk model: Samsung SSD 970 EVO Plus 2TB             
Units: sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disklabel type: gpt 
Disk identifier: F5B232D0-7A67-461D-8E7D-B86A5B4C6C10 

**Device        ****  Start****       End****   Sectors**** Size****Type**
/dev/nvme0n1p1    2048    1050623    1048576  512M EFI System 
/dev/nvme0n1p2 1050624 3907029134 3905978511  1.8T Linux filesystem 
**erlangen:~ #**

File systems:

**erlangen:~ #** lsblk -f /dev/nvme0n1            
NAME        FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS 
nvme0n1                                                                             
├─nvme0n1p1 vfat   FAT32       19CF-0B54                             510.4M     0% /boot/efi 
└─nvme0n1p2 btrfs              0e58bbe5-eff7-4884-bb5d-a0aac3d8a344    1.5T    17% /var 
                                                                                   /usr/local 
                                                                                   /srv 
                                                                                   /root 
                                                                                   /opt 
                                                                                   /home 
                                                                                   /boot/grub2/x86_64-efi 
                                                                                   /boot/grub2/i386-pc 
                                                                                   /.snapshots 
                                                                                   / 
**erlangen:~ #**

Changed entries are marked in bold. Home has been converted from ext4 partition to btrfs subvolume.

**erlangen:~ #** cat /etc/fstab  
UUID=**0e58bbe5-eff7-4884-bb5d-a0aac3d8a344**  /                       btrfs  defaults                      0  0 
UUID=**0e58bbe5-eff7-4884-bb5d-a0aac3d8a344**  /var                    btrfs  subvol=/@/var                 0  0 
UUID=**0e58bbe5-eff7-4884-bb5d-a0aac3d8a344 ** /usr/local              btrfs  subvol=/@/usr/local           0  0 
UUID=**0e58bbe5-eff7-4884-bb5d-a0aac3d8a344**  /srv                    btrfs  subvol=/@/srv                 0  0 
UUID=**0e58bbe5-eff7-4884-bb5d-a0aac3d8a344**  /root                   btrfs  subvol=/@/root                0  0 
UUID=**0e58bbe5-eff7-4884-bb5d-a0aac3d8a344**  /opt                    btrfs  subvol=/@/opt                 0  0 
UUID=**0e58bbe5-eff7-4884-bb5d-a0aac3d8a344**  /home                   btrfs  **subvol=/@/home**                0  0 
UUID=**0e58bbe5-eff7-4884-bb5d-a0aac3d8a344**  /boot/grub2/x86_64-efi  btrfs  subvol=/@/boot/grub2/x86_64-efi  0  0 
UUID=**0e58bbe5-eff7-4884-bb5d-a0aac3d8a344**  /boot/grub2/i386-pc     btrfs  subvol=/@/boot/grub2/i386-pc  0  0 
UUID=**19CF-0B54**                             /boot/efi               vfat   defaults                      0  0 
UUID=5605f149-34a7-4301-9bf3-f1f177e35ed6  /home-SSD               ext4   data=ordered                  0  0 
UUID=f5177cae-4082-44ed-9471-b99030f06866  /HDD                    ext4   noauto                        0  0 
UUID=6914-84F3                             /GARMIN                 vfat   user,noauto                   0  0 
UUID=0267-906F                             /GARMIN-KART            vfat   user,noauto                   0  0 
UUID=0e58bbe5-eff7-4884-bb5d-a0aac3d8a344  /.snapshots             btrfs  subvol=/@/.snapshots          0  0 
LABEL=FR735                                /FR735                  vfat   user,noauto                   0  0 
UUID=2f0030b8-7257-4cba-be3e-b33154cda052  /WD25                   ext4   noauto                        0  0 
//fritz.box/FRITZ.NAS                      /fritz.box              cifs   noauto,username=ftpuser,vers=1.0  0  0 
**erlangen:~ #**

Rsync commands for subvolumes:

time **rsync** -a /mnt/C/@/.snapshots/1709/snapshot/ /mnt/B/@/.snapshots/1/snapshot/ 
time **rsync** -a /mnt/C/@/var/ /mnt/B/@/var/ 
time **rsync** -a /mnt/C/@/root/ /mnt/B/@/root/ 
time **rsync** -a /mnt/C/@/opt/ /mnt/B/@/opt/ 
[FONT=monospace]time **rsync** -a /mnt/C/@/srv/ /mnt/B/@/srv/ 
time **rsync** -a /mnt/C/@/usr/local/ /mnt/B/@/usr/local/
[/FONT]time **rsync** -a /mnt/A/temporary/ /mnt/B/@/home/

Disk Space:

**erlangen:~ #** btrfs filesystem usage -T /            
Overall: 
    Device size:                   1.82TiB 
    Device allocated:            315.02GiB 
    Device unallocated:            1.51TiB 
    Device missing:                  0.00B 
    Used:                        313.40GiB 
    Free (estimated):              1.51TiB      (min: 1.51TiB) 
    Free (statfs, df):             1.51TiB 
    Data ratio:                       1.00 
    Metadata ratio:                   1.00 
    Global reserve:              423.16MiB      (used: 0.00B) 
    Multiple profiles:                  no 

                  Data      Metadata System               
Id Path           single    DUP      DUP      Unallocated 
-- -------------- --------- -------- -------- ----------- 
 1 /dev/nvme0n1p2 313.01GiB  2.00GiB  8.00MiB     1.51TiB 
-- -------------- --------- -------- -------- ----------- 
   Total          313.01GiB  2.00GiB  8.00MiB     1.51TiB 
   Used           312.20GiB  1.20GiB 64.00KiB             
**erlangen:~ #**