📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 205行目: | 205行目: | ||
GRUB2を更新する。<br> | GRUB2を更新する。<br> | ||
sudo grub2-mkconfig -o /boot/grub2/grub.cfg | sudo grub2-mkconfig -o /boot/grub2/grub.cfg | ||
<br><br> | |||
== vmlinuzファイルの展開と逆アセンブル == | |||
==== vmlinuzとは ==== | |||
vmlinuzは、システムを起動して、カーネルをメモリにロードすることができる圧縮されたLinuxカーネルのイメージである。<br> | |||
また、vmlinuxは静的にリンクされた実行ファイルであり、カーネルはELF、COFF、a.out等のオブジェクトファイル形式をサポートしている。<br> | |||
<br> | |||
vmlinuzとvmlinuxは似た名前であるが、vmlinuxはvmlinuzの圧縮されていないブート不可能なバージョンのことである。<br> | |||
(vmlinuz : Virtual Memory Linuz linuzはLinuxの圧縮版の意味)<br> | |||
<br> | |||
アセンブリコードの問題の特定、または、特定の関数がどのように実行されているかをデバッグする場合、vmlinuzを抽出する。<br> | |||
<br> | |||
==== vmlinuzファイルの展開 ==== | |||
現在使用しているvmlinuzファイルの種類を確認する。<br> | |||
file /boot/vmlinuz-$(uname -r) | |||
# 出力例 | |||
vmlinuz-5.14.21-150400.24.28-default: Linux/x86 Kernel, Setup Version 0x20f, bzImage, Version 5.14.21-150400.24.28-default (geeko@buildhost) | |||
#1 SMP PREEMPT_DYNAMIC Mon Oct 10 15:21:12 UTC 2, RO-rootFS, swap_dev 0xA, Normal VGA | |||
<br> | |||
Linuxカーネルのイメージから圧縮されていないカーネルを抽出するため、extract-vmlinuxスクリプトをダウンロードする。<br> | |||
wget -O extract-vmlinux https://raw.githubusercontent.com/torvalds/linux/master/scripts/extract-vmlinux | |||
chmod u+x extract-vmlinux | |||
<br> | |||
Linuxカーネルのイメージから圧縮されていないカーネルを抽出する。<br> | |||
./extract-vmlinux /boot/vmlinuz-$(uname -r) > vmlinuz | |||
<br> | |||
展開したvmlinuzファイルの種類が、ELFオブジェクトかどうかを確認する。<br> | |||
file vmlinuz | |||
# 出力例 | |||
vmlinuz: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=915f2e0498b5123d9c51edb9ffca1b68d958fb7f, stripped | |||
<br> | |||
<code>objdump</code>コマンドを使用して、vmlinuzを逆アセンブルすることができる。<br> | |||
objdump -D vmlinuz | less | |||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:SUSE]] | [[カテゴリ:SUSE]] | ||