磁盘分区相关知识

磁盘分区相关知识

使用磁盘分区的过程
设备识别→设备分区→创建文件系统→标记文件系统→在/etc/fstab文件中创建条目→挂载新的文件系统

分区不是必须的,但是分区是必要的:
优化I/O性能
实现磁盘空间配额限制
提高修复速度
隔离系统和程序
安装多个OS
采用不同文件系统

不重启激活新添加的磁盘:echo “- – -” > /sys/class/scsi_host/host0/scan

MBR分区(Master Boot Record)

使用32位表示扇区 数,分区不超过512*2^32=2TB

0磁道0扇区(成为mbr):512bytes

446bytes: boot loader (其他分区的第一个扇区也会余出446,但是是空的不存储引导数据)

64bytes:分区表 记录分区名 分区地址 其中16bytes标识一个分区 所以最多只能划分四个分区 4个主分区;3主分区+1扩展(N个逻辑分区)

2bytes: 55AA 标识位 表示有分区的意思

新磁盘未分区的mbr全部为零 没有分区表 查看分区前512字节磁盘分区相关知识 分区结构图 磁盘分区相关知识

GPT分区(Globals Unique Identifiers)

支持128个分区,使用64位 支持8Z( 512Byte/block )或者64Z ( 4096Byte/block)

使用128位UUID(Universally Unique Identifier) 表示磁盘 和分区 GPT分区表自动备份在头和尾两份,并有CRC校验位

UEFI (统一扩展固件接口)硬件支持GPT,使操作系统启动(BIOS本身不支持GPT分区的,只能利用UEFI技术 才能启动系统UEFI+GPT=BIOS+MBR)

GPT分区结构图 磁盘分区相关知识

创建分区

列出块设备 lsblk

创建分区使用:
fdisk 创建MBR分区
gdisk 创建GPT分区
parted 高级分区操作(二者都可以)
partprobe-重新设置内存中的内核分区表版本

parted

直接输入以交互式方式进行分区操作
Parted /dev/sdb

也可以使用非交互式进行分区操作

用法:parted [选项]… [设备 [命令 [参数]…]…]
parted /dev/sdb mklabel gpt|msdos

指定用分区方式(即格式化分区)

磁盘分区相关知识

parted /dev/sdb print 显示分区表

磁盘分区相关知识

parted /dev/sdb mkpart primary 1 200 (默认M)创建分区
parted /dev/sdb rm 1
删除磁盘分区 按照编号删除
parted -l 显示磁盘分区信息 磁盘分区相关知识

GPT和MBR分区没有必要进行转换,一但转换内部信息会被破坏,因为二者分区的结构不同 磁盘分区相关知识

延伸:

对于MBR分区来说,若0磁道0扇区的mbr被破坏(即前512字节),会造成严重后果,机器无法启动。 磁盘分区相关知识

利用lsblk仍可以看到分区信息,fdisk看不到,因为分区表一份在磁盘一份在内存,二者是不同步的。
如何恢复?

  • 可以将512字节分区表提前备份到本地和其他主机

磁盘分区相关知识

  • 当磁盘的mbr分区表被破坏后,当没有重启,可以利用本地备份的分区表恢复

磁盘分区相关知识

gdisk和fdisk(交互式和非交互)

gfisk /dev/sdb 类fdisk 的GPT分区工具

交互:
fdisk /dev/sdb 管理分区

非交互:
fdisk -l [-u] [device…] 查看分区
子命令:
p 分区列表
t 更改分区类型
n 创建新分区
d 删除分区
v 校验分区
u 转换单位

Centos7默认以扇区为单位,可以选择以柱面为单位

磁盘分区相关知识

同步分区

fdisk -l /dev/磁盘名 查看磁盘真实分区信息

lsblk 或者cat /proc/partations
查看内存中分区表

通过以上两个命令可以看分区时不是已经同步

不同步解决办法

  • centos6 通知内核重新读取硬盘分区表

    新增分区后用
    partx -a /dev/DEVICE
    kpartx -a /dev/DEVICE -f: force

    删除分区后用 partx -d –nr M-N /dev/DEVICE

  • CentOS 5、7知内核重新读取硬盘分区表

    使用partprobe [/dev/DEVICE]

一旦新增和删除分区,一定要记得同步分区表

PS:LINUX小白 敬请指教

原创文章,作者:OscaoChaser,如若转载,请注明出处:http://www.178linux.com/85141

(0)
OscaoChaserOscaoChaser
上一篇 2017-08-20 19:49
下一篇 2017-08-20 21:28

相关推荐

  • Linux 系统终端

    Linux系统的主要终端主要包含:控制台终端、控制终端、串口终端、伪终端、虚拟终端。 控制台终端:在Linux 系统中,计算机显示器通常被称为控制台终端(Console)内核将信息送到控制台终端上(/dev/console), 通过与console相关联的虚拟终端将信息显示到屏幕上。再开机过程中屏幕输出的信息,这个屏幕就是Console; 控制终端:键盘,显…

    Linux干货 2016-10-19
  • 马哥教育网络班21期+第11周课程练习

    1、请描述一次完整的加密通讯过程,结合图示最佳。 Bob先利用单向加密算法提取当前数据的指纹(特征码),再用自己的私钥加密数据指纹并附加于数据尾部,然后利用对称加密将整个文件加密,之后用对方的公钥加密对称加密密钥附加于尾部。 Alice收到数据后,先用自己的私钥解密,得到对称加密密钥,之后用对称加密密钥解密,然后用Bob的公钥解密得到数据指纹,并且验证了Bo…

    Linux干货 2016-09-26
  • shell编程之循环及函数

    for 循环 for 变量名 in 列表;do    循环体 done   执行机制: 依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中 的元素耗尽,循环结束   列表生成方式: (1)直接给出列表 (2)整数列表: (a) {start..end} (b) $(seq [start [s…

    Linux干货 2016-08-24
  • 强大的文本处理工具:vim编辑器

    一:引言 系统管理员的重要工作就是修改与设置某些软件的重要配置文件,而vim作为vi编辑器的升级版本,不仅能够以不同颜色来显示文字内容,还能够进行诸如shell脚本、C等程序的编写,所以,它还是一个程序编辑器,接下来,就让我们一起来看看vim的有哪些好玩的用法和特征。 二:vim三种模式及其常见用法 虽然vim有非常庞大甚至说它复杂也不为过的功能体系,但用结…

    2017-08-05
  • 第7天:磁盘文件管理

    http://note.youdao.com/yws/public/redirect/share?id=57ab13d4749920de1fbb0d4953fcd21b&type=false

    Linux干货 2016-08-18
  • Linux设备驱动Hello World程序介绍

    by Valerie Henson07/05/2007 (译者注:本文的例子是只能在linux的2.6内核下使用的,2.6以上的内核,译者没有做过实验,2.4是要修改make文件才能运行。) 本文的出处:这里 自古以来,学习一门新编程语言的第一步就是写一个打印“hello world”的程序(可以看《hello world 集中营》这个帖子供罗列了300个“…

    Linux干货 2015-04-01