Linux查看硬盘(fdisk | lsblk)

Posted Xavier Jiezou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux查看硬盘(fdisk | lsblk)相关的知识,希望对你有一定的参考价值。

摘要

本文将讨论如何在 Linux 中查看硬盘和硬盘分区。

引言

首先,我们需要弄清楚 Linux 中硬盘和硬盘分区的命名规则。

硬盘命名规则

由于 Linux 中所有的设备都是以文件的形式出现,因此硬盘也不例外,也是用一个文件来表示。

硬盘设备文件名格式一般为 /dev/xxy。前两个字母 xx 标明硬盘类型:

  • sd:表示这个硬盘是采用 SCSI SATA 或 USB 接口的硬盘
  • hd:表示这是一个采用 IDE 接口的硬盘(目前基本不用了)

y 则表明硬盘是用此类接口的第几个硬盘。y 一般是 a-z 之间的英文字符。例如,/dev/shd 表示这是第四个使用 IDE 接口的硬盘。

分区命名规则

接下来,我们介绍 Linux 中硬盘分区的命令规则。分区同样以一个文件的形式出现,硬盘上分区文件的命令规则一般为 /dev/xxyn,比硬盘文件多了一个 nn 表示分区,主分区或拓展分区用数字 1-4 表示,逻辑分区从5 开始。如 /dev/hda3 表示在第一个 IDE 硬盘上的第三个主分区或拓展分区。

用法

fdisk

Linux 中使用 fdisk -l 硬盘名|分区名 命令可以显示或操作磁盘分区表。例如,查看系统中的第一个硬盘:

root@centos:~# fdisk -l /dev/sda
Disk /dev/sda:1.84 TiB,2000398934016 字节,3907029168 个扇区
Disk model: ST2000NX0253
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:gpt
磁盘标识符:27E8F38B-1909-4730-B931-D399FF19A594

设备         起点       末尾       扇区  大小 类型
/dev/sda1    2048       4095       2048    1M Bios 启动
/dev/sda2    4096     976895     972800  475M Microsoft 基本数据
/dev/sda3  976896 3726032895 3725056000  1.8T Linux LVM

输出信息分为两部分。第一部分显示硬盘的基本参数,包括容量、磁头数和扇区数等。第二部分显示硬盘的分区情况。如果硬盘没有分区,这部分是空白;如果已经分区,每行将代表一个分区,各个字段的定义如下:

  • Device:分区名
  • Boot:是否允许标准 DOS PC 主引导记录引导该分区(该标记对 Linux 的 GRUB 引导装载程序没有意义)
  • Start:分区起始柱面
  • End:分区结束柱面
  • Blocks:大小为 1k 的块的数量
  • Id:分区的预期用途(并不是真实用途,82 表示交互分区,83 表示数据分区)

值得一提的是,目前逐渐成为主流的固态硬盘中,虽然没有盘片、磁头、扇区这些物理零件,但固态硬盘的接口规范、定义功能及使用方法上与普通机械硬盘完全相同。因此,逻辑上固态硬盘也有柱面、扇区,磁头等参数。

上一篇文章介绍了使用 fdisk 命令查看指定硬盘设备或分区的信息。本文将介绍一个新的命令 lsblk,该命令以非常友好的方式列出系统中所有硬盘设备及分区的情况,为我们分区或创建文件系统做好准备。

lsblk

除 fdisk 外,我们更推荐使用 lsblk 命令来查看系统中所有的硬盘情况,lsblk 会显示系统中除了内存虚拟磁盘外的所有可用块设备的信息:

root@centos:~# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0   1.8T  0 disk
├─sda1            8:1    0     1M  0 part
├─sda2            8:2    0   475M  0 part
└─sda3            8:3    0   1.8T  0 part
  ├─centos-root 253:0    0   1.7T  0 lvm
  └─centos-swap 253:1    0    32G  0 lvm
sdb               8:16   0 931.5G  0 disk
├─sdb1            8:17   0   512M  0 part /boot/efi
└─sdb2            8:18   0   931G  0 part /
sdc               8:32   0   1.8T  0 disk
└─sdc1            8:33   0   1.8T  0 part /home1
sdd               8:48   0 223.6G  0 disk
└─sdd1            8:49   0 223.6G  0 part

从上述输出信息中,可以直观地了解到目前系统的硬盘分区及挂载情况。你也许可以发现,lsblk 显示的块设备的名字十分特别。事实上,Linux 中的块设备的命名是有一定规则的。

  • 对于 SATA、SCSI 或 USB 接口的硬盘或 U 盘,其命名规则如下:
主设备文件名次设置文件名(分区)
sd[小写字母]
如 sda、sdb 等
sd[小写字母][正整数]
如 sda1、sdc1 等
  • 对于 NVMe(M.2)接口的硬盘,其命名规则如下:
主设备文件名次设置文件名(分区)
nvme[非负整数]
如 nvme0、nvme1 等
sd[非负整数]n[正整数]p[正整数]
如 nvme0n1p1、nvme1n1p3 等
  • 对于 CD 或 DVD (ROM)光驱设备,其命名规则如下:
主设备文件名次设置文件名(分区)
sr[非负整数]
如 sr0、sr1 等
光驱不能分区

特别要注意的是,Linux 中的存储设备的名字并非固定,在热插拔、重启等操作后,存储设备名字中的序号可能会发生改变。如 sda 变成 sdc,这种改变可能会让系统管理员犯一些低级错误,如误删数据,误分区等,因此通过设备文件操作硬盘之前,一定要确认好设备名称。在自动化管理和配置文件中,如开机自动挂载配置文件 /etc/fstab,强烈不建议使用设备文件名来指定存储设备,而是应该使用设备的 UUID

参考

中国大学 MOOC | Linux 系统管理 | 主题 07 管好硬盘 | 小节 1 查看硬盘

以上是关于Linux查看硬盘(fdisk | lsblk)的主要内容,如果未能解决你的问题,请参考以下文章

Linux磁盘管理——分区+挂载(fdisk+gdisk+mount+lsblk+df)

Linux中硬盘分区文件系统

在VMware中的linux系统中创建逻辑卷

Linux 挂载硬盘

Linux永久挂载新的硬盘

linux中为啥插上两块新硬盘后用fdisk -l命令看不到新增的硬盘?