linux 查看设备号(linux 查看硬盘序列号)
大家好,今天来为大家分享linux 查看设备号的一些知识点,和linux 查看硬盘序列号的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
Linux中如何通过设备号找到设备
一个字符设备或者块设备都有一个主设备号和次设备号。主设备号和次设备号统称为设备号。主设备号用来表示一个特定的驱动程序。次设备号用来表示使用该驱动程序的各设备。
查看主设备号:
# cat/proc/devices
Character devices:
1 mem
4/dev/vc/0
4 tty
4 ttyS
5/dev/tty
5/dev/console
5/dev/ptmx
6 lp
7 vcs
10 misc
13 input
14 sound
21 sg
29 fb
116 alsa
128 ptm
136 pts
162 raw
180 usb
189 usb_device
202 cpu/msr
203 cpu/cpuid
216 rfcomm
249 blkwatch_272
250 hidraw
251 usbmon
252 bsg
253 pcmcia
254 rtc
Block devices:
1 ramdisk
2 fd
259 blkext
7 loop
8 sd
9 md
11 sr
65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
253 device-mapper
254 mdp
如上所示,该命令会显示字符设备和块设备的主设备号。如果你想查看某个主设备号,那么可以
[root@mylnx01~]# cat/proc/devices| grep 253
253 pcmcia
253 device-mapper
其中Device Mapper,Device Mapper是 Linux 2.6内核中提供的一种从逻辑设备到物理设备的映射框架机制,在该机制下,用户可以很方便的根据自己的需要制定实现存储资源的管理策略,当前比较流行的 Linux下的逻辑卷管理器如 LVM2(Linux Volume Manager 2 version)、EVMS(Enterprise Volume Management System)、dmraid(Device Mapper Raid Tool)等都是基于该机制实现的。
次设备号查看
[root@mylnx01~]# ls-l/dev或 ll/dev
[root@mylnx01~]# ll/dev| grep 253| grep-v grep
brw-rw---- 1 root root 253, 0 Jul 17 23:08 dm-0
brw-rw---- 1 root root 253, 1 Jul 17 23:08 dm-1
brw-rw---- 1 root root 253, 2 Jul 17 23:08 dm-2
brw-rw---- 1 root root 253, 3 Jul 17 23:08 dm-3
brw-rw---- 1 root root 253, 4 Jul 17 23:09 dm-4
brw------- 1 root root 253, 1 Jul 17 23:09 root
但是在一台服务器的日志信息遇到下面错误信息,通过/dev没有找到次设备号为253:14的块设备。如下所示
Jul 19 05:02:01 mylnx01 kernel: BLKWATCH ERR: Attempt to get a sector index out of the bitmap bounds.
Jul 19 05:02:01 mylnx01 kernel: BLKWATCH ERR: Critical error 1 happened for device 253:14. Additional info: Failed to mark block as dirty.
[root@getlnx01~]# ll/dev| grep 253| grep-v grep
因为这个设备是一个VG,所以上述命令无法找到设备,不过可以通过命令dmsetup查看。如下所示:
# dmsetup ls
VolGroup03-LogVol00--PS--user--snapshot-cow(253, 15)
VolGroup05-LogVol00-real(253, 5)
VolGroup03-LogVol00--PS--user--snapshot(253, 16)
VolGroup00-LogVol00-real(253, 0)
VolGroup00-LogVol00--PS--user--snapshot(253, 3)
VolGroup01-LogVol00--PS--user--snapshot-cow(253, 23)
VolGroup05-LogVol00(253, 6)
VolGroup04-LogVol00-real(253, 9)
VolGroup04-LogVol00(253, 10)
VolGroup05-LogVol00--PS--user--snapshot(253, 8)
VolGroup04-LogVol00--PS--user--snapshot-cow(253, 11)
VolGroup03-LogVol00(253, 14)
VolGroup02-LogVol00--PS--user--snapshot(253, 20)
VolGroup03-LogVol00-real(253, 13)
VolGroup02-LogVol00(253, 18)
VolGroup02-LogVol00--PS--user--snapshot-cow(253, 19)
VolGroup01-LogVol00(253, 22)
VolGroup02-LogVol00-real(253, 17)
VolGroup00-LogVol01(253, 4)
VolGroup04-LogVol00--PS--user--snapshot(253, 12)
VolGroup00-LogVol00(253, 1)
VolGroup05-LogVol00--PS--user--snapshot-cow(253, 7)
VolGroup01-LogVol00--PS--user--snapshot(253, 24)
VolGroup00-LogVol00--PS--user--snapshot-cow(253, 2)
VolGroup01-LogVol00-real(253, 21)
关于次设备号的主要用途,这篇博客主设备号和次设备号介绍了部分内容。
1、区分设备驱动程序控制的实际设备;
2、区分不同用途的设备(misc系列设备)
3、区分块设备的分区(partition)
通常,为了使应用程序区分所控制设备的类型,内核使用主设备号。而存在多台同类设备时,为了选择其中的一种,设备驱动程序就使用次设备号。
# ll/dev/| grep sd#或者命令 ll/dev/| grep disk
brw-r----- 1 root disk 8, 0 Jul 17 23:08 sda
brw-r----- 1 root disk 8, 1 Jul 17 23:10 sda1
brw-r----- 1 root disk 8, 2 Jul 17 23:08 sda2
brw-r----- 1 root disk 8, 3 Jul 17 23:08 sda3
brw-r----- 1 root disk 8, 16 Jul 17 23:08 sdb
brw-r----- 1 root disk 8, 17 Jul 17 23:08 sdb1
brw-r----- 1 root disk 8, 18 Jul 17 23:08 sdb2
brw-r----- 1 root disk 8, 21 Jul 17 23:08 sdb5
brw-r----- 1 root disk 8, 32 Jul 17 23:08 sdc
brw-r----- 1 root disk 8, 33 Jul 17 23:08 sdc1
brw-r----- 1 root disk 8, 34 Jul 17 23:08 sdc2
brw-r----- 1 root disk 8, 37 Jul 17 23:08 sdc5
brw-r----- 1 root disk 8, 48 Jul 17 23:08 sdd
brw-r----- 1 root disk 8, 49 Jul 17 23:08 sdd1
brw-r----- 1 root disk 8, 50 Jul 17 23:08 sdd2
brw-r----- 1 root disk 8, 51 Jul 17 23:08 sdd3
brw-r----- 1 root disk 8, 53 Jul 17 23:08 sdd5
brw-r----- 1 root disk 8, 64 Jul 17 23:08 sde
brw-r----- 1 root disk 8, 65 Jul 17 23:08 sde1
brw-r----- 1 root disk 8, 66 Jul 17 23:08 sde2
brw-r----- 1 root disk 8, 67 Jul 17 23:08 sde3
brw-r----- 1 root disk 8, 69 Jul 17 23:08 sde5
brw-r----- 1 root disk 8, 80 Jul 17 23:08 sdf
brw-r----- 1 root disk 8, 81 Jul 17 23:08 sdf1
brw-r----- 1 root disk 8, 85 Jul 17 23:08 sdf5
brw-r----- 1 root disk 8, 96 Jul 17 23:08 sdg
brw-r----- 1 root disk 8, 97 Jul 17 23:08 sdg1
brw-r----- 1 root disk 8, 98 Jul 17 23:08 sdg2
brw-r----- 1 root disk 8, 101 Jul 17 23:08 sdg5
brw-r----- 1 root disk 8, 112 Jul 17 23:08 sdh
brw-r----- 1 root disk 8, 113 Jul 17 23:08 sdh1
brw-r----- 1 root disk 8, 117 Jul 17 23:08 sdh5
Linux系统中列出PCI设备和USB设备的命令详解
lspci
NAME
lspci-列出所有PCI设备 [[ ]]
总览 SYNOPSIS
lspci [ options ] [[ ]]
描述 DESCRIPTION
lspci是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具。
为了能使用这个命令所有功能,你需要有 linux 2.1.82或以上版本,支持/proc/bus/pci接口的内核。在旧版本内核中,PCI工具必须使用只有root才能执行的直接硬件访问,而且总是出现竞争状况以及其他问题。
如果你要报告 PCI设备驱动中,或者是 lspci自身的 bugs,请在报告中包含 lspci-vvx的输出。
[[ ]]
选项 OPTIONS
-v
使得 lspci以冗余模式显示所有设备的详细信息。
-vv
使得 lspci以过冗余模式显示更详细的信息(事实上是 PCI设备能给出的所有东西)。这些数据的确切意义没有在此手册页中解释,如果你想知道更多,请参照/usr/include/linux/pci.h或者 PCI规范。
-n
以数字形式显示 PCI生产厂商和设备号,而不是在 PCI ID数据库中查找它们。
-x
以十六进制显示 PCI配置空间(configuration space)的前64个字节映象(标准头部信息)。此参数对调试驱动和 lspci本身很有用。
-xxx
以十六进制显示所有 PCI配置空间的映象。此选项只有 root可用,并且很多 PCI设备在你试图读取配置空间的未定义部分时会崩溃(此操作可能不违反PCI标准,但是它至少非常愚蠢)。
-b
以总线为中心进行查看。显示所有 IRQ号和内存地址,就象 PCI总线上的卡看到的一样,而不是内核看到的内容。
-t
以树形方式显示包含所有总线、桥、设备和它们的连接的图表。
-s [[bus]:][slot][.[func]]
仅显示指定总线、插槽上的设备或设备上的功能块信息。设备地址的任何部分都可以忽略,或以*代替(意味着所有值)。所有数字都是十六进制。例如:0:指的是在0号总线上的所有设备;0指的是在任意总线上0号设备的所有功能块;0.3选择了所有总线上0号设备的第三个功能块;.4则是只列出每一设备上的第四个功能块。
-d [vendor]:[device]
只显示指定生产厂商和设备 ID的设备。这两个 ID都以十六进制表示,可以忽略或者以*代替(意味着所有值)。
-i file
使用 file作为 PCI ID数据库而不是使用默认的/usr/share/hwdata/pci.ids。
-p dir
使用 dir作为包含 PCI总线信息的目录而不是使用默认的目录/proc/bus/pci。
-m
以机器可读的方式转储 PCI设备数据(支持两种模式:普通和冗余),便于脚本解析。
-M
使用总线映射模式,这种模式对总线进行全面地扫描以查明总线上的所有设备,包括配置错误的桥之后的设备。请注意,此操作只应在调试时使用,并可能造成系统崩溃(只在设备有错误的时候,但是不幸的是它们存在),此命令只有 root可以使用。同时,在不直接接触硬件的 PCI访问模式中使用-M参数没有意义,因为显示的结果(排除 lspci中的 bug的影响)与普通的列表模式相同。
--version
显示 lspci的版本。这个选项应当单独使用。
[[ ]]
PCILIB选项 PCILIB OPTIONS
PCI工具使用 PCILIB(一种可移植的库,提供平台独立的函数来访问 PCI配置空间)来和PCI卡交互。下面的选项用来控制库参数,特别是所用访问模式的指定。默认情况下,PCILIB使用第一种可用的访问模式,不会显示任何调试信息。每一个开关选项都列出了一组它所支持的硬件/软件列表。
-P dir
使用 linux 2.1风格的配置,直接访问目录 dir而非/proc/bus/pci目录。(只能在 linux 2.1或以上版本中使用)
-H1
通过 Intel架构 1来实现直接硬件访问。(只能用于 i386及其兼容机)
-H2
通过Intel架构 2来实现直接硬件访问。警告:此模式只能寻址任何总线上的前16个设备,并且在很多情况下相当不可靠。(只能用于 i386及其兼容机)
-S
使用 PCI系统调用访问。(只能用于 Alpha和 Ultra-Sparc上的 Linux)
-F file
从所给的包含 lspci-x命令输出的文件中获取相关信息。这在分析用户提交的错误报告时很有用,因为你可以用任何方式来显示硬件配置信息而无需为了获取更多信息打扰用户。(可用于所有系统)
-G
增加库的调试等级。(可用于所有系统)
例:
a,列出所有PCI设备
代码如下:
[root@localhost zhangy]# lspci-tv#列出所有PCI设备
b,查看网卡型号
代码如下:
[root@localhost zhangy]# lspci|grep-i eth
05:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8039 PCI-E Fast Ethernet Controller(rev 14)
lsusb
lsusb作用:
列出所有usb设备
lsusb语法:
lsusb [参数]
lsusb参数:
-D设备路径不扫描/proc/bus/usb,而以指定的设备路径取代
-p内核路径使用其他USB设备在内核的路径,默认为/proc/bus/usb
-t将USB设备以树状架构输出
-v列出较详细的运行过程
-vv列出完整的运行过程
-V显示版本信息
例:
代码如下:
[root@localhost zhangy]# lsusb #列出所有usb设备
如何查看Linux 硬件配置信息
如何查看LINUX硬件配置信息
1.查看机器所有硬件信息: dmidecode|more dmesg|more
这2个命令出来的信息都非常多,所以建议后面使用"|more"便于查看 2.查看CPU信息方法一:
Linux下CPU相关的参数保存在/proc/cpuinfo文件里 cat/proc/cpuinfo|more方法二:
采用命令 dmesg| grep CPU可以查看到相关CPU的启动信息查看CPU的位数: getconf LONG_BIT 3.查看Mem信息
cat/proc/meminfo|more(注意输出信息的最后一行:MachineMem: 41932272 kB) free-m top
4.查看磁盘信息方法一:
fdisk-l可以看到系统上的磁盘(包括U盘)的分区以及大小相关信息。方法二:直接查看 cat/proc/partitions 5.查看网卡信息方法一:
ethtool eth0采用此命令可以查看到网卡相关的技术指标(不一定所有网卡都支持此命令) ethtool-i eth1加上-i参数查看网卡驱动可以尝试其它参数查看网卡相关技术参数方法二:
也可以通过dmesg| grep eth0等看到网卡名字(厂家)等信息
通过查看/etc/sysconfig/network-scripts/ifcfg-eth0可以看到当前的网卡配置包括IP、网关地址等信息。当然也可以通过ifconfig命令查看。 6.如何查看主板信息? lspci
7.如何挂载ISO文件 8.如何查看光盘相关信息方法一:
插入CD光碟后,在本人的RHEL5系统里,光碟文件是/dev/cdrom,因此只需 mount/dev/cdrom mount_point即可。 [root@miix tmp]# mount/dev/cdrom mount_point
mount: block device/dev/cdrom is write-protected, mounting read-only其实仔细看一下,光驱的设备文件是 hdc [root@miix tmp]# ls-l/dev/cdrom*
lrwxrwxrwx 1 root root 3 01-08 08:54/dev/cdrom-> hdc lrwxrwxrwx 1 root root 3 01-08 08:54/dev/cdrom-hdc-> hdc因此我们也可以这样 mount/dev/hdc mount_point如果光驱里没放入有效光盘,则报错: [root@miix tmp]# mount/dev/hdc mount_point mount:找不到介质 9.如何查看USB设备相关方法一:
其实通过 fdisk-l命令可以查看到接入的U盘信息,本人的U盘信息如下: Disk/dev/sda: 2012 MB, 2012217344 bytes 16 heads, 32 sectors/track, 7676 cylinders Units= cylinders of 512* 512= 262144 bytes Device Boot Start End Blocks Id System/dev/sda1* 16 7676 1961024 b W95 FAT32 U盘的设备文件是/dev/sda,2G大小,FAT32格式。如果用户登陆的不是Linux图形界面,U盘不会自动挂载上来。此时可以通过手工挂载(mount): mount/dev/sda1 mount_point
以上命令将U盘挂载到当前目录的 mount_point目录,注意挂的是 sda1不是 sda。卸载命令是 umount mount_point
Linux默认没有自带支持NTFS格式磁盘的驱动,但对FAT32支持良好,挂载的时候一般不需要-t vfat参数。
如果支持ntfs,对ntfs格式的磁盘分区应使用-t ntfs参数。如果出现乱码情况,可以考虑用-o iocharset=字符集参数。可以通过 lsusb命令查看 USB设备信息哦: [root@miix tmp]# lsusb
Bus 001 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000
Bus 004 Device 002: ID 0951:1613 Kingston Technology Bus 004 Device 001: ID 0000:0000