Infelizmente os-prober
é bem rústico, não aceita nenhum tipo de configuração (arquivo ou linha de comando). No entanto, entende LUKS.
Se você usar LUKS em vez de cryptsetup simples, ele parará de tentar interpretar essa partição (por outro lado, se a partição estiver aberta, ela tentará localizar e entender o dispositivo de loop).
Dentro de /usr/lib/os-probes/50mounted-tests
o teste é realizado da seguinte forma:
types="$(fs_type "$partition")" || types=NOT-DETECTED
# ...
elif [ -z "$types" ]; then
if type cryptsetup >/dev/null 2>&1 && \
cryptsetup luksDump "$partition" >/dev/null 2>&1; then
debug "$1 is a LUKS partition; skipping"
exit 0
fi
Portanto, usar o LUKS é a solução mais fácil.
No entanto, se você realmente não quiser usar o LUKS, basta hackear os-prober
e incluir sua partição criptografada na fs_type
check. Essa verificação é executada dentro de /usr/share/os-prober/common.sh
e é realmente muito trivial:
fs_type () {
if (export PATH="/lib/udev:$PATH"; type vol_id) >/dev/null 2>&1; then
PATH="/lib/udev:$PATH" vol_id --type "$1" 2>/dev/null
elif type blkid >/dev/null 2>&1; then
blkid -o value -s TYPE "$1" 2>/dev/null
else
return 0
fi
}
E você pode cortá-lo para:
fs_type () {
if [ "x$1" = "x/dev/sdb1" ]; then
return 0
elif (export PATH="/lib/udev:$PATH"; type vol_id) >/dev/null 2>&1; then
PATH="/lib/udev:$PATH" vol_id --type "$1" 2>/dev/null
elif type blkid >/dev/null 2>&1; then
blkid -o value -s TYPE "$1" 2>/dev/null
else
return 0
fi
}
os-prober
é realmente apenas uma coleção de scripts de shell.