我正在尝试启动一个运行Linux的外部USB驱动器来检查主计算机硬盘驱动器是否正在运行(因此它包含)Linux,并将其挂载到/mnt
目录中以修改一些文件。
我也许能够检测插入计算机的设备(硬盘驱动器),但我不知道如何检测该磁盘中是否有操作系统以及该操作系统是否是 Linux 的任何变形。
我正在尝试用Python 来实现它。
答案1
确定磁盘是否“运行 linux”的过程包含三个要素
- 列出要检查的分区列表
- 挂载每个分区
- 检查每个分区是否有一些“神奇”文件
- 卸载每个分区
对于步骤 1,您可以使用通过调用的“parted”subprocess.check_output()并解析返回值。
对于步骤 2 和 4,分别使用“mount”。通过“卸载”subprocess.check_call(),因为几乎不需要解析输出。
剩下的就是第 3 步,您可以os.path.exists()
在其中使用您想要更改的文件。如果您不想更新它们,也可以只更新open()
文件并捕获异常,以防它们不存在(在这种情况下,您可能没有运行 Linux 的分区)。
但请注意,Linux 目录树的任何子目录都可以位于其自己的分区上。因此,检查eg/mnt/boot/grub/grub.cfg
可能不适用于分区1或分区2,因为分区2安装在/boot
分区1下。
答案2
如果你挂载分区,你应该能够检查里面是否安装了linux。要了解哪个发行版,请检查文件/etc/os-release
、/etc/lsb-release
和/etc/issue
。/etc/issue.net
您至少会在其中之一中找到发行版的名称。