A cloned virtual machine panics with 'VFS: Unable to mount root fs on unknown-block(0,0)' because the disk it was cloned from had a different device name. Which kernel parameter tells the kernel which filesystem to mount as root?
LPIC-1 Exam 101-500, objective 101. System architecture medium
Machine-checked — no person has signed for it. This question was read against the source cited below by an automated pass, which found no contradiction. That is a weaker claim than it sounds: the same kind of process wrote the question, so it can confirm its own mistake.
Treat it as a good draft rather than as settled fact, and read the source below before you rely on it. It is not used in mock exams here — only questions a person has signed for are.
How these questions are written — where each question comes from, what the verification ledger records, and what happens when one is found wrong.
The options
Correct root=
Correct. root= names the device holding the root filesystem, as a device node such as /dev/sda2 or, more robustly for a clone, as root=UUID=... resolved by the initramfs.
Not correct rootfstype=
Wrong. rootfstype= states which filesystem type to try when mounting the root device. It is a hint about how to mount, not about what to mount.
Not correct init=
Wrong, though a familiar recovery parameter. init= chooses the program run as PID 1, for example init=/bin/bash, which only matters once the root filesystem has been mounted.
Not correct ro
Wrong. ro asks for the root filesystem to be mounted read-only initially so that a check can run; it is later remounted read-write. It identifies nothing.
Why
The kernel command line is a space-separated list of parameters, and each has a defined job: root= identifies the root device, ro or rw its initial mode, rootfstype= its type, rootdelay= how long to wait for it to appear, and init= the first userspace program. Kernel device names depend on discovery order and change when hardware or a clone changes, which is why distributions write root=UUID=... and let the initramfs resolve it. Anything the kernel does not recognise is passed through to PID 1 rather than rejected.
Where this comes from
- Cited
- manual page bootparam(7)
Practise this
Reading one question is not practice. The trainer will draw a short set from objective 101 and space the ones you get wrong.
More questions on this objective
- You have a module file for a network driver on disk but the driver is not loaded. Which command reports the module's description, license, its dependencies and the parameters it accepts, without loading it into the kernel? machine-checked
- A module was loaded together with several modules it depends on. Which command unloads that module and then also unloads the dependencies that are left with a use count of zero? machine-checked
- You are filing a hardware bug report and the maintainer asks for the raw PCI vendor and device ID numbers rather than the human-readable names lspci normally prints. Which lspci option produces the numeric IDs? machine-checked
- A USB device is not getting the device node you expect. You want to watch, live, the kernel uevents and the resulting udev events as you unplug and replug it. Which command does that? machine-checked
- On a traditional BIOS PC, the firmware has completed its power-on self test and selected the hard disk as the boot device. What happens next? machine-checked
- A systemd-based machine fails during a normal boot because a service hangs. At the boot loader menu you want to edit the kernel command line for this one boot so the system comes up in single-user rescue mode instead. Which parameter do you append? machine-checked