文章目录

  • 磁盘结构介绍
    • 分区类型说明
  • 磁盘管理说明
  • fdisk -l 参数详解
  • 分区大小转换计算方法
    • 方式一
    • 方式二
  • MBR分区管理
    • 图形化分区
    • 命令行模式
      • 命令格式化硬盘为gpt和mbr说明【了解就行】
      • fdisk命令行分区
      • 参数介绍
      • 创建分区【含扇区解释】
      • 主分区和扩展分区说明
      • 分区类型转换
      • 保存分区
      • partprobe 分区设备名(刷新分区表)
      • 完整流程展示
  • 分完区以后的硬盘使用流程
    • 格式化硬盘(指定块大小等)
    • 硬盘挂载(需格式化后)
      • 查看uuid的2种方式
      • 修改uuid

磁盘结构介绍

  • 一个磁盘由盘片和磁道组成,磁道有无数个扇区,一个扇区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: 0x00068e46Device 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 * 2048 2099199 1048576 83 Linux 1G
/dev/sda2 2099200 419430399 208665600 8e Linux LVM 198.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 setCommand (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 setCommand (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 setCommand (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 setCommand (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 setCommand (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 setCommand (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 setCommand (m for help): pDisk /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: 0x0ab2846aDevice 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  LinuxCommand (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 挂载设备名

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

  1. 保姆级swap分区详解!手把手带你创建swap分区(两种方式,建议收藏)涉及fdisk、gdisk、df、parted、partprobe、mkswap、swapon、free、dd、od等命令

    Swap分区的详解 && 创建 什么是swap分区? 方法一:使用物理分区创建Swap分区 1. 利用fdisk / gdisk在磁盘上划出一个分区 1.1 lsblk -- 查看本机 ...

  2. Oracle分区详解和创建,数据库优化-Oracle表分区的创建和分类

    Oracle的表分区功能通过改善可管理性.性能和可用性,从而为各式应用程序带来了极大的好处.通常,分区可以使某些查询以及维护操 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降, ...

  3. linux+fdisk+分区,Linux下Fdisk分区详解

    那么你知道Linux下Fdisk分区详解么?接下来是小编为大家收集的Linux下Fdisk分区详解,欢迎大家阅读: Linux下Fdisk分区详解 1. 通过Fdisk查看系统分区详细信息: Fdis ...

  4. linux磁盘分区fdisk命令详解及云硬盘挂载实操

    linux磁盘分区fdisk命令详解 1.什么是分区? 分区是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做一个独立的磁硬使用.分区表是一个硬盘分区的索引,分区的信息都会写进分区表. ...

  5. 磁盘及分区详解(MBR和GPT)、新增磁盘分区总体示例

    磁盘及分区详解(MBR和GPT) 1.磁盘为什么要分区? 2.Linux设备文件 3.磁盘简介 3.1 硬盘接口类型 3.2 机械硬盘和固态硬盘 3.2.1 磁盘术语 3.2.2 机械硬盘 4.分区方 ...

  6. linux磁盘分区什么意思,linux 磁盘分区详解

    <linux 磁盘分区详解>由会员分享,可在线阅读,更多相关<linux 磁盘分区详解(31页珍藏版)>请在人人文库网上搜索. 1.系统引导过程和硬盘分区结构讨论作者:章节来源 ...

  7. MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)

    MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测) 一.什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过 ...

  8. python离线包安装_python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境...

    python的pip是其包管理工具,相当方便好用.本文只介绍pip 如何通过其freeze命令打离线包,及其离线包的安装脚本.这个知识点,特别适用于不适合连通互联网,设备需要物理隔绝,保密要求严格的客 ...

  9. mysql 社区版 innodb_MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)

    MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测) / --------------------         写在最前面            ------------------ ...

最新文章

  1. 【原创】ASP.NET C# 压缩和解压缩文件、文件夹函数(测试通过)
  2. 星型模型 3nf的区别_贵州省遵义市工业模型经典案例展示
  3. Windows搭建golang开发平台
  4. 自动化测试框架cucumber_自动化测试框架cucumber-java操作手册_从配置到生成测报...
  5. C#连接Sqlite 出现:混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。的解决方案...
  6. python文件打开模式中、使用w模式、文件指针指向_被python文件模式“w+”所迷惑
  7. 转载:C#WinForm窗体事件执行次序(较完整版)
  8. ES6中变量的解构赋值
  9. 大数据分析有哪些核心技术
  10. js中java式的类成员
  11. python图像几何变换_python-opencv 图像几何变换--缩放、平移、旋转
  12. 翻译: 如何使用 Xcode 的内存图调试器检测 iOS 内存泄漏并保留周期
  13. 在Python里安装Jieba中文分词组件
  14. unity与3dmax 单位统一的方法
  15. 美通社企业新闻汇总 | 2019.1.29 | 华为四款明星产品亮相世界移动通信大会;一季度全球智能手机同比将减产10%...
  16. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记三(2):Cortex-M3内部函数
  17. 带感小说:程序员坐牢会被安排写代码吗?
  18. oracle权限培训,【必看】Oracle用户、权限、角色管理
  19. discuz二次开发技巧
  20. 【沃顿商学院学习笔记】商业基础——Accounting:00基础背景

热门文章

  1. 大学学java的就业方向_学Java的就业方向有哪些?
  2. 北京中亦安图科技股份有限公司企业介绍_脑图
  3. HTML中字体属性、文本属性使用说明
  4. Guava collections -- Table
  5. Multiple keywords with name ‘Capture Page Screenshot‘ found. Give the full name of the keyword you w
  6. win10安装Ubuntu16.04
  7. 《Cocos Creator游戏实战》你画我猜中的画板功能
  8. 用 ListBox 和 DataBinding 显示列表数据 (木野狐译) 1
  9. 3D目标检测-BEVFormer、BEVDepth
  10. 酷客scrm发布:陌生人扫码进群原来是这么回事