liunx中磁盘分区格式化

目录

一、简介

1)分区简介

2)磁盘的组成

3)磁盘分区表

二、为什么分区?

三、MBR和GPT的优缺点

1)MBR优缺点

2)GPT的优缺点

四、分区命令fdisk之MBR

五、MBR分区演练

1)磁盘主分区分区

第二步、识别磁盘

第三步、主分区分区

第三步:分扩展分区

2)格式化

3)挂载

4)永久挂载

5)卸载永久挂载磁盘(待测试)

六、分区命令之parted之GPT

七、参考网址


一、简介


1)分区简介

linux磁盘分区主要分为基本分区(primary partion)和扩充分区(extension partion)两种,基本分区和扩充分区的数目之和不能大于四个。且基本分区可以马上被使用但不能再分区。扩充分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区。在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘、光驱等 IDE 或 SCSI 设备也不例外。Linux把各种 IDE 设备分配了一个由 hd 前缀组成的文件;而对于各种 SCSI 设备,则分配了一个由 sd 前缀组成的文件

 

2)磁盘的组成

磁盘由盘片,机械手臂,磁头,主轴马达组成,而数据的写入主要是在盘片上面,盘片上又细分为扇区与柱面两种单位,扇区每个为512bytes那么大 [2]  ,其中,磁盘的第一个扇区特别重要,因为磁盘的第一个扇区记录了两个重要的信息:

  • 主引导分区(BMR):可以安装引导加载程序的地方,有446bytes。
  • 分区表:记录整块硬盘分区的状态,有66bytes。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5ODI2OTg3,size_16,color_FFFFFF,t_70

 

3)磁盘分区表

在分区表所在的64bytes容量中,总共分为四组记录区,每组记录区记录了该区段的起始与结束的柱面号码。

假设上面的硬盘设备文件名为/dev/hda时, 那么这四个分区在Linux系统中的设备文件名如下所示,重点在于文件名后面会再接一个数字,这个数字与该分区所在位置有关:

 

 

由于分区表只有64bytes而已,最多只能容纳四个分区,这四个分区被称为主或扩展分区 [3] 。根据上面的图示与说明,我们可以得到几个重要信息:

 

  • 磁道:上图中硬盘被一圈圈分成18等分的同心圆,这些同心圆就是磁道,但打开硬盘,用户不能看到这些,它实际上是被磁头磁化的同心圆.这些磁道是有间隔的,因为磁化单元太近会产生干扰。
  • 扇区:每个磁道中被分成若干等份的区域.扇区是硬盘数据存储的最小单位。
  • 柱面:假如一个硬盘只有上图中的3个磁盘片,每一片中的磁道数是相等的.从外圈开始,这些磁道被分成了0磁道、1磁道、2磁道...具有相同磁道编号的同心圆组成面就称作柱面.为了便于理解,柱面可以看作没有底的铁 桶.从上图可以看出,柱面数就是磁盘上的磁道数.柱面是硬盘分区的最小单位.因此,一个硬盘的容量=柱面*磁头*扇区*512。
  • 簇:扇区是硬盘数据存储的最小单位,但操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理.每个簇可以包括2、4、8、16、32、64个扇区。
  • P1:/dev/hda1
  • P2:/dev/hda2
  • P3:/dev/hda3
  • P4:/dev/hda4
  • 其实所谓分区,只是针对那个64bytes的分区表进行设置而已。
  • 硬盘默认的分区表仅能写入四组分区信息。
  • 这四组分区信息我们称为主或扩展分区
  • 分区的最小单位为柱面
  • 当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分区进行数据的处理。

二、为什么分区?


 

① 优化I/O 性能

② 实现磁盘空间配额限制

③ 提高修复速度

④ 隔离系统和程序

⑤ 安装多个OS

⑥ 采用不同文件系统


三、MBR和GPT的优缺点


 

【参考】https://blog.csdn.net/z_yttt/article/details/53020797

1)MBR优缺点

MBR全称为Master Boot Record

优点:

1、主引导记录,是传统的分区机制,应用于绝大多数使用BIOS的PC设备

2、MBR+BIOS

3、MBR支持32位和64位系统。

缺点:

1、MBR支持分区数量有限。

2、MBR(主引导记录),最大分区不能超过2T,4个主分区,3个主分区+1个扩展分区-逻辑分区。

2)GPT的优缺点

GPT全程GUID Partition Table

【参考】https://www.linuxidc.com/Linux/2013-06/85717.htm

优点:

1、全局唯一标识分区表,是一个较新的分区机制,解决了MBR很多缺点。

2、支持超过2T的磁盘(64位寻址空间)。fdisk最大只能建立2TB大小的分区,创建一个大于2TB的分区使用parted。

3、向后兼容MBR。

4、GPT(全局统一资源定位符),超过2T 使用该分区模式,最大支持128分区

缺点:

1、必须在支持UEFI的硬件上才能使用(Intel提出,用于取代BIOS)。

2、GPT+UEFI必须使用64位系统。

3、Mac、Linux系统都能支持GPT分区格式。

4、Windows 7/8 64bit、Windows Server 2008 64bit支持GPT。


四、分区命令fdisk之MBR


【分区】http://man.linuxde.net/fdisk

fdisk 是Linux下硬盘的分区工具,是一个非常实用的命令,但是fdisk只能划分小于2T的分区。
语法 : fdisk [-l ] [设备名称] 选项只有一个。
b 				编辑bsd disklabel;
c 				切换dos兼容性标志;
d 				删除一个分区;
g 				创建一个新的空GPT分区表;
G				创建一个IRIX(SGI)分区表;
l 				列出已知的分区类型;
m 				打印帮助菜单;
n 				添加一个新分区;
o 				创建一个新空DOS分区表;
p			 	打印分区表信息;
q 				退出而不保存更改;
s 				创建一个新的空的Sun磁盘标签;
t 				更改分区的系统ID;
u 				更改显示/输入单位;
v 				验证分区表;
w 				将分区表写入磁盘并退出;
x 				额外功能。

 


五、MBR分区演练


1)磁盘主分区分区

第一步:添加磁盘

实验环境:centos7.4 IP:192.168.80.120 新增磁盘:2T

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5ODI2OTg3,size_16,color_FFFFFF,t_70

 

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5ODI2OTg3,size_16,color_FFFFFF,t_70

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5ODI2OTg3,size_16,color_FFFFFF,t_70

第二步、识别磁盘

!!!重启虚拟机才能看见新增磁盘

 

#扫描 SCSI总线并添加 SCSI 设备
for host in $(ls /sys/class/scsi_host) ; do echo "- - -" > /sys/class/scsi_host/$host/scan; done
#重新扫描 SCSI 总线
for scsi_device in $(ls /sys/class/scsi_device/); do echo 1 > /sys/class/scsi_device/$scsi_device/device/rescan; done
#查看已添加的磁盘,能够看到sdb说明添加成功
lsblk

 

第三步、主分区分区

yum install util-linux-ng

[root@localhost ~]# fdisk /dev/sdb

 

命令(输入 m 获取帮助):m
重要命令
   d   delete a partition              		    #删除分区
   l   list known partition types       	    #显示已知的分区类型
   m   print this menu                 		    #显示帮助菜单
   n   add a new partition             		    #添加分区  
   p   print the partition table        	    #查看分区表
   q   quit without saving changes     		    #不保存退胡
   t   change a partition's system id  		    #该表分区的系统id
   w   write table to disk and exit    		    #保存分区并退出
命令(输入 m 获取帮助):
命令(输入 m 获取帮助)n                                #添加一个分区 
Partition type:
   p   primary (0 primary, 0 extended, 4 free)       #主分区
   e   extended                                      #扩展分区
Select (default p): 
Using default response p
分区号 (1-4,默认 1):                                 #1-4个主分区                   

#选择分区起点柱面 (默认为2G,如果选择2048就是2048到多少,如果选择其它数字,例如+200,然后分区区+200G,意思就是200G-400G分一个区
起始 扇区 (2048-104857599,默认为 2048): #默认开始最合适
将使用默认值 2048

#!!!#设置分区大小20G,+表示往起点后添加,-表示往起点前添加分区
Last 扇区, +扇区 or +size{K,M,G} (2048-104857599,默认为 104857599):+20G 
分区 1 已设置为 Linux 类型,大小设为 20 GiB

#修改磁盘格式
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):L
。。。
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       
。。。
Hex 代码(输入 L 列出所有代码):8e              
已将分区“Linux”的类型更改为“Linux LVM”

#查看
命令(输入 m 获取帮助):p
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41945087    20971520   8e  Linux LVM

#保存退出
命令(输入 m 获取帮助):w

第三步:分扩展分区

1、分200G扩展分区

 

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5ODI2OTg3,size_16,color_FFFFFF,t_70

2、输入l开始逻辑分区

20201201135100945.png

 

分区完毕w保存

 

2)格式化

mkfs
fs					#指定建立文件系统时的参数;
-t<文件系统类型>		#指定要建立何种文件系统;
-v					#显示版本信息与详细的使用方法;
-V					#显示简要的使用方法;
-c					#在制做档案系统前,检查该partition是否有坏轨。
#查看分区的磁盘
[root@localhost ~]# lsblk |grep sdb
sdb               8:16   0   50G  0 disk 
└─sdb1            8:17   0   20G  0 part 
#格式化
[root@localhost ~]#  mkfs -t ext3 /dev/sdb1

3)挂载

#创建挂载目录
[root@localhost ~]# mkdir -p /jia-test/
#挂载
[root@localhost ~]# mount /dev/sdb1 /jia-test/
[root@localhost ~]# lsblk |grep sdb1
└─sdb1            8:17   0   20G  0 part /jia-test

 

4)永久挂载

[root@localhost ~]# umount  --help
用法:
 umount [-hV]
 umount -a [选项]
 umount [选项] <源> | <目录>

选项:
 -a, --all               卸载所有文件系统
 -A, --all-targets       卸载当前名字空间内指定设备
                         对应的所有挂臷点
 -c, --no-canonicalize   不对路径规范化
 -d, --detach-loop       若挂臷了回环设备,也释放该回环设备
     --fake              空运行;跳过 umount(2) 系统调用
 -f, --force             强制卸载(遇到不响应的 NFS 系统时)
 -i, --internal-only     不调用 umount.<类型> 辅助程序
 -n, --no-mtab           不写 /etc/mtab
 -l, --lazy              立即断开文件系统,所有清理以后执行
 -O, --test-opts <列表>  限制文件系统集合(和 -a 选项一起使用)
 -R, --recursive         递归卸载目录及其子对象
 -r, --read-only         若卸载失败,尝试以只读方式重新挂臷
 -t, --types <列表>      限制文件系统集合
 -v, --verbose           打印当前进行的操作
 -h, --help              显示此帮助并退出
 -V, --version           输出版本信息并退出

 

#永久挂载
# vim  /etc/fstab      设置系统自动挂载硬盘,加入一行:
cat >>/etc/fstab<<EOF
/dev/sdb1               /jia-test         ext3    defaults      0 0
#设备(UUID或路径指定)  挂载点  文件系统类型   defaults  转储标志  fsck顺序  
EOF

cat >>/etc/fstab<<EOF
UUID="d17e3928-e858-4b3b-8716-22c2d08b8f13"   /jia-test         ext3    defaults   0 0
EOF

【挂载参数详解】

  • 第一列可以是实际分区名,也可以是实际UUID。
  • 第二列为挂载目录
  • 第三列为此分区的文件系统类型

#Linux可以使用ext2、ext3等类型,此字段须与分区格式化时使用的类型相同。也可以使用 auto 这一特殊的语法,使系统自动侦测目标分区的分区类型。auto通常用于可移动设备的挂载

  • 第四列是挂载的选项,用于设置挂载的参数。

 

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5ODI2OTg3,size_16,color_FFFFFF,t_70

  • 第五列是dump备份设置

#当其值设置为1时,将允许dump备份程序备份;设置为0时,忽略备份操作;

  • 第六列是fsck磁盘检查设置。

#其值是一个顺序。当其值为0时,永远不检查;而 / 根目录分区永远都为1。其它分区从2开始,数字越小越先检查,如果两个分区的数字相同,则同时检查。

#第一个字段最好用UUID,因为路径中块设备标识符可能会发生变化。
sudo blkid 路径

#查看最新挂载磁盘UUID
[root@localhost ~]# sudo blkid /dev/sdb1 
/dev/sdb1: UUID="d17e3928-e858-4b3b-8716-22c2d08b8f13" TYPE="ext3" 

UUID查看方法如下:

  • 第二个字段要先手动创建挂载点目录,不会自动创建。
  • 第三个字段为文件系统类型,由之前的mkfs确定。
  • 第四个字段为挂载时应该应用于设备以便自定义行为的选项列表。defaults为常用选项,其他记录在mount man page中。
  • 第五个为转储标志,与dump命令结合生成备份。
  • 第六个为fsck顺序字段,确定了文件系统未完全卸载时是否启动时运行fsck以及检查多个磁盘时检查的顺序。

 

#不开机使得配置生效
mount -a
  • 此命令会挂载/etc/fstab中新文件系统,如该文件存在错误,会无法启动计算机
  • 所以重启前必须输入此命令,如果报错应在重启前改正错误。

 

#重启
[root@localhost ~]# reboot  
#查看
[root@localhost ~]# lsblk |grep sdb 
sdb               8:16   0   50G  0 disk 
└─sdb1            8:17   0   20G  0 part /jia-test

#闲着没事,检测一下硬盘坏道吧
badblocks -v /dev/sdb1 > result.txt 

5)卸载永久挂载磁盘(待测试)

  • umount 存储设备位置
  • umount 挂载点 目录

 

#先通过umount命令卸载掉挂载目录
[root@localhost ~]# umount  -l /jia-test/
#修改/etc/fstab里面逻辑卷的挂载信息,否则系统有可能启动不起来
vim /etc/fstab 
将永久挂载干掉,防止不能开机启动。
#UUID="d17e3928-e858-4b3b-8716-22c2d08b8f13"   /jia-test         ext3    defaults   0 0
#生效
[root@localhost ~]#mount -a
#清楚磁盘数据
[root@localhost ~]# dd if=/dev/sdb1  of=devdir bs=512 count=1
#删除分区,保存退出
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x16f4960f

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41945087    20971520   8e  Linux LVM

命令(输入 m 获取帮助):d    
已选择分区 1
分区 1 已删除

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x16f4960f

   设备 Boot      Start         End      Blocks   Id  System

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

#查看是否删除成功
[root@localhost ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   50G  0 disk 
├─sda1            8:1    0  474M  0 part /boot
└─sda2            8:2    0 49.5G  0 part 
  ├─centos-root 253:0    0   40G  0 lvm  /
  ├─centos-swap 253:1    0  512M  0 lvm  [SWAP]
  └─centos-data 253:2    0    9G  0 lvm  /data
sdb               8:16   0   50G  0 disk            #磁盘并为分区
sr0              11:0    1  4.2G  0 rom  

 

六、分区命令之parted之GPT


parted用法和常用选项:
用法:parted [选项]... [设备 [命令 [参数]...]...] 
将带有“参数”的命令应用于“设备”。如果没有给出“命令”,则以交互模式运行.  
-h 						--help显示此求助信息 
-l 						--list列出所有设别的分区信息
-i						--interactive在必要时,提示用户 
-s 						--script从不提示用户 
-v						--version显示版本

GPT(全局统一资源定位符),超过2T 使用该分区模式,最大支持128分区
help:
检查 MINOR                                      		#对文件系统进行一个简单的检查 
cp [FROM-DEVICE] FROM-MINOR TO-MINOR                    #将文件系统复制到另一个分区 
help [COMMAND]                                  		#打印通用求助信息,或关于 COMMAND 的信息 
mklabel 标签类型                                			#创建新的磁盘标签 (分区表) 
mkfs MINOR 文件系统类型                       			#在 MINOR 创建类型为“文件系统类型”的文件系统 
mkpart 分区类型 [文件系统类型] 起始点 终止点    		    #创建一个分区 
mkpartfs 分区类型 文件系统类型 起始点 终止点   		    #创建一个带有文件系统的分区 
move MINOR 起始点 终止点                       			#移动编号为 MINOR 的分区 
name MINOR 名称                                 		#将编号为 MINOR 的分区命名为“名称” 
print [MINOR]                                   		#打印分区表,或者分区 
quit                                            		#退出程序 
rescue 起始点 终止点                            			#挽救临近“起始点”、“终止点”的遗失的分区 
resize MINOR 起始点 终止点                      			#改变位于编号为 MINOR 的分区中文件系统的大小 
rm MINOR                                       			#删除编号为 MINOR 的分区 
select 设备                                     		#选择要编辑的设备 
set MINOR 标志 状态                             			#改变编号为 MINOR 的分区的标志

七、参考网址

 


【MBR参考】

https://blog.csdn.net/u010000716/article/details/50043757?utm_source=blogxgwz8

https://blog.csdn.net/zhuyingqingfen/article/details/8126282?utm_source=blogxgwz0

http://www.cnblogs.com/brianyi/p/7937633.html

https://www.linuxidc.com/Linux/2015-11/125397.htm

https://www.linuxidc.com/Linux/2015-11/125398.htm

https://blog.csdn.net/pi9nc/article/details/21740319?utm_source=blogxgwz1

https://blog.csdn.net/ggxiaobai/article/details/59114740

https://blog.csdn.net/xyang81/article/details/51745683

https://www.cnblogs.com/vathe/p/6748131.html

https://www.linuxidc.com/Linux/2013-06/85717.htm

【重点参考】https://www.cnblogs.com/jackadam/p/8213712.html#_label0_6

【GPT参考】http://man.linuxde.net/parted

https://www.cnblogs.com/onlybobby/p/7018788.html

https://www.jianshu.com/p/8b13f4459a83


此文章是学习笔记,发布时复制粘贴,读者如果发现问题请留言,我会及时更正。

 

 


 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟雨话浮生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值