summaryrefslogtreecommitdiff
blob: 4a860562e40600240142f47c08928a68061562a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Unable to mount root fs on unknown-block(0,0)</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/><link href="styles.css" rel="stylesheet" type="text/css"/><style type="text/css"/></head><body><h1>Unable to mount root fs on unknown-block(0,0)</h1>

<p xmlns=""><b>Maintainers:</b>
  swift
</p>
<p xmlns=""><b>Keywords:</b>
  boot
  kernel
  kernel panic
</p>
<h2 xmlns="">Synopsis</h2>

<p xmlns="">
When you boot up your Gentoo system, you receive the following error before you
receive the Gentoo-specific start-up:
</p>

<pre xmlns="">
VFS: Cannot open root device "hda3" or unknow-block(0,0)
Please append a correct "root=" boot option
Kernel Panic: VFS: Unable to mount root fs on unknown-block(0,0)
</pre>


<h2 xmlns="">Environment</h2>

<p xmlns="">
This occurs when booting a new kernel or after a change in the bootloader
configuration.
</p>


<h2 xmlns="">Analysis</h2>

<p xmlns="">
When the Linux kernel has been booted and finished all its initial
configuration, it tries to mount the root filesystem. It uses the root boot
parameter to find out what the root filesystem is:
</p>

<pre xmlns="">
(Example from a grub.conf):
kernel /kernel-2.6.10-gentoo-r5 root=/dev/hda3
</pre>

<p xmlns="">
As the Linux kernel doesn't understand a string like "/dev/hda3" it translates
it to a set of numbers, called a major and minor number. In this error, the
major is zero, which is an illegal value. This occurs when the kernel has not
detected any hardware that can be called after the root device you told it to
boot (in the example: /dev/hda3).
</p>

<p xmlns="">
The error occurs when the kernel did not load the support driver it needs.
</p>


<h2 xmlns="">Solution</h2>

<p xmlns="">
There are three possible reasons for this issue to occur: you did not select the
correct support when configuring the kernel, the support for your disk is built
as a module and you are not using an initial root device or your hardware does
not identify itself as /dev/hda3.
</p>

<p xmlns="">
Make sure that your kernel configuration has support for the correct controller
(which governs your disk) and that it is built in the kernel, not as a module.
Otherwise your kernel would need to be able to mount the disk to find the module
to ... mount the disk. 
</p>

<p xmlns="">
If all that fails, double check if your controller really identifies the disk as
you think it does. Some Serial ATA controllers identify disks as IDE (hd), 
others as SCSI (sd).
</p>


</body></html>