/dev/sdb: No such file or directory (but /dev/sdb1 etc. exists)

I’m not sure what is wrong here but when running fdisk -l I don’t get an output, and when running

    fdisk /dev/sdb # I get this
fdisk: unable to open /dev/sdb: No such file or directory

I’m running Ubuntu 12.10 Server
Can someone please tell me what I’m doing wrong? I want to delete /dev/sdb2-3 and just have one partition for sdb
The only thing I’ve done differently with the setup of this server is use ext4 instead of ext3, I figured the extra speed of ext4 would help since I am using SSDs now

root@sb8:~# ll /dev/sd*
brw-rw---- 1 root disk 8,  1 Nov 23 14:58 /dev/sda1
brw-rw---- 1 root disk 8,  2 Nov 23 14:55 /dev/sda2
brw-rw---- 1 root disk 8, 17 Nov 23 19:20 /dev/sdb1
brw-rw---- 1 root disk 8, 18 Nov 23 15:45 /dev/sdb2
brw-rw---- 1 root disk 8, 19 Nov 23 14:51 /dev/sdb3
brw-rw---- 1 root disk 8, 33 Nov 23 15:47 /dev/sdc1
brw-rw---- 1 root disk 8, 49 Nov 23 15:48 /dev/sdd1

root@sb8:~# cat /proc/partitions
major minor  #blocks  name

   8        0  117220824 sda
   8        1  112096256 sda1
   8        2    5119968 sda2
   8       16  117220824 sdb
   8       17   20971520 sdb1
   8       18   95718400 sdb2
   8       19     526304 sdb3
   8       48 1953514584 sdd
   8       49 1863013655 sdd1
   8       32 1953514584 sdc
   8       33 1863013655 sdc1

root@sb8:~# ll /dev/disk/by-path/
total 8
drwxr-xr-x 2 root root 4096 Nov 23 15:48 ./
drwxr-xr-x 5 root root 4096 Nov 23 15:42 ../
lrwxrwxrwx 1 root root   10 Nov 23 14:58 pci-0000:00:1f.2-scsi-0:0:0:0-part1 -> ../../sda1
lrwxrwxrwx 1 root root   10 Nov 23 19:20 pci-0000:00:1f.2-scsi-1:0:0:0-part1 -> ../../sdb1
lrwxrwxrwx 1 root root   10 Nov 23 15:45 pci-0000:00:1f.2-scsi-1:0:0:0-part2 -> ../../sdb2
lrwxrwxrwx 1 root root   10 Nov 23 15:47 pci-0000:00:1f.2-scsi-2:0:0:0-part1 -> ../../sdc1
lrwxrwxrwx 1 root root   10 Nov 23 15:48 pci-0000:00:1f.2-scsi-3:0:0:0-part1 -> ../../sdd1

root@sb8:~# df -T /dev
Filesystem     Type 1K-blocks    Used Available Use% Mounted on
/dev/root      ext4 111986032 1993108 104388112   2% /
Asked By: Goulash


On most non-embedded Linux installations, and many embedded installations, /dev is on a RAM-backed filesystem, not on the root partition. Most current installations have /dev as a tmpfs filesystem, with the udev daemon creating entries when notified by the kernel that some hardware is available. Recent kernel offer the possibility of having /dev mounted as the devtmpfs filesystem, which is directly populated by the kernel.

I think Ubuntu 12.10 still uses udev. Either way, /dev should not be on the root partition (as shown by the output of df /dev), it should be on its own filesystem. Did you accidentally unmount /dev?

The first thing you should try is to reboot: this should mount /dev properly. Before that, check that you haven’t added an entry for /dev in /etc/fstab (there should be no line with /dev in the second column).

Even with /dev on the root partition, you can create /dev/sdb by running

cd /dev
sudo MAKEDEV sdb

But not having /dev managed dynamically isn’t a stable configuration, you’ll run into similar problems for a lot of other hardware.

Most of the time this message occurs after one partition and you do not reread device partition table which was already loaded.

A simple partprobe or kpartx -u /dev/sdb1 (/dev/sdb1 is the new partition number to load into partition table) should be enough.

kpartx -u /dev/sdb1

Answered By: Devepre Devprg
Categories: Answers Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.