lsblk 和fdisk看到的盘不一样
在Linux系统中,我们常用的两个命令,lsblk和fdisk可以查看磁盘相关的信息。但是在实际使用时,我们有时会发现用这两个命令看到的盘不一样,这是为什么呢?
lsblk和fdisk是什么
先来简单介绍一下lsblk和fdisk。
lsblk是列出块设备信息的命令,可以展示磁盘、分区和磁盘挂载点等信息,使用起来非常方便。
示例代码:
lsblk
fdisk是磁盘分区工具,可以用来创建、删除和调整分区。同时也可以查看磁盘的分区情况。
示例代码:
fdisk -l
两者看到的不一样
我们常听到说,lsblk和fdisk看到的盘不一样,那究竟是哪些方面有所差别呢?
- 未挂载的磁盘分区
在Linux系统中,一块磁盘可以按照物理上的不同区域划分成不同的分区,这些分区需要挂载到合适的目录才可以被操作系统使用。如果我们的磁盘分区没有挂载,那么lsblk是不会显示该磁盘分区的。而fdisk则可以看到该磁盘分区,因为fdisk只展示分区的划分情况。
- 不同的分区表
在Linux系统中,磁盘分区表通常有两种:MBR和GPT。MBR是传统的分区表,支持的最大磁盘容量为2TB。而GPT是新的分区表,支持的最大磁盘容量为9.44ZB。如果我们的磁盘分区是用GPT方式分区的话,fdisk是无法查看的,需要使用gdisk工具。
示例代码:
gdisk -l /dev/sda
解决方法
既然lsblk和fdisk看到的磁盘分区存在差异,那我们该如何解决呢?
如果只是为了查看磁盘分区的情况,可以使用fdisk和gdisk结合起来使用,即先用fdisk查看,如果是GPT分区表,则用gdisk看详细信息。
示例代码:
fdisk -l /dev/sda
gdisk -l /dev/sda
如果需要挂载磁盘分区的话,则需要先使用lsblk查看尚未挂载的分区,并在对应的目录下进行挂载:
示例代码:
lsblk
mount /dev/sdb1 /mnt/usb
结论
综上所述,lsblk和fdisk看到的盘之所以会不一样,主要是因为lsblk只会显示已经被挂载的分区,而fdisk可以看到所有的分区划分情况,但是无法查看GPT分区表的详细信息。如有需要,可以结合fdisk和gdisk使用,同时也可以使用lsblk来挂载尚未被挂载的磁盘分区。