LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 736|回复: 8

请教一个问题,判断哪个设备是硬盘?

[复制链接]
发表于 2004-3-2 14:39:02 | 显示全部楼层 |阅读模式
[ -n "$(ls -d /proc/ide/hd* 2>/dev/null)" ] && hds=`ls -d /proc/ide/hd*`

                for device in $hds; do
       
                device=`echo $device|awk -F / '{print $4}'`
                echo $device
                [ -e "/proc/ide/${device}/media" ] || continue
                hdmedia=`cat /proc/ide/$device/media`
                echo $hdmedia

                if [ $hdmedia = disk ] ; then
                echo 1
                harddisk=$device
                fi
                done
                echo $harddisk


这个脚本的作用是检查/proc/ide目录下的文件,来判断哪个设备是硬盘。
如果有两块硬盘的时候,我原来预计$harddisk应该是hda,可是结果却是第二块硬盘。
请问这是为什么??????
明明是先检测的第一块硬盘,却不显示,而是显示第二块硬盘
发表于 2004-3-2 15:03:53 | 显示全部楼层
用dmesg来作试试看!
  1. dmesg|grep -o "^hd[a-z]:"|sort|uniq
复制代码
 楼主| 发表于 2004-3-2 15:17:56 | 显示全部楼层
老大,你这条命令的目的是什么??
查找有哪些硬盘么???
还是什么??
我是想问问我的脚本执行以后为什么会有显示hdb而不是hda.
发表于 2004-3-2 15:40:40 | 显示全部楼层
你先用我的那句检查第二个硬盘是否被识别嘛,
/home/javalee:dmesg|grep -o "^hd[a-z]:"|sort|uniq
hda:
hdc:
run urscript's result:
hda
disk
1
hdc
cdrom
hda
 楼主| 发表于 2004-3-2 15:56:45 | 显示全部楼层
我的两块硬盘都被识别的。
这个没有问题。
现在系统上有三个ide设备,hda hdb hdc.
在系统上只有两个ide设备的时候,hda hdc,显示结果是正确的。
就是现在老和我想得不一样
发表于 2004-3-2 16:09:42 | 显示全部楼层
有意思,这是我的,我只有一块硬盘
/home/javalee:ls -d /proc/ide/hd[a-z]
/proc/ide/hda  /proc/ide/hdc
贴出你的信息
 楼主| 发表于 2004-3-2 17:21:35 | 显示全部楼层
/proc/ide/hda /proc/ide/hdb /proc/ide/hdc
发表于 2004-3-2 17:33:26 | 显示全部楼层
我个人感觉简单问题复杂化了!用dmesg来找到被识别的硬盘,
  1. find /proc/ide -name media -exec dirname {} \; -exec cat {} \;
复制代码
 楼主| 发表于 2004-3-4 09:47:42 | 显示全部楼层
按照您的命令,现实的结果是
倒着的。也就是先hdc,然后hdb,hda。
这是为什么呢???
很想知道原因。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表