Existem três elementos para o processo de determinar se um disco "executa o linux"
- faça uma lista de partições para verificar
- monte cada partição
- verifique cada partição para alguns arquivos "mágicos"
- desmontar cada partição
Para o passo 1, pode utilizar o 'parted' através do subprocess.check_output () e analise o valor de retorno.
Para os passos 2 e 4, use 'mount' resp. "umount" via subprocess.check_call () , pois há pouca necessidade de analisar o saída.
Isso deixa a etapa 3, em que você pode usar os.path.exists()
nos arquivos que deseja alterar. Se você não quer atualizá-los, você também pode apenas open()
dos arquivos e capturar a exceção caso eles não existam (neste caso você provavelmente não tem uma partição rodando Linux).
Lembre-se de que quaisquer subdiretórios da árvore de diretórios do Linux podem viver em sua própria partição. Por conseguinte, verificar por ex. /mnt/boot/grub/grub.cfg
pode não funcionar na partição1 nem na partição2 porque a partição 2 está montada sob /boot
na partição 1.