Linuxがディスク上にあるかどうかを確認する方法

Linuxがディスク上にあるかどうかを確認する方法

Linuxを実行している外部USBドライブを起動して、メインコンピュータのハードドライブがLinuxを実行していることを確認し、いくつかのファイルを変更するために/mntディレクトリにマウントしようとしています。

コンピュータに接続されているデバイス(ハードドライブ)を検出できますが、そのディスクにオペレーティングシステムがあるのか​​、オペレーティングシステムがLinuxのバリエーションであるのかを検出する方法がわかりません。

Pythonで実装しようとしています。

答え1

ディスクが「Linuxを実行」するかどうかを決定するプロセスには、3つの要素が含まれます。

  1. 確認するパーティションのリスト
  2. 各パーティションのマウント
  3. 各パーティションに「魔法の」ファイルがあることを確認してください。
  4. 各パーティションのマウント解除

ステップ1では、次のように呼び出して "parted"を使用できます。子プロセス.check_output()戻り値を解析します。

ステップ2と4にはそれぞれ「mount」を使用します。 「削除」を通じて子プロセス.check_call()、出力を解析する必要がほとんどないからです。

残りの部分は、os.path.exists()変更したいファイルで作業する3つのステップです。更新したくない場合は、open()ファイルを更新し、ファイルが存在しない場合は例外をキャッチすることができます(この場合、Linuxを実行するパーティションがない可能性があります)。

ただし、Linuxディレクトリツリーのすべてのサブディレクトリは独自のパーティションに存在する可能性があります。したがって、/mnt/boot/grub/grub.cfgパーティション2はパーティション1の下にインストールされているため、パーティション1またはパーティション2の確認が機能しない可能性があります/boot

答え2

パーティションをマウントすると、そのパーティションにLinuxがインストールされていることを確認できます。どのディストリビューションかを調べるには、マニュアル/etc/os-release/etc/lsb-releaseを参照してください/etc/issue/etc/issue.netそのうちの1つ以上で配布名を見つけることができます。

関連情報