LPIC-2 Linux Kernel and System Startup Practice Question
A Linux system administrator is tasked with upgrading the kernel on a server running a custom compiled kernel (version 4.19) with many in-house modules. The new kernel (5.10) has significant changes, including a different API for some module functions. After compiling the new kernel and the modules, the system boots but some modules fail to load with 'Unknown symbol' errors. The administrator needs to identify which symbols are missing and fix the modules. Which of the following is the most effective approach?
⚠ Common exam trap
Candidates often assume symbol name matching is sufficient (Option D) or that recompiling blindly (Option A) will fix the issue, when in fact the kernel's symbol versioning (CRC) mechanism is what causes the failure, and only a version-aware comparison can diagnose it correctly.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Run 'modprobe --dump-modversions mymodule.ko' and compare with 'cat /proc/kallsyms' to identify mismatches
`modprobe --dump-modversions mymodule.ko` displays the symbol version (CRC) checksums for each symbol the module uses, and comparing these with `/proc/kallsyms` (which lists all symbols exported by the running kernel along with their CRC values) directly pinpoints which symbols have mismatched versions. This is the most efficient method to identify 'Unknown symbol' errors caused by API changes between kernel 4.19 and 5.10, as it reveals exactly which symbols need updating in the module source code.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Check dmesg for each module load error and recompile modules one by one
Why it's wrong here
While possible, it is inefficient and does not provide a comprehensive list of missing symbols.
- ✗
Rename the missing symbols in the source code to match the new kernel's exported symbols
Why it's wrong here
Renaming may not fix the underlying API changes; the module needs to be updated to use the new symbols correctly.
- ✓
Run 'modprobe --dump-modversions mymodule.ko' and compare with 'cat /proc/kallsyms' to identify mismatches
Why this is correct
This method systematically shows which symbols the module requires and whether they are present in the running kernel.
- ✗
Use 'nm mymodule.ko' to list all symbols and manually compare with the kernel's symbol table
Why it's wrong here
Manual comparison is tedious and error-prone; automated tools are better.
Go deeper
Related to this question
About these practice questions
One of 507 original LPIC-2 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This LPIC-2 practice question is part of Courseiva's free LPI certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the LPIC-2 exam.