fdisk分区详解【适用于2T以内的新硬盘分区】
文章目录
- 磁盘结构介绍
- 分区类型说明
- 磁盘管理说明
- 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
即可
- 选择主分区或逻辑分区,前3个一般选主分区,所以输入:
我们划分区的时候,一般是默认起始扇区的(直接回车就是默认),所以建立多个之间并不会有空隙,如,第一块建了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以内的新硬盘分区】相关推荐
- 保姆级swap分区详解!手把手带你创建swap分区(两种方式,建议收藏)涉及fdisk、gdisk、df、parted、partprobe、mkswap、swapon、free、dd、od等命令
Swap分区的详解 && 创建 什么是swap分区? 方法一:使用物理分区创建Swap分区 1. 利用fdisk / gdisk在磁盘上划出一个分区 1.1 lsblk -- 查看本机 ...
- Oracle分区详解和创建,数据库优化-Oracle表分区的创建和分类
Oracle的表分区功能通过改善可管理性.性能和可用性,从而为各式应用程序带来了极大的好处.通常,分区可以使某些查询以及维护操 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降, ...
- linux+fdisk+分区,Linux下Fdisk分区详解
那么你知道Linux下Fdisk分区详解么?接下来是小编为大家收集的Linux下Fdisk分区详解,欢迎大家阅读: Linux下Fdisk分区详解 1. 通过Fdisk查看系统分区详细信息: Fdis ...
- linux磁盘分区fdisk命令详解及云硬盘挂载实操
linux磁盘分区fdisk命令详解 1.什么是分区? 分区是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做一个独立的磁硬使用.分区表是一个硬盘分区的索引,分区的信息都会写进分区表. ...
- 磁盘及分区详解(MBR和GPT)、新增磁盘分区总体示例
磁盘及分区详解(MBR和GPT) 1.磁盘为什么要分区? 2.Linux设备文件 3.磁盘简介 3.1 硬盘接口类型 3.2 机械硬盘和固态硬盘 3.2.1 磁盘术语 3.2.2 机械硬盘 4.分区方 ...
- linux磁盘分区什么意思,linux 磁盘分区详解
<linux 磁盘分区详解>由会员分享,可在线阅读,更多相关<linux 磁盘分区详解(31页珍藏版)>请在人人文库网上搜索. 1.系统引导过程和硬盘分区结构讨论作者:章节来源 ...
- MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)
MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测) 一.什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过 ...
- python离线包安装_python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境...
python的pip是其包管理工具,相当方便好用.本文只介绍pip 如何通过其freeze命令打离线包,及其离线包的安装脚本.这个知识点,特别适用于不适合连通互联网,设备需要物理隔绝,保密要求严格的客 ...
- mysql 社区版 innodb_MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)
MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测) / -------------------- 写在最前面 ------------------ ...
最新文章
- 【原创】ASP.NET C# 压缩和解压缩文件、文件夹函数(测试通过)
- 星型模型 3nf的区别_贵州省遵义市工业模型经典案例展示
- Windows搭建golang开发平台
- 自动化测试框架cucumber_自动化测试框架cucumber-java操作手册_从配置到生成测报...
- C#连接Sqlite 出现:混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。的解决方案...
- python文件打开模式中、使用w模式、文件指针指向_被python文件模式“w+”所迷惑
- 转载:C#WinForm窗体事件执行次序(较完整版)
- ES6中变量的解构赋值
- 大数据分析有哪些核心技术
- js中java式的类成员
- python图像几何变换_python-opencv 图像几何变换--缩放、平移、旋转
- 翻译: 如何使用 Xcode 的内存图调试器检测 iOS 内存泄漏并保留周期
- 在Python里安装Jieba中文分词组件
- unity与3dmax 单位统一的方法
- 美通社企业新闻汇总 | 2019.1.29 | 华为四款明星产品亮相世界移动通信大会;一季度全球智能手机同比将减产10%...
- STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记三(2):Cortex-M3内部函数
- 带感小说:程序员坐牢会被安排写代码吗?
- oracle权限培训,【必看】Oracle用户、权限、角色管理
- discuz二次开发技巧
- 【沃顿商学院学习笔记】商业基础——Accounting:00基础背景
热门文章
- 大学学java的就业方向_学Java的就业方向有哪些?
- 北京中亦安图科技股份有限公司企业介绍_脑图
- HTML中字体属性、文本属性使用说明
- Guava collections -- Table
- Multiple keywords with name ‘Capture Page Screenshot‘ found. Give the full name of the keyword you w
- win10安装Ubuntu16.04
- 《Cocos Creator游戏实战》你画我猜中的画板功能
- 用 ListBox 和 DataBinding 显示列表数据 (木野狐译) 1
- 3D目标检测-BEVFormer、BEVDepth
- 酷客scrm发布:陌生人扫码进群原来是这么回事