如何知道/dev/hda2是主分区还是扩展分区

如何知道/dev/hda2是主分区还是扩展分区

如果所有四个主分区都存在于 IDE 驱动器上,则它们的编号如下:

  • /dev/hda1
  • /dev/hda2
  • /dev/hda3
  • /dev/hda4

我们还在磁盘上有一个主分区和唯一的扩展分区,其编号可能如下:

  • /dev/hda1(主要)
  • /dev/hda2(扩展)

这种命名策略会导致混乱:
它是如何命名的:/dev/hda2 在这两种情况下:

  • 主分区
  • 扩展分区

另一种表达方式:如何区分是主分区还是扩展分区

答案1

在终端中,您键入parted /dev/hda 然后键入print 结果:

Number  Start   End    Size   Type     File system  Flags     
 1      32.3kB  107MB  107MB  primary  ext3         boot, raid
 2      107MB   250GB  250GB  primary               raid 

答案2

fdisk -l /dev/hda检查或类似工具(sfdisk -l /dev/hda、 、 …)的输出parted -l

您无法从分区号来判断分区是主分区还是扩展分区。在经典的 PC 分区方案中,编号为 1、2、3 或 4 的每个分区可以是主分区或扩展分区。 (可以但不建议有多个扩展分区;Linux 本身不介意,但某些管理工具介意。)

有一种几乎可以保证的方法可以在没有 root 访问权限的情况下进行检查:您可以在 .txt 文件中查找每个分区的大小/proc/partitions。扩展分区的大小始终以单个块的形式报告。例如,在下面的示例中,sda4是一个扩展分区。

major minor  #blocks  name
   8        1     489951 sda1
   8        4          1 sda4

答案3

您始终可以尝试sudo cfdisk /dev/hda显示包含所有分区的表。它还显示它是主分区还是扩展分区。

答案4

我只想要主分区的路径,并想出了这个。

sudo fdisk -l 2> /dev/null | awk '$2 ~ /\*/ {print $1}'
  • fdisk -l列出分区,
  • 2> /dev/null重定向错误消息以便它们不打印;我不断收到有关分区不在物理磁盘上的消息,
  • 通过管道来awk处理输出:
    • $2指第二个字(列的值Boot),
    • $2 ~ /^\*$/指仅匹配第二个单词仅是星号的行,
    • {print $1}打印与前面的表达式匹配的行中的第一个单词,即Device列。

相关内容