Linux【6】-硬盘管理1-分区(fdisk)

一、查看硬盘

在硬盘装上后,在分区之前,用 fdisk –l 就可以看到这块硬盘了,fdisk –l 会输出一些有关这块硬盘的基本信息,如下所示:

[root@localhost ~]# fdisk –l 硬盘名/分区名
….#此处省略若干行
Disk /dev/sdb: 536.9 GB, 536870912000 bytes
255 heads, 63 sectors/track, 65270 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2f7e945a
…#此处省略若干行
[root@localhost ~]#

要理解 fdisk –l 输出的关于磁盘的基本信息,我们首先需要简要了解一下机 械式磁盘(HDD)的物理构成:我们需要知道的概念包括:

  • 盘片(platter):一个机械式磁盘一般由若干磁性盘片组成;
  • 磁头(head):每个盘片一般有上下两面,盘片的两个面均能存储数据,因此需要两个磁头;
  • 磁道(track):每个盘片沿着半径的方向可以划分为很多同心圆,这些圆圈被称为磁道(track),磁道是从盘片外圈往内圈编号 0 磁道,1 磁道…,靠近 主轴的同心圆用于停靠磁头,不存储数据;
  • 扇区(sector):每个磁道被分成若干等份,每一份就被称为一个扇区,扇区是硬盘数据存储的最小单位;
  • 柱面(cylinder)数:不同盘片上具有相同磁道编号的同心圆组成面就称作柱面,所以磁盘柱面数就等于磁盘单个盘片上的磁道数。柱面是硬盘分区的最小单位.因此,一个磁盘的容量 = 磁头数 ×柱面数 × 每道扇区数 × 每扇区字节数。

所以,上面这段 fdisk –l 输出就是告诉我们:这个名为/dev/sdb 的磁盘容量 总共为 536870912000 字节(536.9 GB),磁盘有 255 个磁头,每个磁道有 63 个扇区,总共有 65270 个柱面(磁道)。其中每个扇区容量为 512 字节(这个磁 盘的最小逻辑和物理单元,也是这个磁盘的读写的最小单元), 因此每个柱面的 容量为 255×63×512 字节=8225280 字节。

当然在对磁盘进行分区( Partition )前,磁盘是无法用来存储数据的。事实上, 对磁盘进行分区的作用就是告诉操作系统磁盘可存储数据的区域,也即每个分区 的起始柱面和结束柱面。这些分区信息都包括在一个叫做分区表(Partition Table) 的数据结构中。

分区表是一块磁盘中最重要的数据,分区表一般存储在磁盘的 0 磁道上面 (所以当一个硬盘的 0 磁道发生了物理损坏的时,这个硬盘就基本宣告寿终正 寝了),硬盘仅仅为分区表保留了 64 个字节的存储空间,而每个分区的参数占据 16 个字节,故主引导扇区中总计可以存储 4 个分区的数据,,这就是主分区 (Primary)+扩展分区(Extended) 最多只能有四个的原因了。

注意要查询一下自己的硬盘格式,用

df -T

二、分区和格式化硬盘

fdisk

图文教学:https://www.cnblogs.com/boshen-hzb/p/6669016.html?utm_source=itdadao&utm_medium=referral

执行:fdisk /dev/sdb

p:打印分区表.

n:新建一个新分区.

d:删除一个新分区.

q:退出不保存.

w:退出且保存

步骤:

  1. 输入n,进行创建分区
  2. 出现两个选项,p代表着主分区,e代表着拓展分区.先试着创建一个主分区。所有输入p
  3. 办入p后,会让输入主分区号,默认为1,1-4表示只能创建4分主分区,这里直接按回车,表示选择1.然后再按回车,表示起始扇面号从2048开始,即从未使用的地方开始
  4. 要求输入尾部扇面号,这里我们输入:+10G,即第一个主分区的大小为10G,然后回车,第一个分区就建好了。
  5. 继续输入p可以看到分好的分区,sdb1
  6. 接下来再创建一个10G的逻辑分区。必须先建立一个拓展分区,在这里就把所有的剩余空间给这个拓展分区了.键入”n”,然后键入”e”,表示创建拓展分区,然后再键入”2”,表示选择分区的编号为2,键入两次”回车”,代表把所有的可用空间分给这个拓展分区.

接下来对sdb1和sdb5进行格式化成ext4格式。

[root@localhost ~]# mkfs.ext4 /dev/sdb1
[root@localhost ~]# mkfs.ext4 /dev/sdb5
或者:
mkfs.xfs /dev/sdb

parted

教学: https://www.thegeekstuff.com/2011/09/parted-command-examples/

三、分个大于2T的硬盘

如果一个大于2T的硬盘分区的话,会提示如下的错误:

# fdisk /dev/sdb
    Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

    WARNING: The size of this disk is 5.9 TB (5908688535552 bytes).
    DOS partition table format can not be used on drives for volumes
    larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID
    partition table format (GPT).

那如何来划分出1个大于2T的分区呢?

3.1 创建2T的分区

# fdisk /dev/sdb1
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-718357, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-267349, default 267349):
Using default value 267349

这样,2T的分区就被建立了

Command (m for help): p

Disk /dev/sdb: 5908.7 GB, 5908688535552 bytes
255 heads, 63 sectors/track, 718357 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3dffd626

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1      267349  2147480811   83  Linux

3.2 建立gpt的分区表

GPT stands for GUID partition table format (GPT).

# parted /dev/sdb
GNU Parted 2.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) print
Error: /dev/sdb: unrecognised disk label

(parted) mklabel gpt

(parted) print
Model: Unknown (unknown)
Disk /dev/sdb: 5909GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags


# parted /dev/sdb

(parted) mkpart primary 0GB 5909GB

(parted) print
Model: Unknown (unknown)
Disk /dev/sdb: 5909GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  5909GB  5909GB               primary

然后查看,fdisk分区的一个状态:

# fdisk /dev/sdb

Command (m for help): print

Disk /dev/sdb: 5908.7 GB, 5908688535552 bytes
255 heads, 63 sectors/track, 718357 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1      267350  2147483647+  ee  GPT

3.3 初始化

mkfs.xfs /dev/sdb

3.4 挂载

见下文

参考资料:

宁波城市职业技术学院 http://www.icourse163.org/course/NBCC-437004

https://www.linuxidc.com/Linux/2014-12/110768.htm

https://www.thegeekstuff.com/2012/08/2tb-gtp-parted/

https://www.cnblogs.com/boshen-hzb/p/6669016.html?utm_source=itdadao&utm_medium=referral

个人公众号,比较懒,很少更新,可以在上面提问题:

更多精彩,请移步公众号阅读:

Sam avatar
About Sam
专注生物信息 专注转化医学