適用対象: ✔️ 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 が起動する問題を解決する」を参照してください。
カーネル
このアクションにより、既定のカーネルが変更されます。 このスクリプトは、破損したカーネルを以前にインストールしたバージョンに置き換えます。
カーネル関連のスタートアップ イベントについてシリアル コンソールに記録される可能性があるメッセージの詳細については、「 カーネル関連のブートの問題から Azure Linux 仮想マシンを復旧する方法を参照してください。
initrd
このアクションを使用して、破損または誤って作成された initrd または initramfs を修正できます。
正しく作成された initrd または initramfs を取得するには、モジュール hv_vmbus
、 hv_netvsc
、および hv_storvsc
をイメージに追加します。
Initrd 関連のスタートアップの問題は、次のログに記録された症状として表示される可能性があります。
どちらの場合も、エラー エントリがログに記録される前に、次の情報がログに記録されます。
serialconsole
このアクションにより、Linux カーネルまたは GRUB のシリアル コンソール構成が正しくないか、形式が正しくありません。 このアクションは、次の場合に実行することをお勧めします。
- VM の起動時に GRUB メニューは表示されません。
- オペレーティング システムに関連する情報はシリアル コンソールに書き込まれます。
grubfix
このアクションを使用して、GRUB を再インストールし、 grub.cfg ファイルを再生成できます。
efifix
このアクションを使用して、GEN2 VM から起動するために必要なソフトウェアを再インストールできます。 grub.cfg ファイルも再生成されます。
auditd デーモン
監査デーモンの構成が原因で起動直後に VM がシャットダウンする場合は、このアクションを使用します。 このアクションでは、 パラメーターに構成されているHALT
値をaction
に変更することで、監査デーモンの構成 (SYSLOG
ファイル内) が変更されます。これにより、システムのシャットダウンは強制されません。 論理ボリューム マネージャー (LVM) 環境では、監査ログを含む論理ボリュームがいっぱいで、ボリューム グループに使用可能な領域がある場合、論理ボリュームも現在のサイズの 10% 拡張されます。 ただし、LVM 環境を使用していない場合、または使用可能な領域がない場合は、構成ファイルのみが変更されます。
重要
このアクションにより、VM のシャットダウンの問題を解決できるように監査デーモン構成を変更することで、VM のセキュリティ体制が変更されます。 VM が実行され、アクセス可能になったら、監査デーモン構成を元の状態に戻す必要があります。 このため、ALAR アクションによって、 auditd.conf ファイルのバックアップが /etc/audit に作成されます。
ALAR の使用方法
ALAR スクリプトでは、修復拡張機能 run
コマンドとその --run-id
オプションが使用されます。 自動復旧の --run-id
オプションの値は linux-alar2
。 ALAR スクリプトを使用して Linux VM を修正するには、次の手順に従います。
注
VM 共同作成者ロールは、ターゲット VM を含むリソース グループ内のリソースの読み取り、書き込み、削除のアクセス許可を必要とするため、スクリプトを実行するための十分なアクセス許可を提供しません。 そのため、リソース グループ レベルの共同作成者や所有者などのロールが必要です。
復旧 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
復旧 VM で ALAR アクションのいずれかを使用してスクリプトを実行します。
az vm repair run --verbose -g RG-NAME -n VM-NAME --run-id linux-alar2 --parameters ACTION --run-on-repair
OS ディスクをスワップし、一時的なリソースを削除します。
az vm repair restore --verbose -g RG-NAME -n VM-NAME
注
元のディスクと新しいディスクは削除されません。
上記のコマンドのパラメーターの説明を次に示します。
-
RG-NAME
: 破損した VM を含むリソース グループの名前。 -
VM-NAME
: 破損した VM の名前。 -
RESCUE-UID
: 修復 VM でログイン用に作成されたユーザー。 これは、Azure portal の新しい VM で作成されたユーザーと同等です。 -
RESCUE-PASS
: 一重引用符で囲まれたRESCUE-UID
のパスワード。 (例:'password!234'
)。 -
DISK-COPY
: 破損した VM から作成される OS ディスク コピーの名前。 -
ACTION
:initrd
やfstab
など、実行するスクリプト化されたタスク。 単一または複数の復旧操作を渡すことができます。 複数の操作の場合は、fstab,initrd
など、スペースのないコンマを使用してそれらを線付けします。
制限事項
クラシック VM はサポートされていません。
次のステップ
バグが発生した場合、または ALAR ツールの機能強化を要求する場合は、 GitHub にコメントを投稿してください。
ALAR ツールに関する最新情報は、 GitHubで確認できます。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。