linux查看设备号
‘壹’ 在linux中如何知道自己的IDE设备的代号呢
root@rhas4 ~]# mount
/dev/sda5 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
none on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
[root@rhas4 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda5 52988504 6324684 43972132 13% /
none 256744 0 256744 0% /dev/shm
[root@rhas4 ~]# dmesg |grep sda
SCSI device sda: 156250000 512-byte hdwr sectors (80000 MB)
SCSI device sda: drive cache: write back
sda: sda1 sda2 sda3 < sda5 >;
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
EXT3 FS on sda5, internal journal
Adding 8225272k swap on /dev/sda2. Priority:-1 extents:1
[root@rhas4 ~]#
[root@rhas4 proc]# cat /proc/partitions
major minor #blocks name
8 0 78125000 sda
8 1 16056936 sda1
8 2 8225280 sda2
8 3 1 sda3
8 5 53833783 sda5
[root@rhas4 proc]# cat /etc/fstab
# This file is edited by fstab-sync - see 'man fstab-sync' for details
LABEL=/ / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
/dev/sda2 swap swap defaults 0 0
/dev/hda /media/cdrom auto pamconsole,exec,noauto,m
anaged 0 0
/dev/fd0 /media/floppy auto pamconsole,exec,noauto,m
anaged 0 0
注: 对于每一个硬盘(IDE 或 SCSI)设备,Linux 分配了一个 1 到 16 的序列号码,这就代表了这块硬盘上面的分区号码。例如,第一个 IDE 硬盘的第一个分区,在 Linux 下面映射的就是 hda1,第二个分区就称作是 hda2。对于 SCSI 硬盘则是 sda1、sdb1 等
‘贰’ Linux的设备和设备号是指什么
Linux中I/O设备分为两类:字符设备和块设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类。 (1)字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,键盘、串口、调制解调器都是典型的字符设备。 (2)块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘、软盘、CD-ROM驱动器和闪存都是典型的块设备,应用程序可以寻址磁盘上的任何位置,并由此读取数据。此外,数据的读写只能以块(通常是512B)的倍数进行。与字符设备不同,块设备并不支持基于字符的寻址。 总结一下,这两种类型的设备的根本区别在于它们是否可以被随机访问。字符设备只能顺序读取,块设备可以随机读取。
‘叁’ 为什么linux在/dev目录中使用ls -l命令看到有的设备没有主设备号
在Linux中只有字符设备才有设备号,设备号分为主设备号和次设备号,主设备号是为了区分不同类型的设备,次设备号是为了区分同一类型的不同设备。
说明:注意看c字符开头的文件是字符设备,所以都有主设备号(红框)以及次设备号(绿框)。
‘肆’ Linux的设备和设备号是指什么可否简单的解释一下
Linux中I/O设备分为两类:字符设备和块设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类。
(1)字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,键盘、串口、调制解调器都是典型的字符设备。
(2)块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘、软盘、CD-ROM驱动器和闪存都是典型的块设备,应用程序可以寻址磁盘上的任何位置,并由此读取数据。此外,数据的读写只能以块(通常是512B)的倍数进行。与字符设备不同,块设备并不支持基于字符的寻址。
总结一下,这两种类型的设备的根本区别在于它们是否可以被随机访问。字符设备只能顺序读取,块设备可以随机读取。
‘伍’ Linux 查看硬盘序列号 命令
linux下怎样查看硬盘型号和硬盘序列号
hdparm
-i
/dev/hda
这个命令更多的参数
解释
如下
(以下内容来自互联网)
-a
获取/设置硬盘每个簇的大小,默认值是8(即每个簇大小为4kb)。
-a
禁用/开启ide驱动器的
read-lookahead(不懂)
特性(默认是打开的)。
-b
获取/设置
bus
state(不懂)。
-b
设置高级电源管理特性(apm),如果驱动器支持。一个较小的值意味着更省电?一个较大的值意味着更好的性能,将它设置为255将在指定驱动器上关闭apm。
-c
查询/开启
(e)ide
32位
i/o
支持。加上一个数值可以开启或关闭它。一般设置为0,即禁用32位数据传输,为1则开启32位数据传输,为3则开启32位数据传输和一个特别传输序列,但会消耗一些系统资源。
-c
检查当前ide电源模式,可以使用-s/-y/-y/-z等参数控制ide电源模式。
-d
禁用/开启dma。这个参加目前只能在并行ide和pci界面上,适当使用-x和-d1参数是个好主意,打开dma可以获得最好的磁盘性能和降低cpu占用率。
-d
禁用/开启坏扇区管理特性。
-e
设置光驱速度,这不是必需的,因为光驱会自动调速,但是你如果想用它,可以设置一个数值,通常设置为2或4。
-f
为设备退出时同步和填满缓冲区,这个参数也会做-t和-t所做的事。
-g
显示驱动器几何值(柱面,磁头,扇区)和开始扇区。
-h
简要显示此命令的帮助信息。
-i
显示驱动器的基本信息。
-i
显示驱动器的详细信息。
-k
获取/设置“在重启后保持设置”,使用这个参数将使驱动器在软重启后保持-dmu选项(后面还有一大堆,不懂)
-k
获取/设置“在重启后保持设置”,使用这个参数将使驱动器在软重启后保持-apswxz选项,不是所有驱动器都支持这样做。
-l
锁住驱动器?(不懂)
-m
获取/设置在驱动器上为多扇区i/o计算扇区,开启这个参数将减少cpu开支30-50%,在大多数系统上它也能增加数据生产量?5-50%,使用这个参数会使某些型号的驱动器(如wd鱼子酱系列)减慢速度,大多数驱动器支持的最小数值可以是2,4,8,或16,更大也可以,视情况而定,大多数系统设置为16或32比较理想,wd的硬盘推荐设置为4到8,用-i参数可以看到当前硬盘的设置,某些驱动器要求支持复合模式,但在某些设置下会丢失数据。
-m
获取/设置自动噪音管理。很多驱动器支持使用磁盘降速的方法降噪,这个数值可以设置为从0至254,设置为128最为静音(速度最低),设置为254速度最快(噪音最大),某些驱动器自己规定两个级别(静音/快速),虽然你使用128至254之间的数值。
-n
获取或设置“忽略写错误”,最好不要使用在...(不懂)
-p
尝试重新调整ide界面芯片指定的pio模式,或自动设置为驱动器支持的最佳pio模式,这个特性在内核中仅支持少数芯片,某些ide芯片在单驱动器时不允许调整pio模式,大多数ide芯片或多或少地支持0到5的pio模式。
-p
为驱动器的内部预读装置设置最大扇区,不是所有的驱动器都支持。
-q
(不懂)。在使用-i
或-v或-t或-t时无效。
-q
设置标记队列深度(1或更大),或关闭标记队列深度。这只能在2.5.xx或更新的内核中使用,目前还只有很少的驱动器支持它。
-r
获取/设置设备为只读模式,设置之后设备将不能允许写入。
-r
注册一个ide界面,危险。要获得更多信息,看一下-u选项。
-s
设置驱动器等待超时,这个参数决定硬盘在多久未响应之后关闭主轴电机以省电,这个数值设置为0则关闭这个功能,设置为1至240时,时间将为5秒的倍数,即5秒至20分钟,设置为241至251时,时间将为30分钟的1-11倍,即30分钟到5.5小时,设置为252象征着21分钟,253为?(不懂),255即为21分15秒。
-t
测试读缓存的速度。
-t
也是测速度的。
-u
获取/设置???(不懂,晕)
-u
注销一个ide界面,危险!
-v
显示使用-i未显示出的所有设置。
-w
执行设备重启(危险),一般不要用这个参数。
-w
禁用/开启ide驱动器的写缓冲特性,默认设置为设备制造商指定的值。
-x
(看不懂,危险)。
-x
为较新的(e)ide/ata驱动器设置ide传输模式,与-d1参数一起使用,使用-x
mdma2将开启多字dma模式2传输,使用-x
sdma1将开启单字dma模式1传输,使用-x
udma2将开启ultradma模式传输(需要芯片组支持)。现在很多ide设备在启动时就已经自动调整到最佳的pio模式,要使用此参数应该调整好-p参数,严重警告!这个数据是pio模式值+8,即设置为09代表传输模式为pio模式1,10即pio模式2,11即pio模式3,设置为00则恢复默认pio模式,01代表禁用iordy(什么是iordy啊,晕),要开启mdma,这个数值是mdma模式值+32,要开启udma,这个数值是udma模式值+64,即66为udma2(ata33),68为udma4(ata66),69为udma5(ata100,那么70应该是udma6即ata133了?我猜测的)
-y
使ide驱动器立即进入低耗电等待模式,用-c参数可以检查当前的耗电模式。
-y
使ide驱动器立即进入低耗电睡眠模式,用-c参数可以检查当前的耗电模式。
-z
让内核重新读取指定设备上的分区表。
-z
禁用segate驱动器的自动省电功能(st3xxx型号),防止它们在一定时间后闲置。
‘陆’ linux怎么知道安装的是什么设备系统怎么知道安装的是什么设备
udev 是Linux kernel 2.6系列的设备管理器。它主要的功能是管理/dev目录底下的设备节点。它同时也是用来接替devfs及hotplug的功能,这意味着它要在添加/删除硬件时处理/dev目录以及所有用户空间的行为,包括加载firmware时。udev的最新版本依赖于升级后的Linux kernel 2.6.13的uevent接口的最新版本。使用新版本udev的系统不能在2.6.13以下版本启动,除非使用noudev参数来禁用udev并使用传统的/dev来进行设备读取。
inux 传统上使用静态设备创建方法,因此大量设备节点在 /dev 下创建(有时上千个),而不管相应的硬件设备是否真正存在。通常这由一个MAKEDEV脚本实现,这个脚本包含了许多通过世界上(有幽默意味,注)每一个可能存在的设备相关的主设备号和次设备号对mknod程序的调用。采用udev的方法,只有被内核检测到的设备才会获取为它们创建的设备节点。因为这些设备节点在每次系统启动时被创建,他们会被贮存在ramfs(一个内存中的文件系统,不占用任何磁盘空间).设备节点不需要大量磁盘空间,因此它使用的内存可以忽略。
udev 执行sysfs怎样知道设备出现 在系统?应该使用什么设备号?对于被编进kernel的driver,当被kernel监测到时,直接注册目标with sysfs。使用模块方式编译的,当模块被load时,如前。once sysfs文件系统被mounted (on /sys),the data which the built-in drivers registered with sysfs are available to userspace process and to udev for device node creation.
udev初始化脚本创建这些 设备节点当linux boot时;这个脚本starts with 注册/sbin/udev/ 作为一个 hotplug事件管理者。热插拔事件不应该发生在这个过程中,然而udev is registered just in case they do occur.然后udevstart program walk through the /sys filesystem and 创建符合描述的设备在/dev。例如:/sys/class/tty/vcs/dev/包括string "7:0".这个字符串被udevstart使用来创建/dev/vcs,主设备号7and此设备号0。每一个udevstart创建的设备的权限设置来 自/etc/udev.d/permission.d/目录。这些numbered(有限的) 基本相似LFS bootscripts.如果找不到创建的设备权限文件,默认perissions to 600 and ownership to root:root./dev目录下创建的节点根据 /etc/udev/rules.d/目录下的文件来configured.
当一个新设备连 接被kernel监测到,kernel会产生一个hotplug event 并查找/proc/sys/kernel/hotplug去找出管理设备连接的用户空间程序。udev初始化脚本注册udev as this hander.当hotplug events发生时,kernel通知udev 去检测/sys 文件系统附属于这个新设备的信息并create 它的/dev/入口。
这带给我们一个问题:exists with udev,and likewise with devfs before it.?就像先有鸡还是先有蛋。大部分linux distrubtions
管理加载模块通过/etc/moles.conf.access to 设备节点引起相应的kernel模块来加载。然而对于udev,这种方法不能正常工作,因为模块没有加载时,设备节点不存在。为了解决这个问题,模块脚本 加到了lfs-bootscripts包中,和/etc/sysconfig/moles在一起。通过添加mole names到mole file中,这些模块在计算机启动时被加载。这样,udev就可以去检测设备并创建相应的设备节点。