磁盘分区重点知识

Posted axzq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了磁盘分区重点知识相关的知识,希望对你有一定的参考价值。

磁盘分区的重点:

1)给磁盘分区的实质就是针对上述0磁头0磁道1扇区的前446字节后面接下来的64bytes的分区表进行设置,即主要是划分起始以及结束磁头号、扇区号及柱面号

2)给磁盘分区的工具有fdisk(适合给小于2T的磁盘分区),parted(擅长给大于2T的磁盘分区,可以对小于2T的磁盘分区),首选fdisk,只有大于2T时才去选parted

补:(一台服务器6块600G的磁盘,raid5后,总大小3T,此时无法装系统的,解决办法是做raid5后,不要重启装系统,而是再raid界面,继续分1个小的虚拟磁盘vd  200G,用这个200G的虚拟磁盘装系统,装完系统后再把剩余的2.8T分区通过parted)

3)一块磁盘的分区表仅有64个bytes大小,每个分区表要占用16个字节,因此一块磁盘仅支持四个分区表信息,即主分区+扩展分区的总量不超过4个

4)磁盘分区是按照柱面(cylinder)来划分的(从磁盘读写原理角度可以理解)

5)扩展分区不能直接使用的,还需要在扩展分区的基础上创建逻辑分区才行

6)扩展分区有自己的分区表,因此,扩展分区下面的逻辑分区可以有多个

磁盘在使用前一般需要进行分区,当然如果不分区直接格式化使用也是没问题的,但这不是常见情况。磁盘分区有主分区、扩展分区和逻辑分区之分。一块磁盘最多可以有4个分区表信息(磁盘本身限制),在这个扩展分区内可以划分多个逻辑分区(IDE磁盘逻辑分区大概编号可以是5-63;SATA编号5-15)

 

磁盘分区实战fdisk命令

dd     convert  and  copy  a  file

1、fdisk  磁盘分区工具(<2T),-l 列表

2、linux下最常用的分区工具,一般是装完系统后进行分区。装系统之前的分区,多数都是系统ISO里面的工具分,或者raid里分小磁盘

3、fdisk只能root权限用户使用

4、fdisk适合于对装系统后的剩余空间进行分区,例如:安装系统时没有全部分区,或者安装系统后添加硬盘

问题:不能对大于2T的文件系统分区

fdisk分区的实质

用fdisk分区的实质,就是修改0磁头0磁道1扇区的前446字节之后的64字节的分区表信息

可以使用fdisk分区的磁盘大小必须小于2T,如果大于2T呢,分区就用parted(gpt)

5、fdisk  [ -l ]  [ 设备名称 ]

参数 -l:输出后面设备的所有分区的内容,若后面不接设备名称则会列出系统能够找到的所有分区的均列出

 

传统的MBR(Master  Boot  Record)分区方式,有一个局限:

无法支持超过2TB的硬盘的分区(或单个分区超过2TB)

如果大于2T就用GPT分区的概念

GPT的分区表很好解决了传统MBR无法逾越2TB的限制

但是在linux系统中,传统的fdisk命令无法支持gpt分区方式

 

parted分区

parted的操作都是实时的,也就是说你执行了一个分区的命令,他就实实在在地分区了,而不是像fdisk那样,需要执行w命令写入所做的修改,所以进行parted的测试千万注意不能在生产环境中

简述:parted是一个磁盘分区管理工具,它比fdisk更加灵活,功能也更丰富,同时还支持GUID分区表

实验100M盘

非交互式

parted  /dev/sdb  mklabel  gpt  Yes

parted  /dev/sdb  mkpart  primary  0  10  Ignore

parted  /dev/sdb  mkpart  primary  linux-swap  11  21  Ignore

parted  /dev/sdb  mkpart  logical  ext4  22  32  Ignore

parted  /dev/sdb  p  (快速分区)

了解

fdisk非交互式分区:

方法1:

parted  /dev/sdb  mklabel  bsd  yes          #将硬盘分区表由gpt格式转换为bsd格式(即MBR)

vi  fdisk.txt                                                #编辑分区文件

fdisk  /dev/sdb  <fdisk.txt                         #执行分区

ll  /dev/sdb*                                             #检查分区是否成功

mkfs.ext4  /dev/sdb1                               #格式化分区

mount  /dev/sdb1  /mnt                           #挂载分区

df  -h  |grep  /dev/sdb1

fdisk.txt文件内容:

n     #新建一个分区

p     #primary分区

1     #分区编号

       #起始扇区(可以不写)

+100M     #结束扇区(可以直接写大小)

p     #打印分区表

w     #保存修改并退出

 

方法2:echo  -e  "n p +10M n p 2 +10M w"  |  fdisk  /dev/sdb

 

swap分区知识

1、使用物理分区构建swap

fdisk  /dev/sdb              #分成一个区/dev/sdb1

mkswap  /dev/sdb1

free

swapon  /dev/sdb1

free

2、使用文件构建swap

dd  if=/dev/zero  of=/tmp/swap  bs=1M  count=128

ls  -l  -h  /tmp/swap

mkswap  /tmp/swap

free

swapon  -s

swapoff  /tmp/swap

swapoff  /dev/sdb1

 企业案例场景:

swap在工作中,特别是java环境,程序写的有问题,会发生内存泄漏,可能会被占用。

让开发改程序,临时运维加大swap。swapoff,swapon

 

       

以上是关于磁盘分区重点知识的主要内容,如果未能解决你的问题,请参考以下文章

Linux MBR分区(重点知识)

磁盘分区知识总结

Linux基础篇——Linux磁盘操作(磁盘基础知识分类分区挂载卸载扩容)详解

linux基础夯实之磁盘分区原理知识

磁盘管理方向知识宝典

Linux磁盘管理的基本知识简单整理