É assim que os hardlinks funcionam. Mas existem maneiras de contornar isso:
Algumas opções vêm à mente:
- Use um sistema de arquivos com suporte para arquivos de cópia na gravação, como
btrfs
. Claro, se você usasse o btrfs, usaria apenas seus snapshots nativos ... Se o seu sistema de arquivos suportar, você pode usarcp --reflink=always
. Infelizmente, o ext4 não suporta isso. - Apenas compartilhe hardlinks em seus instantâneos, não com o original. Ou seja, a primeira vez que você vê uma determinada versão de um arquivo, copie-a para o instantâneo. Mas da próxima vez, vincule-o ao instantâneo anterior. (Não tenho certeza de qual programa eu usei para fazer isso - há uma década - mas a pesquisa mostra o dirvish, obnam, storebackup e rsnapshot)
- Dependendo de como seus arquivos estão sendo alterados, você pode garantir que uma gravação temp / renomear seja usada para alterá-los, o que interromperá o hardlink - para que a versão no instantâneo permaneça intacta. Isso é menos seguro, pois os bugs podem corromper seu instantâneo.
- Tire instantâneos do LVM de todo o sistema de arquivos.
Claro, existe outra opção - use um sistema de backup adequado. A maioria deles consegue apenas fazer o backup de arquivos alterados.