# Block devices missing in /dev [SOLVED]

## selig

I have recently rebooted a server after updating to baselayout-2. However, block devices were completely missing after the reboot so I am pretty lucky SSH started at all and I could log in.

I created the device nodes manually and everything seems to work now. udev even created symlinks for /dev/md* devices.

I do not know what caused this. I am using hardened-sources-2.6.28-r9 and udev-151-r1. I know these are a bit old but could it have caused the missing device nodes? Currently, I have this in /dev:

```

block               random  tty10  tty36  tty61           usbdev6.1_ep81

bus                 root    tty11  tty37  tty62           usbdev7.1

console             rtc0    tty12  tty38  tty63           usbdev7.1_ep00

core                sda     tty13  tty39  tty7            usbdev7.1_ep81

cpu                 sda1    tty14  tty4   tty8            usbdev8.1

cpu_dma_latency     sda2    tty15  tty40  tty9            usbdev8.1_ep00

disk                sdb     tty16  tty41  urandom         usbdev8.1_ep81

fd                  sdb1    tty17  tty42  usbdev1.1       vcs

full                sdb2    tty18  tty43  usbdev1.1_ep00  vcsa

grsec               sdb3    tty19  tty44  usbdev1.1_ep81  vcsa1

hpet                sdc     tty2   tty45  usbdev2.1       vcsa12

char                sdc1    tty20  tty46  usbdev2.1_ep00  vcsa2

initctl             sdd     tty21  tty47  usbdev2.1_ep81  vcsa3

input               sdd1    tty22  tty48  usbdev3.1       vcsa4

kmsg                sdd2    tty23  tty49  usbdev3.1_ep00  vcsa5

log                 sdd3    tty24  tty5   usbdev3.1_ep81  vcsa6

mcelog              sg0     tty25  tty50  usbdev4.1       vcs1

md                  sg1     tty26  tty51  usbdev4.1_ep00  vcs12

md0                 sg2     tty27  tty52  usbdev4.1_ep81  vcs2

md1                 sg3     tty28  tty53  usbdev5.1       vcs3

md8                 sg4     tty29  tty54  usbdev5.1_ep00  vcs4

mem                 shm     tty3   tty55  usbdev5.1_ep81  vcs5

network_latency     stderr  tty30  tty56  usbdev5.2       vcs6

network_throughput  stdin   tty31  tty57  usbdev5.2_ep00  zero

null                stdout  tty32  tty58  usbdev5.2_ep81

port                tty     tty33  tty59  usbdev5.2_ep82

ptmx                tty0    tty34  tty6   usbdev6.1

pts                 tty1    tty35  tty60  usbdev6.1_ep00

```

I created the md* and sd* device nodes manually.

my rc-status:

```

# rc-status sysinit

Runlevel: sysinit

 dmesg                                                             [  started  ]

 udev                                                              [  started  ]

 devfs                                                             [  started  ]

# rc-status boot

Runlevel: boot

 hwclock                                                           [  started  ]

 modules                                                           [  started  ]

 fsck                                                              [  started  ]

 root                                                              [  started  ]

 hostname                                                          [  started  ]

 mtab                                                              [  started  ]

 localmount                                                        [  started  ]

 procfs                                                            [  started  ]

 urandom                                                           [  started  ]

 sysctl                                                            [  started  ]

 bootmisc                                                          [  started  ]

 termencoding                                                      [  started  ]

 net.lo                                                            [  started  ]

 consolefont                                                       [  started  ]

 keymaps                                                           [  started  ]

 syslog-ng                                                         [  started  ]

 swap                                                              [  started  ]

# rc-status default

Runlevel: default

 net.eth0                                                          [  started  ]

 net.eth1                                                          [  started  ]

 svscan                                                            [  started  ]

 ntp-client                                                        [  stopped  ]

 ntpd                                                              [  crashed  ]

 courier-pop3d-ssl                                                 [  started  ]

 udev-postmount                                                    [  started  ]

 proftpd                                                           [  started  ]

 netmount                                                          [  started  ]

 mysql                                                             [  started  ]

 sshd                                                              [  crashed  ]

 apache2                                                           [  started  ]

 clamd                                                             [  started  ]

 courier-imapd                                                     [  started  ]

 courier-imapd-ssl                                                 [  started  ]

 courier-pop3d                                                     [  started  ]

 smartd                                                            [  started  ]

 spamd                                                             [  started  ]

 vixie-cron                                                        [  started  ]

 local                                                             [  started  ]

```

"crashed" ntpd and ssh are bogus messages because of missing .pid (they started before I was able to mount /var)

```

# LANG=C df -h

Filesystem            Size  Used Avail Use% Mounted on

rootfs                9.2G  6.9G  2.3G  76% /

/dev/root             9.2G  6.9G  2.3G  76% /

rc-svcdir             1.0M   92K  932K   9% /lib64/rc/init.d

udev                   10M   60K   10M   1% /dev

none                  5.9G     0  5.9G   0% /dev/shm

temp                  768M  1.2M  767M   1% /tmp

/dev/md1              915G  557G  358G  61% /var

```

Root is on /dev/md0. The system was able to boot because it has kernel-level raid autoconfiguration but I had to mount /dev/md1 manually because the device node had been missing until I created it...

What should I do/examine? I do not want to update the kernel and udev and reboot the system again just to find it in the same unusable state.Last edited by selig on Sun Aug 28, 2011 10:02 pm; edited 1 time in total

----------

## redagadir

most probably udev didn't start, or if the problem is only related to /dev/md*, this means mdadm didn't do the scan at startup.

could you check with both?Last edited by redagadir on Wed Dec 21, 2011 9:12 am; edited 1 time in total

----------

## selig

Well, udev is running fine. And those raid arrays are automatically started during the kernel boot process (root is on one of them). Maybe it is really because of the old versions? I will have to reboot the server in a couple of days so I guess I will see what happens after I upgrade kernel and udev.

----------

## VoidMage

Well, in the migration guide, the need to add lvm/mdraid to boot, if  you use them is mentioned.

Also, the changes in kernel module loading might be relevant.

But udev might just be pretending to run - there's i.e. CONFIG_SYSFS_DEPRECATED issue.

----------

## selig

Updating udev and kernel to recent versions and making sure udev does not complain about any kernel options helped.

----------

## dtlgc

Did you find a solution to this?

Having similar problem...

fdisk -l returns nothing....

looking in dev all devices are listed

>>>>>>>>>>>>

rebuilt kernel from this advice:

# mdadm --detail --scan >> /etc/mdadm.conf 

# genkernel --mdadm --mdadm-config=/etc/mdadm.conf ramdisk 

from here: https://forums.gentoo.org/viewtopic-t-881795-start-0.html

can now see devices with fdisk

>>>>>>>>>>>>

----------

## selig

It seemed to be an issue with a deprecated kernel configuration option being turned on - and because of that, udev (which I had updated) did not work correctly. I turned all deprecated options off, updated the kernel and it started working again. However, I am not using genkernel, I am using hardened-sources. I can post my functional .config if it helps you.

----------

## dtlgc

That .config might be nice to review - I am also using hardened-sources

----------

## selig

Here you go: http://pastebin.com/6Zsjgx2D, I hope it helps!

----------

