fdisk -l shows a partition is not in /dev directory
Solution 1:
You may create this node manually: mknod /dev/hdc1 b 22 1
Then you should check if can be read cat /dev/hdc1 > /dev/null
Either kernel can't find a partition, or udev doesn't create this node automatically. udev is responsible of creation of this files
If manual creation of /dev/hdc1 will fail, you can mount the partition manually specifying the offset:
losetup /dev/loop0 /dev/hdc -o $((63*512)) mount /dev/loop0 /mnt/hdc1
You should use fdisk -l -u /dev/hdc
to rectify 63
.
Solution 2:
Sometimes people experience this problem when they're dealing with removable media, or they've freshly partitioned a hard-drive and the kernel hasn't updated the dev nodes yet.
Perhaps there are other ways of reaching this condition, maybe the Kernel needs a special module to decode the partition table, but that module wasn't available till way too late in the boot process?
So before you reach for mknod
, it can be sometimes beneficial to trigger the Kernel to re-read the partition table with hdparm
hdparm -z /dev/hdc
Here's the related man hdparm
excerpt:
-z Force a kernel re-read of the partition table of the specified device(s).