首页 > 代码库 > linux下硬盘的分区:

linux下硬盘的分区:

提到硬盘的分区,以前就是很乱,有什么主分区/扩展分区/逻辑分区等;它们有什么区别呢?现在简单的了解一下;

由于在MBR的主引导记录中的分区表里面最多只能记录4个分区记录,这个不够用啊,为了解决这个问题,就允许创建一个扩展分区,在扩展分区里面我们可以继续分区(即逻辑分区);例如:我们最多可以创建4个主分区,当我们要创建6个分区时:我们可以创建3个主分区1个扩展分区,然后再在扩展分区里面创建3个逻辑分区;
在主引导记录里面,只包含主分区与扩展分区的信息,而逻辑分区的信息都被保存在了扩展分区里面;

在Linux 是通过hd*x 或 sd*x 表示的,其中 * 表示的是a、b、c …… …… x表示的数字 1、2、3 …… …… hd大多是IDE硬盘;sd大多是SCSI或移动存储;

 

学习一个linux下的分区工具,fdisk命令;

fdisk 是linux下的硬盘分区工具,但是fdisk 只能划分小于2T 的分区;

语法: fdisk [-l] [设备名称」

当 -l 后面不跟设备名时,会列出所有的磁盘及分区表,当加设备名时,会列出所写设备的分区表;

例如,不跟设备名字时:

fdisk -l
Partition 3 does not start on physical sector boundary.


Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xcef2688c

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048 960833535 960831488 458.2G 83 Linux
/dev/sda2       960835582 976771071  15935490   7.6G  5 Extended
/dev/sda5       960835584 976771071  15935488   7.6G 82 Linux swap / Solaris

 

跟设备名字时:

fdisk -l /dev/sda: 
Partition 3 does not start on physical sector boundary.


Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xcef2688c

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048 960833535 960831488 458.2G 83 Linux
/dev/sda2       960835582 976771071  15935490   7.6G  5 Extended
/dev/sda5       960835584 976771071  15935488   7.6G 82 Linux swap / Solaris

因为,我们电脑上就一块硬盘,所以结果显示一样;

 

当fdisk 不加 -l 时,会进入另一个模式,此时可以对磁盘进行分区操作;

如:

fdisk /dev/sda
Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help):

此时,按m键,会出来各个按键的作用:

Help:

  DOS (MBR)
   a   toggle a bootable flag  //设置可活动的分区,即可以引导用于启动系统;
   b   edit nested BSD disklabel   
   c   toggle the dos compatibility flag

  Generic
   d   delete a partition    //删除一个分区;
   l   list known partition types    //显示所以分区类型;
   n   add a new partition    //新建一个分区;
   p   print the partition table    //显示分区列表;
   t   change a partition type    //改变分区类型;很厉害的;
   v   verify the partition table

  Misc
   m   print this menu    //显示这个帮助菜单;
   u   change display/entry units
   x   extra functionality (experts only)

  Save & Exit
   w   write table to disk and exit    //改入分区表,保存修改;
   q   quit without saving changes    //不保存退出;

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table

Command (m for help):

常用到的用中文标明了;,别外说明几点:
键入’t‘,改变分区标志(这是Linux的fdisk最精华的部份!),新建的分区默认标志是83(Linux Ext2),你可以把它改为82(Linux 交换区)、或是‘b‘(FAT32)、‘f‘(FAT32 Extend,只限于扩展分区)、‘86‘(NTFS)。。。等几十种类型。这样一来,使用多操作系统的朋友们就可以用Linux的fdisk划分出你想要的所有分区了!
键入‘a‘,切换分区激活开关。请注意:每键入一次,被选的分区就会在激活与非激活间变化一次,但你必须保证最后只有一个分区被激活。这时就用得到‘p‘命令了,被激活的分区上会有个‘*‘号。
键入‘d‘, 删除扩展分区时,如果扩展分区里有逻辑分区时,会把逻辑分区也册除掉的;

在分区时,注意看看英文的提示就可以了;
下面把过程走一遍哈:
(补充一个过程)

 

格式化磁盘分区:

磁盘分区完成以后,需要对磁盘的每一个分区格式化以后才能使用;对磁盘的格式化的实质:

硬盘格式化,其实就是对文件系统的初始化过程,建立目录区和文件分配表;文件系统,即文件的目录/文件夹等数据的存储/管理系统;windows下通常使用NTFS,Linux 下通常使用 ext3 或 ext4.所以呢,每一个分区上都有一个文件管理系统;

下面的知识引用(http://www.apelearn.com/study_v2/chapter9.html#id2, 阿铭的linuux教学)

命令 : mke2fs, mkfs.ext2, mkfs.ext3, mkfs.ext4:

当用man查询这四个命令的帮助文档时,你会发现我们看到了同一个帮助文档,这说明四个命令是一样的。mke2fs常用的选项有:

‘-b’ 分区时设定每个数据区块占用空间大小,目前支持1024, 2048 以及4096 bytes每个块。
‘-i’ 设定inode的大小

‘-N’ 设定inode数量,有时使用默认的inode数不够用,所以要自定设定inode数量。

‘-c’ 在格式化前先检测一下磁盘是否有问题,加上这个选项后会非常慢

‘-L’ 预设该分区的标签label

‘-j’ 建立ext3格式的分区,如果使用mkfs.ext3 就不用加这个选项了

‘-t’ 用来指定什么类型的文件系统,可以是ext2, ext3 也可以是 ext4每个块。

所以呢,记住mke2fs就可以了; mke2fs -t ext2/ext3/ext4 就相当于mkfs.ext2/mkfs.ext3/mkfs.ext4命令;

例如:[root@localhost ~]# mke2fs -t ext4 /dev/sdb5

 

格式化完成以后,挂载磁盘:

使用mount 命令:
如: mount /dev/sda6 /new_drir

 

 

到此,这块磁盘就可以使用,完成!

linux下硬盘的分区: