Como verificar se o disco tem linux dentro

2

Estou tentando inicializar uma unidade USB externa que executa o Linux para verificar se o disco rígido principal do computador está em execução (assim ele contém) ou não, e monte-o no diretório /mnt para modificar alguns arquivos.

Eu posso ser capaz de detectar os dispositivos (discos rígidos) conectados ao computador, mas não tenho idéia de como detectar se esse disco tem um sistema operacional e se esse SO é uma distorção do Linux.

Estou tentando implementá-lo em Python.

    
por wonderwhy 01.09.2014 / 13:29

2 respostas

2

Existem três elementos para o processo de determinar se um disco "executa o linux"

  1. faça uma lista de partições para verificar
  2. monte cada partição
  3. verifique cada partição para alguns arquivos "mágicos"
  4. 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.

    
por 01.09.2014 / 14:22
0

se você montar as partições, você deve ser capaz de verificar se há linux instalado no interior. Para saber qual distribuição, verifique os arquivos /etc/os-release , /etc/lsb-release , /etc/issue e /etc/issue.net . Você encontrará o nome da distribuição em pelo menos um deles.

    
por 01.09.2014 / 13:42