I suggest you don't pick cipher and encryption parameters by hand, and instead use a full encryption solution designed for this use case.
An example is using dm-crypt and LUKS. If you don't want to have a dedicated encrypted partition, you can mount a file with a loop device. For example, see it here:
https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_a_n...
It will use AES by default in XTS mode. (the default was changed because of CBC malleability attacks).
Anyway, compared to AES, ChaCha is simpler, don't suffer from timing attacks, and don't require a mode of operation. There's nothing wrong with using it for data at rest.