diff options
Diffstat (limited to 'content/posts/2023-09-02-setup-external-backup.md')
-rw-r--r-- | content/posts/2023-09-02-setup-external-backup.md | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/content/posts/2023-09-02-setup-external-backup.md b/content/posts/2023-09-02-setup-external-backup.md deleted file mode 100644 index 6a94158..0000000 --- a/content/posts/2023-09-02-setup-external-backup.md +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: "Setup backup on external disk" -date: 2023-09-02 -draft: true -lang: en -categories: [ blog ] -tags: [] -translationKey: "2023-09-02-setup-external-backup" ---- - -## Backstory - -A few weeks ago (not today), I fucked up: -During irregular disk cleanup, I accidentally removed the config folder! - -Fortunately, I "backed up" the config with git, didn't I? 😌 - -Well yes, but actually no! 🥲 I did commit, but I didn't push. -The latest pushed config had been 9 months before this incident. - -On top of that, many programs generate unreadable configs, which I prefer not -to put into version control, or put sensitive information or large data into -`.config`, which shouldn't be pushed into a remote repository on a server I -don't own. For example, nheko puts authentication info there, and after this -incident I lost the session with several messages---well, matrix's irregularly -regular decryption failure could be expanded into a post on its own, so let's -not digress. - -And then there are more things to back up than just configs, say, my photos and -music. I mirror them between my devices with [syncthing], providing -redundancy, but [syncthing is not backup][syncthing-failure], -and neither is [RAID][raid-not-backup] - -[syncthing]: https://syncthing.net/ -[syncthing-failure]: https://forum.syncthing.net/t/syncthing-deleted-all-files-on-every-device/20518 -[raid-not-backup]: https://www.raidisnotabackup.com/ - -I should back them up, or I might one day be doomed to repeat the mistake. - -## Preparation - -Despite the bitterness from the partial data loss, I kinda didn't have the -spoon to do what I must, so I've been delaying it hitherto. - -### Hardware - -One of the reason I was cleaning up the disk in the first place was that it's -start to be filled up, so I bought a large hard drive to store more data and -backup. Doesn't seem too safe, I know: if the hard drive gets lost or broken, -I'll lose both the main data and the backup, but with a limited budget and -space, that's good enough for now. - -I got a Seagate One Touch 2 TB[^0] HDD. It seems to come with builtin backup -software, which doesn't support Linux of course, and I likely wouldn't use it -even if it did. A USB hub is also needed, as my laptop has a limited number of -USB ports. - -### Formatting - -Coming with the hard drive are several files, such as an `.exe` program to -initialize the backup, I suppose. I don't need these, and the disk can be -formatted ~~right away~~ after I do full-disk encryption on that. - -No partitioning is needed: while I do seek [vegan alternative][margarine], I -intended to use [btrfs][btrfs-kernel] as the file system, which can create -subvolumes, which can act as separate mounted partitions. I will just reformat -the existing partition to btrfs. - -```sh -mkfs.btrfs -L margarine /dev/sdb1 -``` - -[margarine]: https://outerheaven.club/notice/AZ8wYpKOyp2p329V5M -[btrfs-kernel]: https://www.kernel.org/doc/html/latest/filesystems/btrfs.html - -I intend to have three subvolumes, one for big data (not Big Data™) such as -movies or music, one for more personal data and another for backup: - -```sh -mount /dev/sdb1 /mnt -btrfs subvolume /mnt/data/hoard -btrfs subvolume /mnt/data/perso -btrfs subvolume /mnt/backup -``` - -Finally, I need to declare those in the nix hardware configuration file. - - -```nix -{ - (...) - fileSystems = { - "/" = { - (...) - }; - "/data/hoard" = { - device = "/dev/disk/by-uuid/[subvolume uuid]"; - fsType = "btrfs"; - options = [ "subvol=data/hoard" "compress-force=zstd" "noatime" ]; - }; - "/data/perso" = { - device = "/dev/disk/by-uuid/[subvolume uuid]"; - fsType = "btrfs"; - options = [ "subvol=data/perso" "compress-force=zstd" "noatime" ]; - }; - "/backup" = { - device = "/dev/disk/by-uuid/[subvolume uuid]"; - fsType = "btrfs"; - options = [ "subvol=backup" "compress-force=zstd" ]; - }; - }; - (...) -} -``` - -## Setting up - -[^0]: That means 1.81 [TiB] and I feel cheated sometimes. - -[TiB]: https://en.wikipedia.org/wiki/Byte#Multiple-byte_units. |