对于磁盘的分区表 MBR与GPT区别。

MBR:MBR分区表(即主引导记录)大家都很熟悉,是过去我们使用windows时常用的。

所支持的最大卷:2T,而且对分区有限制:最多4个主分区或3个主分区加一个扩展分区

GPT: GPT(即GUID分区表)。是源自EFI标准的一种较新的磁盘分区表结构的标准,是未来磁盘分区的主要形式。与MBR分区方式相比,具有如下优点。

突破MBR 4个主分区限制,每个磁盘最多支持128个分区。支持大于2T的分区,最大卷可达18EB。

对于 GPT 的分区,建议使用 parted 工具进行分区,fdisk 在 GPT 这块不是很好。

Parted 介绍

Parted 命令分为两种模式:命令行模式和交互模式。

命令行模式

parted [option] device [command] ,该模式可以直接在命令行下对磁盘进行分区操作,比较适合编程应用。如:

显示磁盘/dev/sdb分区。

parted /dev/sdb print

交互模式

parted [option] device 进入交互模式。尤其是对 parted 命令不是很熟悉的情况下建议使用交互模式。

parted /dev/sdb

parted命令常用选项

进入 交互模式下, 输入 help 可以看到如下提示,本文基于 Parted 3.2 进行说明。

test@test01:~$ sudo parted /dev/sdb
GNU Parted 3.2
使用 /dev/sdb
欢迎使用 GNU Parted! 输入 'help'可获得命令列表.
(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
help [COMMAND] print general help, or help on COMMAND
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
mkpart 分区类型 [文件系统类型] 起始点 终止点 创建一个分区
name NUMBER 名称 将编号为NUMBER 的分区命名为“名称”
print [devices|free|list,all|NUMBER] display the partition table, available devices, free space,
all found partitions, or a particular partition
quit 退出程序
rescue 起始点 终止点 挽救临近“起始点”、“终止点”的遗失的分区
resizepart NUMBER END resize partition NUMBER
rm MINOR 删除编号为 MINOR 的分区
选择设备 选择要编辑的设备
disk_set FLAG STATE change the FLAG on selected device
disk_toggle [FLAG] toggle the state of FLAG on selected device
set NUMBER FLAG STATE change the FLAG on partition NUMBER
toggle [NUMBER [FLAG]] 切换分区 NUMBER 的 FLAG 标记
unit UNIT set the default unit to UNIT
version display the version number and copyright information of GNU
Parted
(parted)

比较常用的几个选项是

  • help 打印帮助信息
  • print 输出分区信息
  • mklabel 创建分区表, 即是使用msdos(MBR)还是使用gpt,或者是其他方式分区表
  • mkpart 创建新分区

    格式:mkpart PART-TYPE START END

    PART-TYPE类型主要有primary(主分区), extended(扩展分区), logical(逻辑区). 扩展分区和逻辑分区只对msdos。
  • rm 删除一个分区
  • resizepart 调整指定的分区的大小
  • quit 退出该交互界面

对磁盘进行分区

首先对于容量较大的磁盘使用 fdisk 工具会得到如下提示:

test@test01:~$ sudo fdisk /dev/sdb

欢迎使用 fdisk (util-linux 2.31.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。 设备不包含可识别的分区表。
The size of this disk is 3.7 TiB (4000787030016 bytes). DOS partition table format cannot be used on drives for volumes larger than 2199023255040 bytes for 512-byte sectors. Use GUID partition table format (GPT). 创建了一个磁盘标识符为 0x9f682389 的新 DOS 磁盘标签。 命令(输入 m 获取帮助):

这个时候我们就需要更新 parted 来对磁盘进行分区。

更改分区表

操作如下:

(parted) mklabel gpt
(parted) print
Model: ATA ST4000DM004-2CV1 (scsi)
磁盘 /dev/sdb: 4001GB
Sector size (logical/physical): 512B/4096B
分区表:gpt
Disk Flags: 数字 开始: End 大小 文件系统 Name 标志 (parted)

创建分区

使用 mkpart 创建自己需要的大小的分区

(parted) mkpart primary 0 4TB
(parted) p
Model: ATA ST4000DM004-2CV1 (scsi)
磁盘 /dev/sdb: 4001GB
Sector size (logical/physical): 512B/4096B
分区表:gpt
Disk Flags: 数字 开始: End 大小 文件系统 Name 标志
1 1049kB 4001GB 4001GB primary (parted)

创建好以后退出。

parted 的每一个操作都是即时生效,和 fdisk 不同,fdisk 只有在最后使用 w 进行保存以后才会生效 。

格式化分区

格式化成你需要的文件系统。

mkfs.ext4 /dev/sdb1

整个分区创建过程就结束了。

对齐分区以得到最优性能

当分区不对齐时,parted 会提示如下

警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel?

对于这个提示,只要分区对齐就好。如果你的设计,就是要不对齐,那么可以忽略这个提示。

对齐分区有两个方法,

方法一,使用百分比来表示要分区的的空间大小,那么到100%的时候自然是对齐的。示例如下:

(parted) mkpart primary 0% 100%
(parted) p
Model: ATA ST4000DM004-2CV1 (scsi)
磁盘 /dev/sdb: 4001GB
Sector size (logical/physical): 512B/4096B
分区表:gpt
Disk Flags: 数字 开始: End 大小 文件系统 Name 标志
1 1049kB 4001GB 4001GB primary (parted)

方法二,如果是使用容量来进行空间大小的话,那么 -1 这个值代表的是最后的位置。示例如下:

(parted) mkpart primary 0TB -1
(parted) p
Model: ATA ST4000DM004-2CV1 (scsi)
磁盘 /dev/sdb: 4001GB
Sector size (logical/physical): 512B/4096B
分区表:gpt
Disk Flags: 数字 开始: End 大小 文件系统 Name 标志
1 1049kB 4001GB 4001GB primary (parted)

方法三,手动进行计算。

下边这篇博客的作者描述了如何计算磁盘的扇区来保证分区对齐。

https://rainbow.chard.org/2013/01/30/how-to-align-partitions-for-best-performance-using-parted/

Parted 创建 GPT 分区的更多相关文章

  1. 使用parted创建gpt大分区例子

    [root@VM000000518 ~]# parted /dev/xvde GNU Parted 2.1 Using /dev/xvde Welcome to GNU Parted! Type 'h ...

  2. parted创建磁盘分区并创建LVM(Linux合并多块大于2T的磁盘并合并到一个分区)

    文章转载自:https://blog.csdn.net/likemebee/article/details/85630808

  3. 2T以上的盘怎么分区, 利用parted创建 linuxTB硬盘GPT分区

    parted创建GPT分区(fdisk不支持创建GPT分区,GPT支持大于2TB分区,MBR不支持) 介绍2种分区表: MBR分区表:(MBR含义:主引导记录) 所支持的最大卷:2T (T; tera ...

  4. [RHEL 6]GPT分区--parted

    对于2T以上的硬盘,划分分区表需要GPT分区,RHEL 6中使用parted进行分区 用法:parted [选项]... [设备 [命令 [参数]...]...] 将带有“参数”的命令应用于“设备”. ...

  5. GPT分区基础知识及如何在GPT分区上安装WIN7

    大硬盘和WIN8系统,让我们从传统的BIOS+MBR模式升级到UEFI+GPT模式,现在购买的主流电脑,都是预装WIN8系统,为了更好的支持2TB硬盘,更快速的启动win8,预装系统都采取了GPT分区 ...

  6. 预装WIN8的电脑是GPT分区模式,无法安装WIN7

    本人的笔记本自带的是WIN8系统,现在想安装WIN7的系统,但是安装不了,提示"windows无法安装到这个磁盘.选中的磁盘采用GPT分区形式". 通过上网搜索得知WIN7一般安装 ...

  7. 磁盘挂载问题:Fdisk最大只能创建2T分区的盘,超过2T使用parted

    需求说明:云服务器上买了一块8T的磁盘,准备挂载到服务器上的/data目录下. ===================================parted命令说明=============== ...

  8. Linux下的GPT分区,使用parted命令

    Linux下的GPT分区,这是另外一种分区,针对MBR分区,它有很多优点: (1)几乎突破了分区个数的限制. 在GPT分区表中最多可以支持128个主分区. (2)单个分区容量几乎没有限制. 单个分区最 ...

  9. 使用parted 创建一个大于2T的分区

    1.查看现有分区 parted -l fdisk   -l     2.对/dev/sdb分一个区 [root@test ~]# parted /dev/sdb   (parted) mkpart  ...

随机推荐

  1. go语言标准库之http/template

    html/template包实现了数据驱动的模板,用于生成可对抗代码注入的安全HTML输出.它提供了和text/template包相同的接口,Go语言中输出HTML的场景都应使用text/templa ...

  2. 使用 Chrome 对长网页(知乎、微信公众号文章)进行完整截图

    当需要对一个较长的网页进行完整截图时,可以直接使用谷歌浏览器(Chrome)自带的截图功能完成,不需要依赖第三方截图软件. 1. 打开网页 以微信公众号的页面作为示例:https://mp.weixi ...

  3. 详解计算机中的Byte、bit、字、字长、字节

    最近突然有同事问我,关于计算机中的计量单位大B和小b的区别,以及KB到GB之间的换算问题,我当时觉得这问题简单,大B是 byte,小b是bit,但是想到他俩之间的换算时,一时有些想不起来具体是1Byt ...

  4. Hive 官方手册翻译 -- Hive Transactions (Hive 事务)

    由 Alan Gates创建, 最终由 Andrew Sherman修改于2018年8月7日 原文链接:https://cwiki.apache.org/confluence/display/Hive ...

  5. Error response from daemon: Get https://registry-1.docker.io/v2/library/nginx/manifests/1.14-alpine: Get https://auth.docker.io/token?scope=repository%3Alibrary%2Fnginx%3Apull&service=registry.docker.

    docker pull 镜像时报错: Error response from daemon: Get https://registry-1.docker.io/v2/library/nginx/man ...

  6. Python学习笔记五(读取提取写入文件)

    #Python打开读取一个文件内容,然后写入一个新的文件中,并对某些字段进行提取,写入新的字段的脚本,与大家共同学习. import os import re def get_filelist(dir ...

  7. Vue-CLI项目路由案例汇总

    0901自我总结 Vue-CLI项目路由案例汇总 router.js import Vue from 'vue' import Router from 'vue-router' import Cour ...

  8. C、C++的Makefile模板

    目录 Makefile模板 用法 编译C程序 编译C++程序 其他 Tips Makefile模板 CC = gcc LD = $(CC) TARGET = $(notdir $(CURDIR)) S ...

  9. 渗透测试-基于白名单执行payload--Compiler

    复现亮神课程 0x01 Compiler前言 说明:Microsoft.Workflow.Comiler.exe是.NET Framework默认自带的一个实用工具,用户能够以XOML工作流文件的形式 ...

  10. [JZOJ5818] 【NOIP提高A组模拟2018.8.15】 做运动

    Description 一天,Y 君在测量体重的时候惊讶的发现,由于常年坐在电脑前认真学习,她的体重有了突 飞猛进的增长. 幸好 Y 君现在退役了,她有大量的时间来做运动,她决定每天从教学楼跑到食堂来 ...