我正在开发嵌入式Linux。我想写一个自动修复分区的bash脚本。
我声明了一个关联数组,其中键是安装点,值是要安装的设备。
现在,我的问题是设备可能有不同的文件系统,fsck
应该选择正确的版本。
每个文件系统都有自己的fsck
变体,例如fsck.vfat
和fsck.ext4
。
我需要以某种方式将其带入循环中,以便调用正确的变体。遗憾的是,主要变体fsck
没有在我的配置中提供文件系统的自动修复或检测。
所以真正的问题是如何在这里有一个查找表?
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