目录

在-Linux-系统中,区分磁盘物理虚拟存储设备和分区磁盘的逻辑划分

在 Linux 系统中,区分**磁盘(物理/虚拟存储设备)和分区(磁盘的逻辑划分)

在 Linux 系统中,区分**磁盘(物理/虚拟存储设备) 分区(磁盘的逻辑划分)**是管理存储的基础。以下是详细的区分方法和操作示例:


一、通过设备命名规则区分

Linux 中磁盘和分区的命名遵循特定规则:

类型命名格式示例说明
磁盘/dev/sdX/dev/sdasd 表示 SCSI/SATA 磁盘, X 为字母(a, b, c…)。
/dev/nvmeXnY/dev/nvme0n1nvme 表示 NVMe 磁盘, X 为控制器编号, Y 为命名空间编号。
/dev/vdX/dev/vdavd 表示虚拟化环境中的磁盘(如 KVM 虚拟机)。
分区/dev/sdXN/dev/sda1N 为分区编号(1, 2, 3…)。
/dev/nvmeXnYpZ/dev/nvme0n1p1pZ 表示 NVMe 磁盘的分区编号(Z=1,2,3…)。
/dev/vdXN/dev/vda1虚拟磁盘的分区命名规则与物理磁盘一致。

二、通过命令工具区分

1. 使用 lsblk 查看树状结构
lsblk

输出示例

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda       8:0    0  100G  0 disk          # 这是一个磁盘(TYPE=disk)
├─sda1    8:1    0   1G  0 part /boot     # 这是一个分区(TYPE=part)
└─sda2    8:2    0   99G  0 part 
  └─vg-root 254:0    0   99G  0 lvm  /    # 这是 LVM 逻辑卷(TYPE=lvm)
nvme0n1 259:0    0  500G  0 disk          # 这是一个 NVMe 磁盘
└─nvme0n1p1 259:1  0  500G  0 part /data  # 这是一个 NVMe 分区
  • 关键字段
    • TYPE=disk :表示磁盘。
    • TYPE=part :表示分区。
    • 子设备缩进显示在父设备下方。

2. 使用 fdisk -l 查看详细信息
sudo fdisk -l /dev/sda

输出示例

Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors  # 磁盘信息
Disk model: VIRTUAL-DISK    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt

Device     Start       End   Sectors  Size Type           # 分区信息
/dev/sda1   2048   2099199   2097152    1G EFI System
/dev/sda2 2099200 209715199 207616000   99G Linux LVM
  • 区分点
    • 第一段描述磁盘的整体信息(如容量、型号)。
    • Device 列列出所有分区(如 /dev/sda1 )。

3. 使用 parted 查看分区表类型
sudo parted /dev/sda print

输出示例

Model: Virtio Block Device (virtblk)      # 磁盘型号
Disk /dev/sda: 107GB                      # 磁盘总容量
Partition Table: gpt                      # 分区表类型(GPT)
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags  # 分区列表
 1      1049kB  1075MB  1074MB  fat32        efi   boot, esp
 2      1075MB  107GB   106GB                lvm

三、关键区别总结

特征磁盘分区
设备名/dev/sda , /dev/nvme0n1/dev/sda1 , /dev/nvme0n1p1
容量整块磁盘的物理大小磁盘中的一个逻辑段
操作对象用于分区操作(如 fdisk /dev/sda用于格式化或挂载(如 mkfs /dev/sda1
层级关系父设备子设备(从属于磁盘)

四、常见误区与注意事项

  1. 误操作磁盘而非分区

    • 危险操作 :直接对磁盘(如 /dev/sda )执行格式化( mkfs )会破坏所有分区数据!
    • 正确操作 :始终针对分区(如 /dev/sda1 )进行文件系统操作。
  2. LVM 和 RAID 的干扰

    • LVM 逻辑卷或 RAID 虚拟磁盘可能隐藏物理分区,需通过 pvdisplaylvdisplaymdadm 进一步分析。
  3. 临时设备(如 USB 盘)

    • USB 设备可能动态分配名称(如 /dev/sdb 下次插入变为 /dev/sdc ),建议通过 UUID 或标签挂载。

五、操作验证示例

场景:确认 /dev/nvme0n1p1 是分区
lsblk -o NAME,TYPE /dev/nvme0n1p1

输出

NAME        TYPE
nvme0n1p1  part   # TYPE=part 表示这是一个分区
场景:确认 /dev/sdb 是磁盘
lsblk -o NAME,TYPE /dev/sdb

输出

NAME   TYPE
sdb    disk   # TYPE=disk 表示这是一个磁盘

通过以上方法,您可以清晰区分 Linux 系统中的磁盘和分区,避免误操作导致数据丢失。