tencent cloud

Cloud Virtual Machine

ドキュメントCloud Virtual Machineユーザーガイド運用管理システム運用Linuxインスタンスでkdumpサービスを有効化または無効化する方法

Linuxインスタンスでkdumpサービスを有効化または無効化する方法

PDF
フォーカスモード
フォントサイズ
最終更新日: 2026-03-04 12:04:47
免責事項:本ドキュメントにはサードパーティ製品の情報が含まれている可能性がありますが、これらはあくまでも参考情報です。Tencent Cloudは、サードパーティ製品の性能、信頼性、および操作によって生じうる潜在的な影響について、一切保証するものではありません。

概要

kdumpはLinuxシステムのカーネルクラッシュダンプメカニズムです。システムでカーネルクラッシュが発生した場合、その後の故障分析と解決のため、kdumpはクラッシュ時のメモリダンプ情報を取得することができます。本ドキュメントでは、LinuxシステムCVMインスタンスでkdumpサービスを無効化または有効化する方法について説明します。
説明:kdumpサービスの詳細については、kdump紹介ドキュメントをご参照ください。

kdumpサービスの無効化およびkdump予約済みメモリの解放

kdumpは、Linuxシステムの起動時に、「予約済みメモリ」としてカーネルメモリ領域を設定します。この予約済みメモリ領域は、システムがクラッシュした場合に第二カーネルを起動するために専用で使用されます。カーネルクラッシュの原因分析がが必須ではなく、予約済みメモリを解放したい場合、kdumpの無効化をおすすめします。
注意:kdumpを無効にして、カーネルクラッシュが発生した場合、その原因を診断できなくなるリスクがあります。
Linuxディストリビューションにより、無効化の方法が異なります。ここでは、一部のOSを例に、kdumpを無効化し、kdumpの予約済みメモリを解放する方法について説明します。
CentOS/TencentOS パブリックイメージ
OpenCloudOS パブリックイメージ
Ubuntu/Debian パブリックイメージ
CentOS 7/CentOS 8/TencentOS 2/TencentOS 3/TencentOS 4を例に、kdumpを無効化しkdump予約済みメモリを解放する手順について、以下に説明します。
1. 以下のコマンドを実行することで、kdumpサービスを無効にし、システム起動時の自動起動をオフにしかつ関連状態を確認することできます。
systemctl disable kdump --now
systemctl status kdump.service
systemctl is-enabled kdump.service

2. grubby関連のコマンドを使用して、grubパラメータのcrashkernel設定を削除し、設定をスタートアップファイルに更新します。
2.1 以下のコマンドを実行して、grubbyから表示されたargsパラメータにcrashkernelに関する設定項目が含まれているかを確認し、かつバックアップします。
grubby --info=ALL|tee -a grubby.bak.$(date +%Y%m%d)

2.2 以下のコマンドを実行してcrashkernel関連パラメータを削除し、grub設定を自動更新し、さらに削除した後のパラメータ設定を確認します。
grubby --update-kernel=ALL --remove-args="crashkernel"
grubby --info=ALL

3. サーバーを再起動し、kdumpサービスが無効化されていること、およびkdump予約済みメモリが解放されていることを確認します。
警告:サーバーを再起動すると、実行中のビジネス業務が中断される可能性があります。再起動操作の業務への影響を慎重に評価してから実行してください。
サーバーを再起動した後、以下のコマンドを実行して、サーバーが正常に再起動されたか(uptimeコマンドの表示時間が再起動操作から現在までの時間間隔であるかで判断)、kdumpサービスの状態がinactive (dead)であるか、クラッシュの予約済みメモリサイズ/sys/kernel/kexec_crash_sizeが0であるか、また、Linux起動時のコマンドラインパラメータ/proc/cmdlineにcrashkernelに関する設定が含まれていないかを確認することができます。
uptime
systemctl status kdump.service
cat /sys/kernel/kexec_crash_size
cat /proc/cmdline

サーバーの再起動が行えない状況で、kdump予約済みメモリを解放したい場合は、以下のコマンドを実行することでkdumpサービスがクラッシュのために予約したメモリを減らすことができます。
echo 0 >/sys/kernel/kexec_crash_size
以下のコマンドでメモリアドレス空間がkdump用に予約されていないことを確認します。すなわち、戻り値が0であることを確認します。
cat /sys/kernel/kexec_crash_size
OpenCloudOS 7/OpenCloudOS 8/OpenCloudOS 9を例に、kdumpの無効化およびkdump予約済みメモリ解放の手順を説明します。
1. 以下のコマンドを実行することで、kdumpサービスを無効にし、システム起動時の自動起動をオフにしかつ関連状態を確認することできます。
systemctl disable kdump --now
systemctl status kdump
systemctl is-enabled kdump

2. /etc/default/grubを編集し、GRUB_CMDLINE_LINUXからcrashkernel設定を削除し、設定をスタートアップファイルに更新します。
2.1 以下のコマンドを実行して、/etc/default/grubファイルをバックアップします。
cp /etc/default/grub /etc/default/grub.bak.$(date +%Y%m%d)
2.2 vimまたはその他のエディタを使用して、/etc/default/grub 内の GRUB_CMDLINE_LINUX 行にある crashkernel=XXX 設定項目(以下の赤色で表示されている部分)を削除して保存します。

2.3 以下のコマンドを実行してgrub設定ファイルを更新します。
grub2-mkconfig -o /boot/grub2/grub.cfg

3. サーバーを再起動し、kdumpサービスが無効化されていること、およびkdump予約済みメモリが解放されていることを確認します。
警告:サーバーを再起動すると、実行中のビジネス業務が中断される可能性があります。再起動操作の業務への影響を慎重に評価してから実行してください。
サーバーを再起動した後、以下のコマンドを実行して、サーバーが正常に再起動されたか(uptimeコマンドの表示時間が再起動操作から現在までの時間間隔であるかで判断)、kdumpサービスの状態がinactive (dead)であるか、クラッシュの予約済みメモリサイズ/sys/kernel/kexec_crash_sizeが0であるか、また、Linux起動時のコマンドラインパラメータ/proc/cmdlineにcrashkernelに関する設定が含まれていないかを確認することができます。
uptime
systemctl status kdump.service
cat /sys/kernel/kexec_crash_size
cat /proc/cmdline

サーバーの再起動が行えない状況で、kdump予約済みメモリを解放したい場合は、以下のコマンドを実行することでkdumpサービスがクラッシュのために予約したメモリを減らすことができます。
echo 0 >/sys/kernel/kexec_crash_size
以下のコマンドでメモリアドレス空間がkdump用に予約されていないことを確認します。すなわち、戻り値が0であることを確認します。
cat /sys/kernel/kexec_crash_size
Ubuntu 18.04/Ubuntu 20.04/Ubuntu 22.04/Ubuntu 24.04/Debian 10/Debian 11/Debian 12を例に、kdumpの無効化およびkdump予約済みメモリ解放の手順を説明します。
1. 以下のコマンドを実行し、 kdump-tools サービスを無効化し、システム起動時の自動起動もオフにし、関連ステータスを確認します。
systemctl disable kdump-tools --now
systemctl status kdump-tools
systemctl is-enabled kdump-tools

2. /etc/default/grub または /etc/default/grub.d の設定を編集し、GRUB_CMDLINE_LINUX あるいは GRUB_CMDLINE_LINUX_DEFAULT 内の crashkernel 設定を削除し、設定をスタートアップファイルに更新します。
2.1 以下のコマンドを実行して、/etc/default/grubファイルをバックアップします。
cp /etc/default/grub /etc/default/grub.bak.$(date +%Y%m%d)
2.2 vimまたはその他のエディタを使用して、/etc/default/grub 内の GRUB_CMDLINE_LINUX あるいは GRUB_CMDLINE_LINUX_DEFAULT 行にある crashkernel=XXX 設定項目(以下の赤色で表示されている部分)を削除し保存します。

もし/etc/default/grubにcrashkernelに関する設定がない場合、/etc/default/grub.d内のkdump-tools.cfg設定ファイルにcrashkernel関連の設定(以下の赤色で表示されている内容)が存在するかを確認してください。存在すれば、crashkernel=XXX設定項目を削除してください。

具体的な操作:以下のコマンドを実行して/etc/default/grub.d/ディレクトリに移動し、kdump-tools.cfgファイルの存在の有無及びkdump-tools.cfgの設定を確認でき、さらにファイルのバックアップ、crashkernel関連設定の削除を行い、かつ変更結果の検証もできます。
cd /etc/default/grub.d/
cat kdump-tools.cfg
cp kdump-tools.cfg kdump-tools.cfg.bak.$(date +%Y%m%d)
vim kdump-tools.cfg
cat kdump-tools.cfg

2.3 以下のコマンドを実行してgrub設定ファイルを更新します。
update-grub

3. サーバーを再起動し、kdump-toolsサービスが無効化されていること、およびkdump予約済みメモリが解放されていることを確認します。
警告:サーバーを再起動すると、実行中のビジネス業務が中断される可能性があります。再起動操作の業務への影響を慎重に評価してから実行してください。
サーバーを再起動した後、以下のコマンドを実行して、サーバーが正常に再起動されたか(uptimeコマンドの表示時間が再起動操作から現在までの時間間隔であるかで判断)、kdumpサービスの状態がinactive (dead)であるか、クラッシュの予約済みメモリサイズ/sys/kernel/kexec_crash_sizeが0であるか、また、Linux起動時のコマンドラインパラメータ/proc/cmdlineにcrashkernelに関する設定が含まれていないかを確認することができます。
uptime
systemctl status kdump-tools
cat /sys/kernel/kexec_crash_size
cat /proc/cmdline

サーバーの再起動が行えない状況で、kdump予約済みメモリを解放したい場合は、以下のコマンドを実行することでkdumpサービスがクラッシュのために予約したメモリを減らすことができます。
echo 0 >/sys/kernel/kexec_crash_size
以下のコマンドでメモリアドレス空間がkdump用に予約されていないことを確認します。すなわち、戻り値が0であることを確認します。
cat /sys/kernel/kexec_crash_size


kdumpサービスの有効化

Tencent CloudのLinuxパブリックイメージを使用して作成されたサーバーでは、kdumpはデフォルトで有効になっています。これは、panicが発生した際に、通常/var/crashにシステムメモリdump情報が生成され、crashツールを使用してサーバーpanicの原因を分析することができます。ただし、kdumpが有効になっていると、利用可能なOSメモリ容量が減少します。Linuxバージョンによって設定方法が異なるため、一部のLinuxディストリビューションの設定方法を説明します。




ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック