すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Linux:Alibaba Cloud Linux 3 AI Extension Edition でのブートエントリとカーネルコマンドラインパラメーターの変更

最終更新日:Nov 09, 2025

この Topic では、grubby ツールを使用して Alibaba Cloud Linux 3 AI Extension Edition オペレーティングシステムでカーネルブートパラメーターを追加または削除する方法について説明します。

ブート構成ファイルの構造を理解する

  • ブートエントリ構成ファイル: すべての GRUB ブートエントリ構成は /boot/loader/entries/ ディレクトリにあります。ファイル名は machine-id (`/etc/machine-id`) とカーネルバージョンの組み合わせです。例: c8742e47872643a6839300623c28b57c-5.10.134-19.101.al8.x86_64.conf

  • 構成ファイルの例:

    title Alibaba Cloud Linux (5.10.134-19.101.al8.x86_64) 3 (OpenAnolis Edition)
    version 5.10.134-19.101.al8.x86_64
    linux /boot/vmlinuz-5.10.134-19.101.al8.x86_64
    initrd /boot/initramfs-5.10.134-19.101.al8.x86_64.img $tuned_initrd
    options $kernelopts $tuned_params
    id alinux-20250707132428-5.10.134-19.101.al8.x86_64
    grub_users $grub_users
    grub_arg --unrestricted
    grub_class kernel

    options の行は、起動時にカーネルが受け入れるパラメーターを決定します。デフォルトでは、kernelopts という名前の変数を参照します。この変数は、すべてのブートエントリに適用される共通のカーネルパラメーターを定義します。その値は /boot/grub2/grubenv ファイルに保存されます。この変数を変更することで、すべてのカーネルバージョンのパラメーターをグローバルに管理できます。

推奨ツール

これらの構成ファイルを手動で編集すると、システムの起動を妨げる可能性のあるフォーマットエラーが発生する可能性があります。カーネルブートエントリを管理するには、grubby コマンドラインインターフェイスを使用します。grubby は、複雑な構成ファイルの更新を自動的に処理して、原子性と正確性を確保します。

前提条件

開始する前に、次の条件が満たされていることを確認してください:

  • 権限: root 権限を持つユーザーとしてターゲット ECS インスタンスにログインします。

  • データバックアップ (推奨): 本番環境では、操作を実行する前にインスタンスのスナップショットを作成します。これにより、エラーが発生した場合にデータを迅速に回復できます。

  • AI Extension Edition イメージの特別な構成: Alibaba Cloud Linux 3 AI Extension Edition イメージでカーネルコマンドラインパラメーターまたはブートエントリを変更するには、grubby 変更コマンドを実行する前に、次のコマンドを一度実行する必要があります。

    efibootmgr -q && test -f /boot/efi/EFI/alinux/grubenv && ln -sf ../efi/EFI/alinux/grubenv /boot/grub2/grubenv # このコマンドは一度だけ実行する必要があります。複数回実行しても悪影響はありません。
重要

この操作により、grubenv 環境が正しくリンクされていることが保証されます。正しくリンクされていない場合、変更は有効になりません。

grubby を使用してブートパラメーターを変更する

このセクションでは、カーネルブートパラメーターを変更するための 2 つのコアメソッドについて説明します。ニーズに基づいて適切なメソッドを選択してください。

すべてのブートエントリのパラメーターをグローバルに変更する

インストールされているすべてのカーネルバージョンにパラメーターを適用する必要がある場合は、このメソッドを使用します。たとえば、nvme_core.io_timeout=4294967295 を追加して、特定のハードウェアをサポートできます。

  • 仕組み: grubby/boot/grub2/grubenv ファイル内の kernelopts 変数の値を直接変更します。この変数を参照するすべてのブートエントリが影響を受けます。

  • コマンド:

    • パラメーターの追加

      grubby --update-kernel=ALL --args="<NEW_PARAMETER>"   
      # <NEW_PARAMETER> を追加したいパラメーターに置き換えます。例: "nvme_core.io_timeout=4294967295"
    • パラメーターの削除

      grubby --update-kernel=ALL --remove-args="<PARAMETER_TO_REMOVE>" 
       # <PARAMETER_TO_REMOVE> を削除したいパラメーターに置き換えます。例: "quiet"

単一のブートエントリのカーネルコマンドラインパラメーターを変更する

現在実行中のカーネルなど、特定のカーネルバージョンに対してテストパラメーターを追加または削除し、他のカーネルバージョンや将来のグローバルな変更に影響を与えたくない場合は、このメソッドを使用します。

  • 仕組み: 単一のブートエントリのカーネルコマンドラインパラメーターを変更するには、kernelopts 変数が展開され、その値が /boot/loader/entries/<RELEVANT_KERNEL_BOOT_ENTRY.conf> の対応するブートエントリ構成ファイルに保存されます。

    説明

    このブートエントリのカーネルコマンドラインパラメーターを再度変更するには、ブートエントリを指定する必要があります。これは、ブートエントリの構成ファイルに kernelopts 変数が含まれなくなったためです。

  • コマンド:

    • パラメーターの追加

      grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="<NEW_PARAMETER>"
      # <NEW_PARAMETER> を追加したいパラメーターに置き換えます。
    • パラメーターの削除

      grubby --update-kernel=/boot/vmlinuz-$(uname -r) --remove-args="<PARAMETER_TO_REMOVE>"
      # <PARAMETER_TO_REMOVE> を削除したいパラメーターに置き換えます。