Cómo verificar si el disco tiene linux dentro

Estoy intentando arrancar una unidad USB externa que ejecuta Linux para comprobar si el disco duro principal de la computadora se está ejecutando (por lo que contiene) Linux o no, y montarlo en el directory /mnt para modificar algunos files.

Puede que detecte los dispositivos (discos duros) enchufados a la computadora, pero no tengo idea de cómo detectar si ese disco tiene un sistema operativo y si ese sistema operativo tiene alguna distorsión de Linux.

Estoy tratando de implementarlo en Python.

Hay tres elementos para el process de determinar si un disco "ejecuta Linux"

  1. hacer una list de particiones para verificar
  2. montar cada partición
  3. revisa cada partición para algunos files "mágicos"
  4. desmontar cada partición

Para el paso 1, puede usar 'dividido' llamado a través de subprocess.check_output () y analizar el valor de retorno.

Para los pasos 2 y 4 use 'mount' resp. 'umount' a través de subprocess.check_call () , ya que hay poca necesidad de analizar la salida.

Eso deja el paso 3, donde puede usar os.path.exists() en los files que le gustaría cambiar. Si no desea actualizarlos, también puede simplemente open() los files y capturar la exception en caso de que no existan (en cuyo caso probablemente no tenga una partición ejecutando Linux).

Tenga en count que cualquier subdirectory del tree de directorys de Linux puede vivir en su propia partición. Por lo tanto, la comprobación de, por ejemplo, /mnt/boot/grub/grub.cfg podría no funcionar en la partición1 ni en la partición2 porque la partición 2 está montada en /boot en la partición 1.

si monta las particiones, debería poder verificar si hay linux instalado en su interior. Para saber qué distribución, consulte los files /etc/os-release , /etc/lsb-release , /etc/issue y /etc/issue.net . Encontrará el nombre de la distribución en al less uno de ellos.