ルートを削除し、SSHを使用してディスク全体を変更するPythonスクリプトを実行するには?

ルートを削除し、SSHを使用してディスク全体を変更するPythonスクリプトを実行するには?

SSHを使用してDebianまたはCentOSデバイスに接続し、ディスク全体(5つのパーティションを持つ30GBディスク、新しいrawディスクイメージファイル、およびLinuxルートディレクトリに新しいパーティションテーブルを作成して5番目のパーティション)を変更したいと思います。私の主な目標は、これをリモートで自動化することです。

だから何とかルートパーティションをアンマウントし、LinuxがRAMで実行されている間にPythonを実行できると思いました。これは可能ですか?

代替案やより良い解決策はありますか?

メモを追加する:「それらはサーバーではありません。物理的に簡単にアクセスできるラズベリーパイのようなものです。SDカードなどのディスクがあり、手動で削除し、コンピュータにインストールして新しいイメージを書き込んで、Debian USBから起動できます。部分にインストールしてください。これを簡単に作成しようとしています。」

答え1

説明に正確に従うことはできません。

ただし、多くのディストリビューションでは、初期起動に Intramfs イメージを使用しています。このイメージのinitスクリプトを変更するには、ファイルシステムをマウントする前にジョブを実行できます。一度だけ発生するメソッドを作成するには、より賢明でなければなりません。これらの操作はすべて、十分なアクセス権があればリモートで実行できます。 CentOSとDebianはinitramfsに異なるシステムを使用しているため、これを2回実行する必要があります。ローカルアクセス権を持たないシステムに展開する前に、ローカルアクセス権を持つシステムのバグを修正することをお勧めします。これは完全に機能するはずです。

答え2

この目的のためにカスタムinitramfsイメージを作成できます。これについてのDracutモジュール(またはお好みのinitramfs Builderに従ってinitramfs-toolsフック)を確認してください。完全なPython環境を提供するのは難しいことなので、可能であればシェルツールを使用することをお勧めしますsfdisk。基本的なinitramfsにも、ディスクイメージ全体を作成するために必要なすべてがすでに装備されていますが。最も簡単な方法は、kexecディスクイメージがうまく圧縮されていても(使用されていないすべての領域がゼロにクリアされていることを確認してください)、それを含むinitramfsイメージがまだ大きすぎて、実行中のシステム負荷に合わない可能性があります。この場合、次の再起動時に変更が適用されるようにブートローダ設定を調整する必要があります。一部のブートローダは「一度起動」機能を提供します。それ以外の場合は、ディスクを上書きして変更を元に戻す必要があります。少なくともSyslinuxブートローダを使用すると、起動時にマージされる複数のinitramfsイメージをロードできるため、通常のイメージに代替イメージファイルがあることを確認し、起動を続行する前にそれを書き込むことができます。

関連情報