mdev 會 miss 掉 device node ?? BUG ??
在 Marvell 88F6282 上 kernel version 2.6.31.8, busybox 1.20.2, parted 1.9 上
使用 parted 切割 HDD, 有時後會發生 device node 少建, ?????
parted -s /dev/sda mklabel gpt
parted /dev/sda -s mkpart primary ext4 20kB 210419917kB
parted /dev/sda -s mkpart primary ext4 210419918kB 243148363kB
parted /dev/sda -s mkpart primary linux-swap 243148364kB 244196939kB
parted /dev/sda -s mkpart primary ext4 244196940kB 244198604kB
如上所示, 就是會少某些 /dev/sdaX
同上的方式在別的平台, 似乎不會 @@@@
看來 kernel 的 hotplug 在 parted 切 partition 時會 remove 全部再新增全部的 node,
而送出來的 command, 並不會合下面的順序
Variable | Meaning |
---|---|
ACTION | Is the device being added or removed? |
DEVPATH | Path in the sysfs tree to the device |
FIRMWARE | Name of the firmware the device would like loaded |
MAJOR | For devices with device nodes, the major number |
MINOR | For devices with device nodes, the minor number |
SUBSYSTEM | The subsystem the device is part of |
有時順序會錯亂, 也許是這個問題???沒有繼續追下去 ....
將 echo /sbin/mdev > /proc/sys/kernel/hotplug
換成
echo /plug.sh > /proc/sys/kernel/hotplug
#!/bin/sh
name=$(basename ${DEVPATH})
cd /dev
rm -f ${name}
if [ "${SUBSYSTEM}" = "block" ] ; then
type="b"
else
type="c"
fi
if [ "${ACTION}" = "add" ] ; then
mknod ${name} ${type} ${MAJOR} ${MINOR}
fi
不要用 mdev 來做, 似乎解決了這個問題, 可以利用這個 script 來瞭解 node 的建立
留言
張貼留言