fdisk分区详解【适用于2T以内的新硬盘分区】

本文详细介绍了Linux磁盘的结构,包括磁盘的扇区、柱面和逻辑分区概念。重点讨论了MBR和GPT分区表的区别,以及如何使用fdisk进行分区管理。内容涵盖分区类型(主分区、扩展分区、逻辑分区)、分区大小的转换计算、MBR和GPT的格式化以及fdisk命令行操作。此外,还提到了分区后的格式化、挂载和UUID管理等相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

磁盘结构介绍

  • 一个磁盘由盘片和磁道组成,磁道有无数个扇区,一个扇区512Byte
    注:硬盘最小单位才是扇区,并不是最小存储单位-block(4k)
    在这里插入图片描述

分区类型说明

  • 分区的类型为3类:

    • 主分区:从硬盘上直接划分出来的,可以直接格式化使用的分区
    • 扩展分区:直接从硬盘上划分,但是不直接格式化使用,而是在上面创建多个小分区
    • 逻辑分区:逻辑分区就是扩展分区创建的小分区
  • 分区表,只记录 主分区+扩展分区,每记录一个分区消耗16B

  • 主分区扩展分区<=4 且扩展分区<=1

  • 如果想划分多个分区,至少你得留一定的空间作为扩展分区,在上面划分更多个逻辑分区

  • MBR和GPT

    • MBR–>兼容性好,但是不能用于>2T硬盘
    • GPT–>可以有128个主分区,兼容性差一些,但是可以用大大于2T的硬盘
    • 决定使用MBR结构还是GPT结构,这个选择叫做“初始化磁盘标签”
      fdisk–>mbr结构
      gdisg–>gpt结构
      parted–>兼而有之

磁盘管理说明

如果输入fdisk -l命令没有找到新的磁盘,按下面步骤操作
1)进入到cd /sys/class/scsi_host/
2)echo "---" > host0/scan #接口扫描新加磁盘即可,如果输入命令还是没有找到则将host0改为host1、host2都试试

fdisk -l 参数详解

我们执行fdsikl -l的时候,会看到一个硬盘的全部信息如下:

[root@controll ccx]# fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 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: 0x00068e46

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   419430399   208665600   8e  Linux LVM
  • 下面分开讲解前面4行内容:

    • 第一行:
      Disk /dev/sda【硬盘名称】: 214.7 GB【大小】, 214748364800 bytes【字节】, 419430400 sectors【扇区】
      其中一个扇区等于512个字节,我们硬盘的最小单位是扇区。上面的214其实是不准的,真实的硬盘大小为:214748364800/1024/1024/1024=200G【1G=1024M,1M=1024k,1K=1024bytes】
    • 第二行:
      Units = sectors of 1 * 512 = 512 bytes【柱面单元大小 (一个扇区作为一个柱面,一个扇区大小为512 bytes,即0.5KB】
    • 第三行:
      Sector size (logical/physical): 512 bytes / 512 bytes 【扇区大小 ,逻辑/物理都为 512 bytes】
    • 第四行:
      I/O size (minimum/optimal): 512 bytes / 512 bytes 【IO最小/最优 均为 512bytes 】
  • 注:下面boot中系统盘前面会有*,其他无内容
    最后一行 实际大小 是我自己新增的,用来展示换算单位

设备boot起始柱面结束柱面分区大小分区类型对分区类型的解析实际大小
/dev/sda1*20482099199104857683Linux1G
/dev/sda220992004194303992086656008eLinux LVM198.999G

分区大小转换计算方法

方式一

  • 以上面的/dev/sda1和/sda2为例
  • 直接以分区大小计算,这个大小显示的是扇区数据【Kb】,所以公式为:分区大小【Blocks】/1024/1024
  • 如上的/dev/sda1为:1048576/1024/1024=1【反过来换算就是:G*1024*1024=扇区大小【最简单的方式就是估算,小数点向前移动6位即为Gb大小】
  • 如上的/dev/sda2为:208665600/1024/1024=198.999【反过来换算就是:G*1024*1024=扇区大小【最简单的方式就是估算,小数点向前移动6位即为Gb大小】

方式二

  • 以上面的/dev/sda1和/sda2为例
  • 这个是以存储单位【bytes】计算,上面说过,一个扇区为512Bytes,所以公式为:结束扇区【end】-起始扇区【start】/1024/1024/1024*512【这种方式实用于新硬盘分区时硬盘容量大小(Gb)精确计算】
  • 如上的/dev/sda1为:2099199-2048/1024/1024/1024*512=0.99999【反过来换算就是:G*1024*1024*1024/512=Bytes大小【GxMxKxBytes÷扇区】
  • 如上的/dev/sda2为:419430399-2099200/1024/1024/1024*512=198.999【反过来换算就是:G*1024*1024*1024/512=Bytes大小【GxMxKxBytes÷扇区】

MBR分区管理

有2种分区方法,图形化和命令行(不建议用图形化分区)

图形化分区

点击菜单栏-工具-磁盘-点击新添加磁盘-设置中格式化
在这里插入图片描述
分区中-选择格式化为MBR格式还是GPT格式-选好后点击格式化即可;
在这里插入图片描述

命令行模式

命令格式化硬盘为gpt和mbr说明【了解就行】

  • 格式化为gpt格式:parted 硬盘设备名(lsblk查看) mklabel格式(gpt) , 会提示格式化后数据会丢失 输入yes即可:
    在这里插入图片描述

  • 如果不要提示 加上参数-s 即可:
    在这里插入图片描述

  • 取消之前格式化的格式: parted -s 硬盘设备名 mklabel loop:
    在这里插入图片描述

  • 如果要格式化大于2T的文件,参考文档:
    linux大于2T磁盘分区方法(parted分区方法说明)

  • 格式化为mbr格式:parted 硬盘设备名(lsblk查看) mklabel msdos , 会提示格式化后数据会丢失 输入yes即可:
    在这里插入图片描述

fdisk命令行分区

  • fdisk -l:查看所有磁盘信息
  • fdisk -l 硬盘设备名 :查看单独的磁盘信息 如:fdisk -l /dev/sdb2
  • mbr结构(DOS)创建分区fdisk 分区磁盘设备名, 输入m 获取帮助
    在这里插入图片描述

参数介绍

  • fdisk 分区磁盘设备名, 输入m回车 即可看到下列字母的详细介绍

    • d:删除一个分区
    • l(L):列出磁盘类型
    • m:显示当前菜单
    • n:新划一个分区
    • p:打印分区表
    • q:不保存退出
    • w:保存提出
    • t:转换类型
  • 如果没有新分区直接p打印分区表是空白的:
    在这里插入图片描述

创建分区【含扇区解释】

  • fdisk 分区磁盘设备名,如:fdisk /dev/sdb2
  • 开始新化分区 n
    • 选择主分区或逻辑分区,前3个一般选主分区,所以输入:p
    • 起始扇区默认回车即可【默认2048,也可以手动输入2048指定的】
    • 第二次就是容量扇区,直接输入+#G即可
      注:分区大小本身是以扇区来计算的,一个扇区0.5k,所以如果需要划分2G,就要慢慢推算扇区大小:2048(2g大小)+2(2g数量)*1024(M)*1024(k)*2(扇区)-1(起始位)【这仅仅是第一个分区的计算方式】,很麻烦,所以直接 +#G 即可
      在这里插入图片描述

我们划分区的时候,一般是默认起始扇区的(直接回车就是默认),所以建立多个之间并不会有空隙,如,第一块建了2G,第一块的结尾+1就是第二块的开始,但如果我们手动指定扇区了,就是并不是以第一块结尾+1为起始扇区,这里留了8个扇区(0.5*8=4k),这时候再建第三快分区的时候,如果是默认起始扇区,就是以第一次留下的扇区为起始扇区,在划分2个G,就会提示超出范围,因为这时候的扇区是第一块分区结束和第二块分区起始之间的空间,起始和结尾都直接回车(默认,如果结尾直接回车就是全部空间都给该分区),就会发现 实际只能分4K大小,所以,我们划分区手动指定扇区的时候,一定要注意起始扇区: (图中第一块扇区结尾有误:是4196351)
所以这时候就需要用p查看第二块的结尾扇区,然后+1 就是新的起始扇区。
在这里插入图片描述

主分区和扩展分区说明

  • 假如我们有一个20G的硬盘,我们4块都划分为2G的主分区,那么剩下的12G就没法使用了:
    在这里插入图片描述
    在这里插入图片描述
  • 所以我们需要把最后一块建成扩展分区 e (如果已经创建了4个主分区,d 删除第4个分区),并且全部空间都分给扩展分区(结束扇区直接回车即可),MBR总分区<=4,主分区<=4(就是可以全部分为主分区),扩展分区<=1:
    在这里插入图片描述
  • 从扩展分区中继续建的属于逻辑分区,逻辑分区是不询问输入p或e的,直接从5开始累加:
    在这里插入图片描述
    在这里插入图片描述

分区类型转换

  • 分区根据用途还可以进行一些分类:有的是普通的linux分区→不管是逻辑分区还是主分区都可以直接格式化使用 , 但有的分区作为交换分区,有的分区用来配置lv(逻辑分区),有的分区用来配置raid,有的分区用来做扩展分分区
  • 输入t 转换类型,L查看所有类型,如:现在把几个linux类型改为lv卷:
    在这里插入图片描述
  • L查看并记录好需要转换的类型id号后再次输入t,即可进入类型转换模式了:
    • 输入分区号,就是要给哪个分区修改类型
    • 然后输入类型id即可修改完成【需要给多个分区修改则重复上面步骤】
      在这里插入图片描述
      在这里插入图片描述

保存分区

  • 上面功能按需定义完以后输入 w回车即可保存成功
  • 然后输入 partprobe 分区设备名(刷新分区表):
    在这里插入图片描述

partprobe 分区设备名(刷新分区表)

  • 也可以直接执行 partprobe即可。
  • 在这单独说明,是证明这个很重要,做完分区w保存退出以后必须执行这个命令,不然fdisk -l看不到最新的分区信息。
  • 全部完成以后输入lsblk是看不出主分区或扩展分区等类型的,需要输入 fdisk -l 设备名 ,才能看到刚才定义的类型:
    在这里插入图片描述
    在这里插入图片描述

完整流程展示

  • 下面我创建了3个主分区和若干逻辑分区,为了更直观看出,我没有用空格,注意看后面解释内容。
  • 其实下面内容是我另外一个脚本中的部分摘抄罢了,更多的可以直接去看这篇博客哈:
    linux脚本用fdisk批量给主机硬盘分区
[root@controll ccx]# fdisk /dev/sdb  # 分区/dev/sdb这块盘
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n # 开始创建
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p #选择主分区
Partition number (1-4, default 1): 1 # 第一个主分区
First sector (2048-41943039, default 2048): 2048 #起始扇区
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 6289408 #默认扇区,我是换算的单位,这可以直接+3G的
Partition 1 of type Linux and of size 3 GiB is set

Command (m for help): n # 创建分区
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p #创建主分区
Partition number (2-4, default 2): 2 #第二个主分区
First sector (6289409-41943039, default 6291456): 6289409 #默认扇区,上一个结束扇区+1
Last sector, +sectors or +size{K,M,G} (6289409-41943039, default 41943039): 14678017
Partition 2 of type Linux and of size 4 GiB is set

Command (m for help): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
Partition number (3,4, default 3): 3
First sector (14678018-41943039, default 14680064): 14678018
Last sector, +sectors or +size{K,M,G} (14678018-41943039, default 41943039): 25163778
Partition 3 of type Linux and of size 5 GiB is set

Command (m for help): n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): e
Selected partition 4
First sector (25163779-41943039, default 25165824): 25163779
Last sector, +sectors or +size{K,M,G} (25163779-41943039, default 41943039): +
Using default value 41943039
Partition 4 of type Extended and of size 8 GiB is set

Command (m for help): n
All primary partitions are in use
Adding logical partition 5
First sector (25165827-41943039, default 25167872): 25165827
Last sector, +sectors or +size{K,M,G} (25165827-41943039, default 41943039): 29360131
Partition 5 of type Linux and of size 2 GiB is set

Command (m for help): n
All primary partitions are in use
Adding logical partition 6
First sector (29362180-41943039, default 29364224): 29362180
Last sector, +sectors or +size{K,M,G} (29362180-41943039, default 41943039): 33554436
Partition 6 of type Linux and of size 2 GiB is set

Command (m for help): n
All primary partitions are in use
Adding logical partition 7
First sector (33556485-41943039, default 33558528): 33556485
Last sector, +sectors or +size{K,M,G} (33556485-41943039, default 41943039): +
Using default value 41943039
Partition 7 of type Linux and of size 4 GiB is set

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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: 0x0ab2846a

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     6289408     3143680+  83  Linux
/dev/sdb2         6289409    14678017     4194304+  83  Linux
/dev/sdb3        14678018    25163778     5242880+  83  Linux
/dev/sdb4        25163779    41943039     8389630+   5  Extended
/dev/sdb5        25165827    29360131     2097152+  83  Linux
/dev/sdb6        29362180    33554436     2096128+  83  Linux
/dev/sdb7        33556485    41943039     4193277+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@controll ccx]# 

分区完成以后 需要格式化后才能正常使用

分完区以后的硬盘使用流程

格式化硬盘(指定块大小等)

  • 输入mkfs. 然后tab就可以查看所有支持的类型:(也可以mkfs -t 类型,如mkfs -t xfs…,但建议使用mkfs.**)(-t是指定类型,但一般用mkfs.类型,不用-t指定)
    在这里插入图片描述
  • 定义成什么,直接mkfs.**即可,以xfs为例:mkfs.xfs -f /dev/sdb1 (-f 是强制转换,如果之前已经定义了一次,不输入-f就会报错):
    在这里插入图片描述
    • 不加-f再次定义报错:
      在这里插入图片描述
  • 可以自定义block(默认是4k)mkfs.xfs -f -b size=大小 设备名 ,即可:
    在这里插入图片描述
  • ext4定义block:mkfs.ext4 -b 大小 设备名 ,即可:
    在这里插入图片描述
    格式定义完以后磁盘分区就完成了。

硬盘挂载(需格式化后)

  • 完成格式化要使用需要挂载呀? 挂载有2种:

    • 一种是临时挂载 mount 设备名 挂载文件(挂载文件可以mkdir新建到任何设备名中)
    • 第二种是永久挂载,把信息写进/etc/fstab中,永久挂载中有一栏需要知道 类型,类型查看有2种方法,第一种先临时挂载磁盘,然后df -Th即可, 第二种 直接blkid,后面有所有分区的类型:
      在这里插入图片描述
  • 如果/etc/fstab文件中类型错误会导致系统无法开机,如何识别是否正确写入,编辑完保存以后,mount -a如果磁盘能自动挂载便成功(如果使用的是网络设备挂载,建议用uuid的方式,因为网络设备有可能会发生磁盘的窜位,导致磁盘无法正常使用):
    在这里插入图片描述

查看uuid的2种方式

  • 一种是blkid【查看所有分区的uid】
  • 另外一种是xfs_admin -u 设备名 【查看单独一个分区的uuid】

修改uuid

uuidgen 生成一个随机id,然后xfs_admin -U 新uuid 设备名即可:
在这里插入图片描述
分区已经创建好以后,查看文件系统的属性:xfs_info 挂载设备名

<think>好的,我现在需要帮助用户了解机械硬盘分区的具体步骤。根据用户提供的引用内容,我需要综合整理相关信息,并确保回答结构清晰,步骤详细。 首先,用户提到的引用[3]详细介绍了fdisk工具的使用,适用于2T以内的硬盘分区。同时,引用[5]提到了挂载分区的步骤,所以这两个引用是关键。另外,引用[4]提到了安装硬盘的注意事项,比如断电操作,这也是需要注意的地方。 接下来,我需要按照逻辑顺序整理步骤。通常,机械硬盘分区的步骤包括连接硬盘、选择工具、创建分区、格式化和挂载。用户可能对Linux环境下的操作更感兴趣,因为引用中提到的工具如fdisk和mkfs是Linux常用的。 需要确认用户是否已经安装了硬盘,但根据问题描述,用户可能已经完成物理安装,所以重点放在分区步骤。步骤可能包括: 1. 检测硬盘是否被系统识别,使用lsblk或fdisk -l命令。 2. 使用fdisk或parted工具创建新分区。注意引用[3]提到fdisk适用于2T以内,而超过2T可能需要parted。 3. 分区类型选择,主分区或扩展分区,逻辑分区。 4. 保存分区表。 5. 格式化分区,如使用mkfs.ext4。 6. 挂载分区到目录,如/data,并设置开机自动挂载,编辑/etc/fstab。 同时需要注意用户可能的疑问,比如如何选择文件系统类型,挂载点的选择,以及是否需要swap分区。引用[2]中提到了swap分区的位置问题,但用户的问题是关于机械硬盘分区,可能不需要swap,但可以简要提及。 还要提醒用户操作前备份数据,确认硬盘设备正确,避免误操作。引用[4]强调了断电操作和小心螺丝,这些虽然属于物理安装,但可以放在注意事项里。 最后,生成相关问题,帮助用户深入理解,比如工具对比、分区方案设计、挂载问题等。参考用户提供的示例问题结构,列出相关问题。</think>### 机械硬盘分区步骤详解Linux环境) --- #### **步骤1:连接硬盘并检测设备** 1. 将机械硬盘安装到计算机(需断电操作,避免硬件损坏)[^4]。 2. 启动系统后,使用命令检测硬盘是否被识别: ```bash sudo fdisk -l # 查看所有磁盘设备,例如新硬盘可能显示为/dev/sdb ``` ![通过`lsblk`或`fdisk -l`查看新硬盘](https://via.placeholder.com/600x400?text=硬盘设备列表) --- #### **步骤2:选择分区工具** - **2T以内硬盘**:使用`fdisk`工具(简单易用)[^3]。 - **超过2T硬盘**:使用`parted`工具(支持GPT分区表)。 --- #### **步骤3:使用fdisk创建分区(以/dev/sdb为例)** 1. 进入交互模式: ```bash sudo fdisk /dev/sdb ``` 2. 输入指令逐步操作: - `n`:新建分区(可选主分区`p`或扩展分区`e`)。 - 设置分区编号(如1)、起始扇区(默认直接回车)、结束扇区(如`+10G`表示分配10GB)。 - `t`:修改分区类型(例如`83`为Linux文件系统,`8e`为LVM卷)。 - `w`:保存分区表并退出。 --- #### **步骤4:格式化分区** ```bash sudo mkfs.ext4 /dev/sdb1 # 格式化为ext4文件系统 ``` - 其他格式可选:`xfs`、`ntfs`(根据用途选择)[^5]。 --- #### **步骤5:挂载分区到目录** 1. 创建挂载点: ```bash sudo mkdir /data # 示例挂载到/data目录 ``` 2. 临时挂载: ```bash sudo mount /dev/sdb1 /data ``` 3. **永久挂载**:编辑`/etc/fstab`文件,添加: ```bash /dev/sdb1 /data ext4 defaults 0 0 ``` --- #### **注意事项** 1. **数据备份**:分区会清除原有数据,操作前需确认硬盘无重要数据[^4]。 2. **分区方案**:建议预留部分空间(如15T机械硬盘分配14T到/data,留1T备用)[^2]。 3. **挂载验证**:使用`df -hT`检查挂载状态。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

҉人间无事人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值