> For the complete documentation index, see [llms.txt](https://pshizhsysu.gitbook.io/linux/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pshizhsysu.gitbook.io/linux/ci-pan-yu-fen-qu.md).

# 磁盘与分区

我们回忆一下，在安装windows操作系统的时候，一般的流程是：

* 1、在磁盘（就是硬盘）上创建一个主分区
* 2、剩下的空间用来创建一个扩展分区
* 3、在扩展分区中再创建若干个逻辑分区
* 4、格式化主分区及逻辑分区
* 5、设置主分区为活动分区
* 6、在主分区上安装操作系统

我们需要注意的是，一个硬盘最少要有一个主分区，最多四个主分区；最多一个扩展分区；主分区与扩展分区之和不能超过四个。扩展分区不能直接格式化，必须在扩展分区中创建逻辑分区，一个扩展分区可以创建若干个逻辑分区。主分区和逻辑分区可以直接格式化。操作系统只能安装在主分区中，不能安装在逻辑分区中。

比如我们安装windows操作系统，一般创建一个主分区，命名为C盘。其余的空间都来创建一个扩展分区，然后再在扩展分区中创建两个逻辑分区，命名为D盘与E盘。

当然，我们有时需要在一块硬盘上同时装windows与linux双系统。此时，我们一般创建两个主分区，分别用来装windows与linux；其余的空间我们用来创建一个扩展分区，然后再创建逻辑分区。由于有两个操作系统，如何指定启动哪一个操作系统呢？此时，活动分区就出来了。我们可以在两个主分区中指定其中一个为活动分区（且必须指定一个），那么启动的时候，就是从拉起活动分区中的操作系统。

接下来，我们从linux操作系统的视角下，来看一下磁盘与分区是什么样的。

首先我们查看一下所有的硬盘以及硬盘的分区情况。可以看出，系统中有两块硬盘`sda`与`sdb`。硬盘`sda`有一个分区`sda1`，大小为50G，且已经挂载到了目录`/`下。硬盘`sdb`还没有进行分区。

```
[root@localhost ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    1   837G  0 disk 
└─sda1   8:1    1    50G  0 part /
sdb      8:16   1 223.4G  0 disk
```

我们用`fdsik`命令来查看一下磁盘及分区情况，如下

```
[root@localhost ~]# fdisk -l

Disk /dev/sda: 898.7 GB, 898708275200 bytes, 1755289600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0009613d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   104859647    52428800   83  Linux

Disk /dev/sdb: 239.9 GB, 239902654464 bytes, 468559872 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
```

我们发现，这两个命令看到的内容有些不一样。首先，硬盘与分区的名字不一样，`lsblk`中硬盘叫`sda`，`fdisk`中叫`/dev/sda`；`lsblk`中分区叫`/dev/sda1`，`fdisk`中分区叫`/dev/sda1`；那到底该怎么叫呢？我们这样理解，`/dev/sda`是全称，`sda`是缩写。第二个不同的地方是，两个命令看到的磁盘大小不一致，为什么呢？我们暂时这样理解：`fdisk`看到的是磁盘的实际大小，`lsblk`看到的是磁盘的可用大小；由于系统会占用磁盘一定的空间，所以可用大小与实际大小不一致。

通过这两个命令的输出可以判断`/dev/sda1`是主分区还是扩展分区或者是逻辑分区吗？其实`fdisk`命令的输出是可以的判断，不过这里先不讲，下一节有对比的时候再讲。

## Reference

\[1] <http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/03/2997098.html>
