Azure Linux 自動修復 (ALAR) を使用して Linux VM を修正する

適用対象: ✔️ Linux VM

次回 Azure Linux 仮想マシン (VM) で修復を実行する必要がある場合は、Azure Linux Auto Repair (ALAR) スクリプトを自動的に配置することで、ジョブを自動化できます。 ジョブを手動で実行する必要がなくなりました。 これらのスクリプトを使用すると、復旧プロセスが簡略化され、経験の浅いユーザーでも Linux VM を簡単に復旧できます。

ALAR では、Azure 仮想マシンの修復コマンドを使用して Linux VM 修復するで説明されている VM 修復拡張機能を利用します。

ALAR では、次の修復シナリオについて説明します。

  • 形式が正しくない /etc/fstab 構文エラーがディスクに見つからない
  • /boot/grub/grub.cfg で initrd が破損しているか、initrd 行が見つからない
  • 最後にインストールされたカーネルが起動できない
  • シリアル コンソールと GRUB シリアルが正しく構成されていないか、見つからない
  • GRUB/EFI のインストールまたは構成が破損している

ALAR アクション

fstab

このアクションにより、システムの起動に必要のない /etc/fstab ファイル内のすべての行が削除されます。 最初に、元のファイルのコピーが参照用に作成されます。 OS が起動すると、管理者は fstab を編集して、以前にシステムの再起動を許可しなかったエラーを修正できます。

形式が正しくない /etc/fstab ファイルに関する問題の詳細については、「 fstab エラーが原因で Linux VM が起動する問題を解決する」を参照してください。

kernel

このアクションにより、既定のカーネルが変更されます。 このスクリプトは、破損したカーネルを以前にインストールしたバージョンに置き換えます。

カーネル関連のスタートアップ イベントについてシリアル コンソールに記録される可能性があるメッセージの詳細については、「 カーネル関連のブートの問題から Azure Linux 仮想マシンを復旧する方法を参照してください。

initrd

このアクションを使用して、破損または誤って作成された initrd または initramfs を修正できます。

正しく作成された initrd または initramfs を取得するには、モジュール hv_vmbushv_netvsc、および hv_storvsc をイメージに追加します。

Initrd 関連のスタートアップの問題は、次のログに記録された症状として表示される可能性があります。

VFS を同期しない動作中の init が見つかりません

どちらの場合も、エラー エントリがログに記録される前に、次の情報がログに記録されます。

アンパックに失敗しました

serialconsole

このアクションにより、Linux カーネルまたは GRUB のシリアル コンソール構成が正しくないか、形式が正しくありません。 このアクションは、次の場合に実行することをお勧めします。

  • VM の起動時に GRUB メニューは表示されません。
  • オペレーティング システムに関連する情報はシリアル コンソールに書き込まれます。

grubfix

このアクションを使用して、GRUB を再インストールし、 grub.cfg ファイルを再生成できます。

efifix

このアクションを使用して、GEN2 VM から起動するために必要なソフトウェアを再インストールできます。 grub.cfg ファイルも再生成されます。

auditd

監査デーモンの構成が原因で起動直後に VM がシャットダウンする場合は、このアクションを使用します。 このアクションでは、action パラメーターに構成されているHALT値をSYSLOGに変更することで、監査デーモンの構成 (/etc/audit/auditd.conf ファイル内) が変更されます。これにより、システムのシャットダウンは強制されません。 論理ボリューム マネージャー (LVM) 環境では、監査ログを含む論理ボリュームがいっぱいで、ボリューム グループに使用可能な領域がある場合、論理ボリュームも現在のサイズの 10% 拡張されます。 ただし、LVM 環境を使用していない場合、または使用可能な領域がない場合は、構成ファイルのみが変更されます。

ALAR の使用方法

ALAR スクリプトでは、修復拡張機能 run コマンドとその --run-id オプションが使用されます。 自動復旧の --run-id オプションの値は linux-alar2。 ALAR スクリプトを使用して Linux VM を修正するには、次の手順に従います。

  1. 復旧 VM を作成します。

    az vm repair create --verbose -g RG-NAME -n VM-NAME --repair-username RESCUE-UID --repair-password RESCUE-PASS --copy-disk-name DISK-COPY
    
  2. 復旧 VM で ALAR アクションのいずれかを使用してスクリプトを実行します。

    az vm repair run --verbose -g RG-NAME -n VM-NAME --run-id linux-alar2 --parameters ACTION --run-on-repair
    
  3. OS ディスクをスワップし、一時的なリソースを削除します。

    az vm repair restore --verbose -g RG-NAME -n VM-NAME 
    

    Note

    元のディスクと新しいディスクは削除されません。

上記のコマンドのパラメーターの説明を次に示します。

  • RG-NAME: 破損した VM を含むリソース グループの名前。

  • VM-NAME: 破損した VM の名前。

  • RESCUE-UID: 修復 VM でログイン用に作成されたユーザー。 これは、Azure portal の新しい VM で作成されたユーザーと同等です。

  • RESCUE-PASS: 一重引用符で囲まれた RESCUE-UIDのパスワード。 (例: 'password!234')。

  • DISK-COPY: 破損した VM から作成される OS ディスク コピーの名前。

  • ACTION: initrdfstabなど、実行するスクリプト化されたタスク。

    Note

    単一または複数の復旧操作を渡すことができます。 複数の操作の場合は、 fstab,initrdなど、スペースのないコンマを使用してそれらを線付けします。

制限事項

クラシック VM はサポートされていません。

次のステップ

バグが発生した場合、または ALAR ツールの機能強化を要求する場合は、 GitHub にコメントを投稿してください。

ALAR ツールに関する最新情報は、 GitHubで確認できます。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。