Linux中查看硬盘信息

一台电脑中可以安装多块硬盘,下面我们来研究下在Linux中如何查看所有硬盘信息。系统中添加了两块硬盘,第二块没有格式化也没有挂载。

df

df命令是用来查看文件系统中硬盘的使用状况的,也可以用来列出系统中挂载的硬盘,使用-h选项可以以人类可读的格式输出硬盘使用状况:

~$ df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda2        55G  3.7G   49G    8% /
udev            2.0G  4.0K  2.0G    1% /dev
tmpfs           394M  776K  394M    1% /run
none            5.0M     0  5.0M    0% /run/lock
none            2.0G  220K  2.0G    1% /run/shm
/dev/sda1       487M  3.3M  483M    1% /boot/efi

df命令无法显示未挂载的硬盘。

lsblk

lsblk命令是用来查看块设备的:

$ lsblk 
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0    60G  0 disk 
├─sda1   8:1    0   487M  0 part /boot/efi
├─sda2   8:2    0  55.5G  0 part /
└─sda3   8:3    0     4G  0 part [SWAP]
sdb      8:16   0    50G  0 disk 
sr0     11:0    1  1024M  0 rom  

不带参数时会列出所有硬盘,根节点代表硬盘,二级节点代表磁盘上的分区。使用-d选项可以只列出硬盘,不列出分区信息。

lshw

lshw可以打印硬件的详细信息:

$ sudo lshw -class disk
  *-disk:0
       description: SCSI Disk
       physical id: 0.0.0
       bus info: scsi@32:0.0.0
       logical name: /dev/sda
       size: 60GiB (64GB)
       capabilities: gpt-1.00 partitioned partitioned:gpt
       configuration: guid=ff481b67-ace2-47b9-a7e8-a50d4e6a6e55
  *-disk:1
       description: SCSI Disk
       physical id: 0.1.0
       bus info: scsi@32:0.1.0
       logical name: /dev/sdb
       size: 50GiB (53GB)
  *-cdrom
       description: DVD-RAM writer
       physical id: 0.0.0
       bus info: scsi@3:0.0.0
       logical name: /dev/cdrom
       logical name: /dev/cdrw
       logical name: /dev/dvd
       logical name: /dev/dvdrw
       logical name: /dev/sr0
       capabilities: audio cd-r cd-rw dvd dvd-r dvd-ram
       configuration: status=open

blkid

blkid命令可以打印块设备的一些信息:

$ sudo blkid 
/dev/sda1: UUID="AB45-3BA0" TYPE="vfat" 
/dev/sda2: UUID="802daf3d-fe98-4f0c-a9a8-b02e6fa83f2d" TYPE="ext4" 
/dev/sda3: UUID="e313a026-1e9b-4b5d-87ca-f604199984c4" TYPE="swap"

fdisk

fdisk是一个用来格式化硬盘、分区等的常用的分区表操纵工具,可以用来打印硬盘信息:

$ sudo fdisk -l

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 cylinders, total 125829120 sectors
Units = 扇区 of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   设备 启动      起点          终点     块数   Id  系统
/dev/sda1               1   125829119    62914559+  ee  GPT

Disk /dev/sdb: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = 扇区 of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

fdisk工具不支持GPT分区表,可以使用GNU Parted即下面的parted工具替代。

parted

parted也是一个分区表操纵工具,目前只能在GNU/LinuxGNU/Hurd下运行:

$ sudo parted -l
Model: VMware, VMware Virtual S (scsi)
磁盘 /dev/sda: 64.4GB
Sector size (logical/physical): 512B/512B
分区表:gpt

数字  开始:  End     大小    文件系统        Name  标志
 1    1049kB  512MB   511MB   fat32                 启动
 2    512MB   60.1GB  59.6GB  ext4
 3    60.1GB  64.4GB  4293MB  linux-swap(v1)


错误: /dev/sdb:未确认磁盘标签

/proc/partitions

通过查看/proc/partitions文件内容可以查看当前硬盘及分区的一些信息:

$ cat /proc/partitions 
major minor  #blocks  name

   8        0   62914560 sda
   8        1     498688 sda1
   8        2   58221568 sda2
   8        3    4192256 sda3
   8       16   52428800 sdb
  11        0    1048575 sr0

lsscsi

lsscsi工具可以打印SCSI硬盘信息,这个工具在Ubuntu12.04中默认没有安装,需要自行安装:

$ lsscsi 
[3:0:0:0]    cd/dvd  NECVMWar VMware SATA CD01 1.00  /dev/sr0
[32:0:0:0]   disk    VMware,  VMware Virtual S 1.0   /dev/sda
[32:0:1:0]   disk    VMware,  VMware Virtual S 1.0   /dev/sdb

参看

how to list all hard disks in linux from command line

GNU Parted

Platforms on which GNU Parted runs



—  我的个人空间 |   —