前言


关于磁盘的分区操作,是运维的必备技能,fdisk也应该是大家最常用的命令。因为fdisk命令可以解决大多数的磁盘分区问题,它可以将不大于2T的硬盘进行分区,而我们在生产中最常用的硬盘大小不超过2个T(视公司规模而定),当然有的时候,我们也会有对更大容量的需求,因此我们就会使用更大空间的硬盘,但是如果是用fdisk对2T以上的硬盘进行分区就会出现问题。下面介绍的就是Linux的磁盘分区,包含2T以上的磁盘的分区方法。



磁盘分区常识



【1】硬盘分区表基础概念


硬盘分区表是支持硬盘正常工作的架构。其意义在于操作系统会根据硬盘的分区表把硬盘划分为若干个分区,然后再在每个分区里面创建文件系统,使系统可以写入数据。不同的硬盘分区表就像是对一个房子的不同的装修方案。

到现在这篇文章为止,主要磁盘分区使用的分区表有MBR和GPT两种。



【2】MBR和GPT分区表的区别


MBR分区表

  • 主引导记录分区方案,是传统的分区方案;

  • 只能记录4个分区的信息,硬盘主分区数目不能超过4个。(MBR扇区每个分区项使用16个字节存储,总共只有64个字节用于分区表);

  • 无法支持超过2TB容量的磁盘,对超过2T的硬盘分区只能使用2T空间。



GPT分区表(又称GUID分区表)

  • 全局唯一标识分区表,是较新的分区机制;

  • 理论上每个磁盘的分区个数和大小几乎没有限制;
    (Windows系统最多只允许划分128个分区,所以windows系统磁盘分区时使用此分区方案,最多128分区)

  • 支持超过2T的磁盘;

  • 可兼容MBR。

  • 分区表自带备份。
    (会在磁盘的首尾部分,分别保存了一份相同的分区表。其中一份被破坏后,可以通过另一份恢复)



磁盘分区挂载操作


注意:
由于使用虚拟机演示,磁盘显示为vd。
虚拟机的磁盘一般显示为似vda的类型,真实机磁盘显示为sda的类型
fdisk命令对应MBR分区表
parted命令对应GPT分区表


【1】不大于2T的磁盘分区


<1>查看硬盘信息

方法一:lsblk


方法二:fdisk -l

中文版


英文版



<2>创建新硬盘分区

右上方可知新磁盘为vdb,其空间为100G,不大于2T,所以使用fdisk对其分区
磁盘默认都在/dev下,可用Tab补全


{1}fdisk /dev/vdb


{2}输入m,列出菜单

a   toggle a bootable flag                    设置可启动标记
b   edit bsd disklabel                        设置一个bsd磁盘标记
c   toggle the dos compatibility flag         设置dos兼容标记
d   delete a partition                        删除一个分区
l   list known partition types                列出已知分区类型
m   print this menu                           列出菜单
n   add a new partition                       添加一个分区
o   create a new empty DOS partition table    新建一个空的DOS分区表
p   print the partition table                 显示该磁盘当前分区信息
q   quit without saving changes               不保存退出
s   create a new empty Sun disklabel          创建一个空的SUN磁盘标签
t   change a partition's system id            修改分区ID
u   change display/entry units                修改显示单元
v   verify the partition table                检验分区表
w   write table to disk and exit              保存并退出
x   extra functionality (experts only)        额外的功能(专家模式)

{3}输入n,创建一个分区


{4}输入p,创建逻辑分区


Select (default p): p                                                         创建逻辑分区
Partition number (1-4, default 1): 1                                          划分逻辑分区1号
First sector (2048-209715199, default 2048):                                  回车默认从第一个柱面开始划分(一般都使用默认,直接回车)
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199):    划分分区大小(格式:+800M);直接回车,会默认将剩余空间全部划分给此分区
Using default value 209715199
Partition 1 of type Linux and of size 100 GiB is setCommand (m for help): p                                                       显示该磁盘当前分区信息Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 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: 0x00000000Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048   209715199   104856576   83  LinuxCommand (m for help): w                                                       保存并退出
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.

<3>创建后查看

lsblk

出现vdb1,即成功


<4>格式化分区

本次将其格式化为ext4的文件系统,可选其他文件系统


mkfs.ext4 /dev/vdb1


<5>挂载

可创建一个目录将其挂载,也可直接挂载到已有的目录
挂载方式有很多种,按需选择
本次,直接挂载到/mnt,使用永久挂载

挂载最好使用UUID,并进行永久挂载。可避免Linux系统重启后,磁盘设备名发生更导致的问题。


{1}写入文件
echo “/dev/vdb1 /mnt ext4 defaults 0 0” >>/etc/fstab


{2}刷新挂载并查看
mount -a
df -Th



【2】大于2T,小于等于16T的磁盘分区



<1>创建新硬盘分区

本次使用的是4T的磁盘演示,由于大于2T使用GPT分区表,使用parted 命令分区
如使用fdisk分区,将只有2T空间可用


parted /dev/sdb

Welcome to GNU Parted! Type 'help' to view a list of commands.(parted) mklabel gpt                                           创建分区表,磁盘类型为gptWarning: The existing disk label on /dev/sdx will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes                                                    选择yes,为清除磁盘原有信息;根据需求选择(parted) unit TB                                               设置单位为TB(parted) mkpart primary 0 4                                    创建4T的分区(0 4分别意为起始点和结束点)(parted) print                                                 查看分区信息Number  Start  End    Size   File system   标志
数字       开始   结束    大小  文件系统       标志(parted) quit                                                  保存并退出


其查看磁盘、分区格式化、挂载操作都与小于2T的磁盘的操作是相同的,就不演示了,可参考上方的小于2T的磁盘格式化,挂载操作。

<2>分区及挂载后最终结果

lsblk



【3】大于16T的磁盘分区



演示一种情况
由于cobbler错误的分区格式导致,16T以上的空间,在装完系统后,只能看到分区仅为16T,还有部分空间看不到且未分配
(避免误操作可先将文件备份到其他服务器)





<1>将剩余空间进行分区


parted /dev/sda GNU Parted 2.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                  #查看分区信息
Model: DELL PERC H730P Mini (scsi)
Disk /dev/sda: 40.0TB
Sector size (logical/physical): 512B/512B
Partition Table: gptNumber   Start   End     Size    File system     Name    Flags
#分区编号 开始    结束     大小     文件系统         分区名   标志 1       1049kB  211MB   210MB   ext42       211MB   108GB   107GB   ext43       108GB   116GB   8590MB  linux-swap(v1)4       116GB   17.7TB  17.6TB  ext4(parted)mkpart                   #创建分区
Partition name? []?  gpt2        #指定分区名称
File system type? [ext2]? xfs    #指定分区文件格式(16T以上建议先使用xfs)
Start? 17.7TB                    #指定该分区开始位置 通常为上一个分区的End
End? -1                          #指定该分区结束位置  -1代表直到最后(最后的所有空间)
(parted)p                       #同print,打印分区信息
(parted)quit                    #保存并退出

因为直接在硬盘生效,调整分区要小心



<2>如果调整中弹出如下报错
分区后,lsblk看不到新的分区

Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (设备或资源忙).  As a result, it may not reflect all of your changes until after reboot.

这种情况可以使用partx命令,或重启服务器

partx -a /dev/sda


partx用来告诉内核当前磁盘的分区情况,对一个磁盘或者分区表类型,尝试解析分区表 。不同于fdisk,增加或删除分区对磁盘造成改变,只是告诉内核当前磁盘的分区情况

partprobe通常在RHEL 5中用来通知操作系统的磁盘上的分区表变化或更改。在RHEL 6中,只有当那些磁盘上任何分区都没有在使用的磁盘下(例如,mounted)它才会触发OS去更新磁盘的分区表。如果磁盘上的任何分区正在使用中,partprobe命令不会触发操作系统去更新分区表的信息。



<3>格式化
(如果可以看到新分区)

当磁盘空间大于16T使用mkfs格式化成ext4,会无法完全格式化,只能格式成xfs

vim /etc/mke2fd.conf#vim /etc/mke2fs.conf[fs_types]ext3 = {undefinedfeatures = has_journal}ext4 = {undefinedfeatures = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isizeauto_64-bit_support = 1  #添加这一行inode_size = 256}
访问https://sourceforge.net/projects/e2fsprogs/files/e2fsprogs/下载软件
或
git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.gitcd e2fsprogs
./configure make && make install
mke2fs -O 64bit,has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize -i 2048  /dev/sda5


补充



【1】取消挂载命令


umount /mnt/



【2】fdisk取消分区命令


取消分区前该分区必先取消挂载


fdisk /dev//vdb

Command (m for help): d                                                删除分区(如果只有一个分区,就不会出现要删除的分区的选项) Command (m for help): p                                                列出此磁盘当前分区信息Command (m for help): w                                                退出并保存 


【3】parted取消分区命令


取消分区前,该分区的数据如果有用,必须先备份,然后取消挂载,再调整分区


parted /dev/sdb

(parted)    rm                                                          删除 Partition number? 3                                                    删除第三个分区parted)    print                                                        查看当前分区情况

Linux磁盘分区总结相关推荐

  1. linux最常用的目录表示,Linux磁盘分区的命名方式和常用目录?【每日一个知识点第84期-Linux】...

    磁盘分区对于入门的linux来说,是非常入门的技能,也是日常管理中常用技能之一,今天我们来做一个回顾,帮助大家提升磁盘分区的技能. [84期主题]Linux磁盘分区的命名方式和常用目录? Linux分 ...

  2. Linux磁盘分区了解多少?Linux入门必看

    磁盘分区,顾名思义就是对电脑中的硬盘进行空间划分,这样不仅有利于备份,还可以对文件进行分门别类.那么你对Linux磁盘分区了解多少呢?我们通过这篇文章来学习一下. Linux磁盘分区主要分为基本分区和 ...

  3. linux磁盘 分区 物理卷 卷组 逻辑卷 文件系统加载点操作案例

    转自:truemylife.linux磁盘 分区 物理卷 卷组 逻辑卷 文件系统加载点操作案例 基本概念: 磁盘.分区.物理卷[物理部分] 卷组[中间部分] 逻辑卷.文件系统[虚拟化后可控制部分] 磁 ...

  4. Linux 磁盘分区 Fdisk

    linux磁盘分区:fdisk(小于2T的分区工具) [root@zyl ~]# fdisk -l            #####查看磁盘空间 Disk /dev/sda: 16.1 GB, 161 ...

  5. linux磁盘第一个扇区分析,Linux磁盘分区

    一.磁盘连接方式与设备文件名的关系 计算机常见的磁盘接口有两种,分别是IDE与SATA接口,目前主流接口已经是SATA接口了. 一个IDE扁平电缆可以连接两个IDE设备,通常主机又都会提供两个IDE接 ...

  6. linux中fdisk的参数,Linux fdisk命令参数及用法详解--Linux磁盘分区管理命令fdisk

    fdisk 命令 linux磁盘分区管理 用途:观察硬盘之实体使用情形与分割硬盘用. 使用方法: 一.在 console 上输入 fdisk -l /dev/sda ,观察硬盘之实体使用情形. 二.在 ...

  7. linux 磁盘监控,9个在Linux中监视Linux磁盘分区和用法的工具

    在这篇文章中,我们将回顾一些Linux的命令行工具 ,你可以使用它来检查磁盘分区在Linux中. 监控存储设备空间使用情况是SysAdmin的最重要的任务之一,这有助于确保存储设备上有足够的可用空间, ...

  8. linux 磁盘分区,格式化,挂载

    在操作系统中,磁盘管理属于设备管理的范畴,一块硬盘安装到主机之后称为裸设备,若要能够linux系统中使用必须对其进行如下步骤: 分区 --> 格式化 --> 挂载 1. linux 系统中 ...

  9. 实训|第七天横扫Linux磁盘分区、软件安装障碍附制作软件仓库

    期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教程,包括今天学到 ...

  10. LINUX磁盘分区挂载笔记

    目录 一.Linux磁盘分区 ① 基本分区与扩充分区 ② 对比windows磁盘分区 二.管理Linux主分区(基本分区) ① 新增一个主分区 ② 删除一个主分区 三.管理Linux扩充分区 ① 新增 ...

最新文章

  1. EGL接口介绍-----Android OpenGL ES底层开发
  2. Qt安装及配置_很详细(附下载网址)
  3. 全国计算机等级考试三级网络技术考试大纲
  4. Jupyter 绘图怎么显示中文
  5. jvm虚拟机内存结构_JVM体系结构101:了解您的虚拟机
  6. HTML5触摸事件演化tap事件
  7. 动态规划—最长上升子序列(POJ 1458)
  8. [转]基于Storm的实时数据处理方案
  9. 结构型模式-装饰模式(扩展系统功能)
  10. 警告 1 warning C4996: ‘scanf‘: This function or variable may be unsafe.
  11. JavaScript学习(八十四)—变量
  12. iOS新的旅程之Swift语言的学习
  13. 《全局光照技术》在摩点网发起众筹活动
  14. c语言解线性方程组矩阵形势,c语言解线性方程组.docx
  15. 百度竞价有没有好的推广方法?
  16. String intern方法
  17. easypoi.excel 导入不固定的合并单元格数据
  18. Combining Character
  19. ADB命令开关闭手机WIFI以及下拉(收缩)状态栏
  20. 门铃质检报告办理快速发证

热门文章

  1. PCB线宽与电阻的计算
  2. LIS O(n*lgn)
  3. Intro.js 分步向导插件使用方法
  4. 如何将Matlab中命令窗口中的数据保存到一个文档中
  5. java整除符号是什么意思_java除法及java除法运算的基础知识
  6. 音乐心理学 | 书籍推荐
  7. 2017年全国大学生电子竞赛电源A题
  8. 计算机内存128毫升,内存换算公式(内存怎么换算)
  9. 更改Windows的鼠标滚动方式为Mac方式(win鼠标滚轮反向)
  10. Windows更改鼠标滚轮方向