Skip to content

linux系统挂载了存储设备之后会有一些信息生成,这时候可以通过一些命令查看获取存储设备的信息

有些命令和工具可能系统没有自带,需要执行安装操作,像Ubuntu系统一般执行apt install 工具名称就可以了

/proc/partitions

shell
$ cat /proc/partitions 
major minor  #blocks  name

   8        0  468851544 sda
 259        0 1000204632 nvme0n1
 259        1     975872 nvme0n1p
$ cat /proc/partitions 
major minor  #blocks  name

   8        0  468851544 sda
 259        0 1000204632 nvme0n1
 259        1     975872 nvme0n1p
  • major: 数字可以看做是设备驱动程序,被同一设备驱动程序管理的设备有相同的major device number
  • minor: minor device number代表被访问的具体设备
  • blocks: 表示存储设备都块的数量
  • name: 存储设备的标签

df

查看存储设备使用情况

shell
$ sudo df -h
文件系统        大小  已用  可用 已用% 挂载点
tmpfs           3.2G  4.1M  3.2G    1% /run
/dev/nvme0n1p5  368G  187G  163G   54% /
tmpfs            16G  269M   16G    2% /dev/shm
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
tmpfs           4.0M     0  4.0M    0% /sys/fs/cgroup
tmpfs            16G     0   16G    0% /run/qemu
/dev/nvme0n1p1  920M  282M  575M   33% /boot
/dev/nvme0n1p2  549G  422G  100G   81% /home
/dev/nvme0n1p4  953M  6.1M  947M    1% /boot/efi
/dev/sda        440G  392G   25G   95% /home/gong/files
$ sudo df -h
文件系统        大小  已用  可用 已用% 挂载点
tmpfs           3.2G  4.1M  3.2G    1% /run
/dev/nvme0n1p5  368G  187G  163G   54% /
tmpfs            16G  269M   16G    2% /dev/shm
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
tmpfs           4.0M     0  4.0M    0% /sys/fs/cgroup
tmpfs            16G     0   16G    0% /run/qemu
/dev/nvme0n1p1  920M  282M  575M   33% /boot
/dev/nvme0n1p2  549G  422G  100G   81% /home
/dev/nvme0n1p4  953M  6.1M  947M    1% /boot/efi
/dev/sda        440G  392G   25G   95% /home/gong/files

fdisk

shell
$ sudo fdisk -l
....
Disk /dev/nvme0n1:953.87 GiB,1024209543168 字节,2000409264 个扇区
Disk model: INTEL SSDPEKNW010T8                     
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:90A66A56-6910-428C-82FF-E82C0CAB6978

设备                 起点       末尾       扇区   大小 类型
/dev/nvme0n1p1       2048    1953791    1951744   953M Linux 文件系统
/dev/nvme0n1p2    1953792 1173829631 1171875840 558.8G Linux 文件系统
/dev/nvme0n1p3 1173829632 1212891135   39061504  18.6G Linux swap
/dev/nvme0n1p4 1212891136 1214844927    1953792   954M EFI 系统
/dev/nvme0n1p5 1214844928 2000408575  785563648 374.6G Linux 文件系统
.....
$ sudo fdisk -l
....
Disk /dev/nvme0n1:953.87 GiB,1024209543168 字节,2000409264 个扇区
Disk model: INTEL SSDPEKNW010T8                     
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:90A66A56-6910-428C-82FF-E82C0CAB6978

设备                 起点       末尾       扇区   大小 类型
/dev/nvme0n1p1       2048    1953791    1951744   953M Linux 文件系统
/dev/nvme0n1p2    1953792 1173829631 1171875840 558.8G Linux 文件系统
/dev/nvme0n1p3 1173829632 1212891135   39061504  18.6G Linux swap
/dev/nvme0n1p4 1212891136 1214844927    1953792   954M EFI 系统
/dev/nvme0n1p5 1214844928 2000408575  785563648 374.6G Linux 文件系统
.....

可以看到磁盘的挂载点是/dev/nvme0n1, 设备最大存储字节数和扇区数量,该设备下面的每个分区的情况等

parted

shell
$ sudo parted -l 
型号:INTEL SSDPEKNW010T8 (nvme)
磁盘 /dev/nvme0n1: 1024GB
扇区大小 (逻辑/物理):512B/512B
分区表:gpt
磁盘标志:

编号  起始点  结束点  大小    文件系统        名称  标志
 1    1049kB  1000MB  999MB   ext4
 2    1000MB  601GB   600GB   ext4
 3    601GB   621GB   20.0GB  linux-swap(v1)        交换
 4    621GB   622GB   1000MB  fat32                 启动, esp
 5    622GB   1024GB  402GB   ext4
$ sudo parted -l 
型号:INTEL SSDPEKNW010T8 (nvme)
磁盘 /dev/nvme0n1: 1024GB
扇区大小 (逻辑/物理):512B/512B
分区表:gpt
磁盘标志:

编号  起始点  结束点  大小    文件系统        名称  标志
 1    1049kB  1000MB  999MB   ext4
 2    1000MB  601GB   600GB   ext4
 3    601GB   621GB   20.0GB  linux-swap(v1)        交换
 4    621GB   622GB   1000MB  fat32                 启动, esp
 5    622GB   1024GB  402GB   ext4

该输出和fdisk的大体一样,但是没有展示loop等伪设备信息

hwinfo

shell
$ sudo apt install hwinfo
$ sudo apt install hwinfo

该工具可以获取系统的大部分硬件信息,包括cpu,内存,磁盘等

现在主要展示磁盘信息

shell
$ sudo hwinfo --disk
29: PCI 00.0: 10600 Disk                                        
  [Created at block.245]
  Unique ID: wLCS.k7s0ooYnsC5
  Parent ID: B35A.DDz_x3DkYn0
  SysFS ID: /class/block/nvme0n1
  SysFS BusID: nvme0
  SysFS Device Link: /devices/pci0000:00/0000:00:1d.0/0000:02:00.0/nvme/nvme0
  Hardware Class: disk
  Model: "Intel SSD 660P Series"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0xf1a8 "SSD 660P Series"
  SubVendor: pci 0x8086 "Intel Corporation"
  SubDevice: pci 0x390d 
  Driver: "nvme"
  Driver Modules: "nvme"
  Device File: /dev/nvme0n1
  Device Files: /dev/nvme0n1, /dev/disk/by-id/nvme-INTEL_SSDPEKNW010T8_BTNH945004391P0B, /dev/disk/by-path/pci-0000:02:00.0-nvme-1, /dev/disk/by-id/nvme-eui.0000000001000000e4d25c0586905101
  Device Number: block 259:0
  Geometry (Logical): CHS 976762/64/32
  Size: 2000409264 sectors a 512 bytes
  Capacity: 953 GB (1024209543168 bytes)
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #7 (Non-Volatile memory controller)
$ sudo hwinfo --disk
29: PCI 00.0: 10600 Disk                                        
  [Created at block.245]
  Unique ID: wLCS.k7s0ooYnsC5
  Parent ID: B35A.DDz_x3DkYn0
  SysFS ID: /class/block/nvme0n1
  SysFS BusID: nvme0
  SysFS Device Link: /devices/pci0000:00/0000:00:1d.0/0000:02:00.0/nvme/nvme0
  Hardware Class: disk
  Model: "Intel SSD 660P Series"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0xf1a8 "SSD 660P Series"
  SubVendor: pci 0x8086 "Intel Corporation"
  SubDevice: pci 0x390d 
  Driver: "nvme"
  Driver Modules: "nvme"
  Device File: /dev/nvme0n1
  Device Files: /dev/nvme0n1, /dev/disk/by-id/nvme-INTEL_SSDPEKNW010T8_BTNH945004391P0B, /dev/disk/by-path/pci-0000:02:00.0-nvme-1, /dev/disk/by-id/nvme-eui.0000000001000000e4d25c0586905101
  Device Number: block 259:0
  Geometry (Logical): CHS 976762/64/32
  Size: 2000409264 sectors a 512 bytes
  Capacity: 953 GB (1024209543168 bytes)
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #7 (Non-Volatile memory controller)

包含字段主要有

  • Model: "Intel SSD 660P Series": 设备型号
  • Vendor: pci 0x8086 "Intel Corporation"厂商信息
  • Driver Modules: "nvme"驱动模块信息
  • Size: 2000409264 sectors a 512 bytes, Capacity: 953 GB (1024209543168 bytes)存储空间大小

/sys/class/block

下面所有操作都是在路径为/sys/class/block开始的

查看所有存储设备

shell
$ ls -l /sys/class/block
lrwxrwxrwx 1 root root 0 六月    5 09:01 loop9 -> ../../devices/virtual/block/loop9
lrwxrwxrwx 1 root root 0 六月    5 09:01 nvme0n1 -> ../../devices/pci0000:00/0000:00:1d.0/0000:02:00.0/nvme/nvme0/nvme0n1
lrwxrwxrwx 1 root root 0 六月    5 09:01 nvme0n1p1 -> ../../devices/pci0000:00/0000:00:1d.0/0000:02:00.0/nvme/nvme0/nvme0n1/nvme0n1p1
lrwxrwxrwx 1 root root 0 六月    5 09:01 nvme0n1p2 -> ../../devices/pci0000:00/0000:00:1d.0/0000:02:00.0/nvme/nvme0/nvme0n1/nvme0n1p2
lrwxrwxrwx 1 root root 0 六月    5 09:01 sda -> ../../devices/pci0000:00/0000:00:17.0/ata1/host0/target0:0:0/0:0:0:0/block/sda
$ ls -l /sys/class/block
lrwxrwxrwx 1 root root 0 六月    5 09:01 loop9 -> ../../devices/virtual/block/loop9
lrwxrwxrwx 1 root root 0 六月    5 09:01 nvme0n1 -> ../../devices/pci0000:00/0000:00:1d.0/0000:02:00.0/nvme/nvme0/nvme0n1
lrwxrwxrwx 1 root root 0 六月    5 09:01 nvme0n1p1 -> ../../devices/pci0000:00/0000:00:1d.0/0000:02:00.0/nvme/nvme0/nvme0n1/nvme0n1p1
lrwxrwxrwx 1 root root 0 六月    5 09:01 nvme0n1p2 -> ../../devices/pci0000:00/0000:00:1d.0/0000:02:00.0/nvme/nvme0/nvme0n1/nvme0n1p2
lrwxrwxrwx 1 root root 0 六月    5 09:01 sda -> ../../devices/pci0000:00/0000:00:17.0/ata1/host0/target0:0:0/0:0:0:0/block/sda

下面采用sda设备进行演示

查看设备基本信息以及设备类型

shell
$ cat sda/uevent 
MAJOR=8
MINOR=0
DEVNAME=sda
DEVTYPE=disk
DISKSEQ=9
$ cat sda/uevent 
MAJOR=8
MINOR=0
DEVNAME=sda
DEVTYPE=disk
DISKSEQ=9

设备是否可卸载,0,1表示

shell
$ cat sda/removable 
0
$ cat sda/removable 
0

查看扇区数量,扇区是有大小的,一般是512字节一个扇区

shell
$ cat sda/size              
937703088

# 可以执行命令核对一下该参数的值
$ sudo fdisk -l /dev/sda
Disk /dev/sda:447.13 GiB,480103981056 字节,937703088 个扇区
Disk model: GALAX TA1D0480A 
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
$ cat sda/size              
937703088

# 可以执行命令核对一下该参数的值
$ sudo fdisk -l /dev/sda
Disk /dev/sda:447.13 GiB,480103981056 字节,937703088 个扇区
Disk model: GALAX TA1D0480A 
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

查看设备型号

shell
$ cat sda/device/model 
GALAX TA1D0480A
$ cat sda/device/model 
GALAX TA1D0480A

dmesg

内核缓冲信息(kernel ring buffer),在系统启动时,包含许多与硬件有关的信息,可以用dmesg查看

比如现在查看关于存储设备/dev/sda的日志信息(发现关于存储设备的日志比较少,暂未发现别的地方有存储设备相关日志信息)

shell
$ sudo dmesg|grep sda
[    1.556496] sd 0:0:0:0: [sda] 937703088 512-byte logical blocks: (480 GB/447 GiB)
[    1.556608] sd 0:0:0:0: [sda] Write Protect is off
[    1.556618] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    1.556830] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.557131] sd 0:0:0:0: [sda] Preferred minimum I/O size 512 bytes
[    1.591926] sd 0:0:0:0: [sda] Attached SCSI disk
[    4.241354] EXT4-fs (sda): mounted filesystem with ordered data mode. Quota mode: none.
$ sudo dmesg|grep sda
[    1.556496] sd 0:0:0:0: [sda] 937703088 512-byte logical blocks: (480 GB/447 GiB)
[    1.556608] sd 0:0:0:0: [sda] Write Protect is off
[    1.556618] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    1.556830] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.557131] sd 0:0:0:0: [sda] Preferred minimum I/O size 512 bytes
[    1.591926] sd 0:0:0:0: [sda] Attached SCSI disk
[    4.241354] EXT4-fs (sda): mounted filesystem with ordered data mode. Quota mode: none.

也可以直接查看日志文件

shell
$ sudo cat /var/log/dmesg |grep sda
$ sudo cat /var/log/dmesg |grep sda

参考阅读

Find All Storage Devices

Last updated:

Released under the MIT License.