- 论坛徽章:
- 0
|
对不起,各位,我来迟了
事情的背景是这样的:
我有两块硬盘做成RAID1,正常的时候看到是这样的状态
[root@10.0.4.1 mtc]# fdisk -l
Disk /dev/sda: 146.8 GB, 146815737856 bytes
255 heads, 63 sectors/track, 17849 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 499 4008186 83 Linux
/dev/sda2 500 17849 139363875 83 Linux
Disk /dev/sdb: 146.8 GB, 146815737856 bytes
255 heads, 63 sectors/track, 17849 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 499 4008186 83 Linux
/dev/sdb2 500 17849 139363875 83 Linux
为了健壮性方面的测试,现在我直接拔掉其中的一块硬盘如/dev/sdb, 然后再插入这块拔掉的硬盘,
却发现硬盘的device name变成了/dev/sdc,而不是想要的/dev/sdb,/dev/sdb也不见了,这样我按原来的程序那样
root权限,
(1)mknod -m 660 /dev/scsi/host0/bus0/target2/lun0/disc b 8 16 ------>建立块专用文件成功,指向一个硬件设备/dev/sdb
(2)installer partitions | sfdisk /dev/scsi/host0/bus0/target2/lun0/disc ---------->分区失败,
就失败了,因为设备名变化了,所以主次设备号也变化了,/dev/sdc的对应的【MAJOR MINOR】分别是【8 32】,而内核是根据主次设备号来识别设备的,【MAJOR MINOR】=【8 16】对应的却是/dev/sdb, 所以就出现了上面“/dev/scsi/host0/bus0/target2/lun0/disc: No such device or address,sfdisk: cannot open /dev/scsi/host0/bus0/target2/lun0/disc read-write”
我不太清楚内核对设备是如何命名的,现在我想看能不能冷拔插时保持设备的不变这样我程序就没问题了,所以我打算研究一下udev看能不能实现,各位认为如何,any comments are appreciated, thanks
[ 本帖最后由 kyle218 于 2008-9-1 14:20 编辑 ] |
|