Estou trabalhando em um Linux embarcado. Quero escrever um script bash que corrija partições automaticamente.
Declarei um array associativo onde a chave é o ponto de montagem e o valor é o dispositivo a ser montado.
Agora, meu problema é que os dispositivos podem ter sistemas de arquivos diferentes e a versão correta fsck
deve ser selecionada.
Cada sistema de arquivos tem sua própria fsck
variante, como fsck.vfat
e fsck.ext4
.
Preciso trazer isso de alguma forma para que a variante correta seja chamada. Infelizmente, a variante principal fsck
não fornece correção ou detecção automática de sistemas de arquivos em minha configuração.
Então a verdadeira questão é como ter uma tabela de pesquisa aqui?
declare -A arrPartitionsToCheck=(
[/run/media/my-backup]="/dev/sda1" # vfat
[/run/media/my-data]="/dev/sdb1" # ext4
)
for part in "${!arrPartitionsToCheck[@]}"; do
# Unmount
# umount /dev/sda1
umount "${arrPartitionsToCheck[$part]}"
# Select the right variant of FSCK and repair automatically
fsck.vfat -a "${arrPartitionsToCheck[$part]}"
# Mont Again! For example
# mount /dev/sda1 /run/media/my-backups
mount "${arrPartitionsToCheck[$part]}" "$part"
done