Attach the HDD, make sure the power supply is strong enough.
I am using a Western Digital 2.5" 500GB HDD with USB 2.0 (WDC_WD5000BMVV). I think they where sold as Elements Portable SE as produced in ~2010-2011.
For testing purposes I attached the drive to my Windows PC and formatted it exFAT.
Attach the HDD to the Raspberry Pi. Make sure the red LED stays on and there are no voltage messages
vcgencmd get_throttled → throttled=0x0in my case it's 0x50000 meaning there was a) under voltage and b) cpu throttling, both at least once nothing currently
Use lsblk to see the attached drive:
lsblk -o NAME,SIZE,LABEL,VENDOR,MODEL,SERIAL,FSTYPENAME SIZE LABEL VENDOR MODEL SERIAL FSTYPE
sda 465.8G WD WDC_WD5000BMVV-11GNWS0 WD-WXA1AB0X0193
`-sda1 465.8G backup_srv ext4
mmcblk0 119.3G 0x900c530e
|-mmcblk0p1 256M bootfs vfat
`-mmcblk0p2 119G rootfs ext4
Check the drive again with fdisk:
sudo fdisk -l /dev/sda:Disk /dev/sda: 465.76 GiB, 500105740288 bytes, 976769024 sectors
Disk model: Elements 1023
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: dos
Disk identifier: 0x77755cd6
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 976764927 976762880 465.8G 7 HPFS/NTFS/exFAT
Using fdisk:
sudo fdisk /dev/sdaWelcome to fdisk (util-linux 2.36.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
To generate a new partition table, using GPT:
Command (m for help): gCreated a new GPT disklabel (GUID: 02020FFD-D5C5-B546-A875-6A18D2A66EA1).
The device contains 'dos' signature and it will be removed by a write command. See fdisk(8) man page and --wipe option for more details.
Now create a new, single partition:
Command (m for help): nPartition number (1-128, default 1): ENTERFirst sector (2048-976768990, default 2048): ENTERLast sector, +/-sectors or +/-size{K,M,G,T,P} (2048-976768990, default 976768990): ENTERCreated a new partition 1 of type 'Linux filesystem' and of size 465.8. GiB.
Partition #1 contains a exfat signature.
Do you want to remove the signature? [Y]es/[N]o: yThe signature will be removed by a write command.
Command (m for help): wThe partition table has been altered.
Syncing disks.
umount /dev/sda1sudo mkfs.ext4 /dev/sda1mke2fs 1.46.2 (28-Feb-2021)
Creating filesystem with 122095867 4k blocks and 30531584 inodes
Filesystem UUID: 79a158c7-466e-496d-9a4c-e62a4d673d20
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks):
done
Writing superblocks and filesystem accounting information: done
Optionally give the partition a label:
sudo e2label /dev/sda1 backup_srvNow the drive is ready to be used. Check it's infos:
lsblk -o NAME,STATE,SIZE,FSTYPE,MOUNTPOINT,PATH,PTTYPE,PARTTYPENAME,VENDOR,MODELNAME STATE SIZE FSTYPE MOUNTPOINT PATH PTTYPE PARTTYPENAME VENDOR MODEL
sda running 465.8G /dev/sda gpt WD WDC_WD5000BMVV-11GNWS0
`-sda1 465.8G ext4 /dev/sda1 gpt Linux filesystem
mmcblk0 119.3G /dev/mmcblk0 dos
|-mmcblk0p1 256M vfat /boot /dev/mmcblk0p1 dos W95 FAT32 (LBA)
`-mmcblk0p2 119G ext4 / /dev/mmcblk0p2 dos Linux
Create a mount point:
sudo mkdir -p /media/usb/backup_srvMount the drive:
sudo mount -L backup_srv /media/usb/backup_srv
sudo mount /dev/sda1 /media/usb/backup_srvSo currently backups are made to ~/backup/<server_name>/<app_name>/. Each app has it's on borg repository.
The plan is to move those repositories to the HDD.
Now we need permissions. I do this with a new group:
sudo groupadd remote_backupsudo usermod -a -G remote_backup rootsudo usermod -a -G remote_backup pggetent group | grep remote_backup to see the group memberssudo chgrp -c -R remote_backup /media/usb/backup_srvsudo chmod g+w /media/usb/backup_srv/Now copy the directory (if permissions is denied, relog with your user):
cp -r ~/backup/ /media/usb/backup_srvmv ~/backup ~/backup.bak (move files temporary, remove them later)Using symlinks does not work here, they cannot be mounted on the host doing the backups.
I am mounting the directory via SSHFS now using the new HDD.
Example:
sshfs -o allow_other,default_permissions,IdentityFile=~/.ssh/id_rsa -p 22 backup-user@your-server.example:/media/usb/backup_srv/backup ~/mnt/your-server-backupThe backups might fail now because the repository got moved. Change the config of borgmatic temporary and allow moved repo using relocated_repo_access_is_ok: true.