Linux磁盘管理基础——分区(MBR分区格式)

廉价感情. 提交于 2020-02-19 17:48:29

实验环境:CentOS 7.x (并假设是可以正常使用)
了解一下:
SAS硬盘:企业级硬盘,服务器专用。
SATA硬盘:普通笔记本上装的那种。
SCSI硬盘与IDE硬盘:现在不怎么常见,快变成古董了。

两个重要概念
  1. 拿到一块硬盘存储设备后要做的:添加设备、分区、格式化(创建文件系统)、创建挂载点、修改配置文件。
  2. Linux系统中一切都是文件,硬件设备也是。
MBR分区格式
  • MBR(Master Boot Record)格式——主引导记录

主引导记录(MBR)位于硬盘的0号柱面(Cylinder)、0号磁头(Side)、1号扇区(Sector)。了解柱面、磁头、扇区。其中,1扇区称为主引导扇区(也叫主引导记录MBR),占 512 字节(bytes)。它由三个部分组成:

主引导程序(boot loader,即主引导记录,占 446 bytes);
硬盘分区表DPT(Disk Partition Table,占 64 bytes);
结束标志(占 2 bytes,固定值为 十六进制 55AA )。

注意:

  1. 硬盘的第一个扇区最重要,它里面保存用来记录硬盘里面有多少个分区以及每一分区的大小。
  2. 硬盘分区表是用来说明磁盘上的分区情况,一共占 64 字节,即 16*4 ,所以最多只有4 个分区信息可以写到第一个扇区中,所以就称这4个分区为4个主分区 ( primary partion ),每个分区占16 bytes。分区表损坏就无法读取硬盘内的数据。
  3. 有时候第1扇区里的分区会不够使用,所以会将第1个扇区的其中1个分区作为扩展分区 ( extension partion )。扩展分区相当于一个指针(即只记录分区大小位置信息),用来指向某个有记录信息的分区,所以是不能直接存储数据的。由于操作系统的限制,扩展分区最多只有一个。
  4. 然后,可以在扩展分区里创建多个逻辑分区 ( logical partion ),这时才可以存储数据。所以一般分区都是3 个主分区加 1 个扩展分区,然后在扩展分区中创建出多个逻辑分区
  5. 结束标志,若修改 55AA 则会出现问题,比如系统不能启动等问题。

缺点:

因为基于MBR方式的主引导记录只占 446 bytes且每组分区只占 16 bytes,可以记录的信息是有限的,所以会出现主引导程序放不下更多的程序代码、操作系统2.2T以上的磁盘容量以及分区被破坏后无法恢复等问题。于是,就有了GPT分区格式,这里不详细讲这个格式。

分区步骤

虚拟机添加硬盘注意点:

  1. 关机;
  2. 不选立即分配所有磁盘空间。

MBR分区表使用 fdisk 命令进行分区。

fdisk -l ,该命令查看硬盘信息和所有分区表( partition table )。可以与命令lsblk -ip 结合查看更多硬盘详细信息。

Alt
解释说明:

  1. 开头是Disk的说明是正在使用的硬盘。
  2. Linux系统中一切都是文件。 /dev 这个目录是用来以文件形式存放任何设备与接口的文件的目录。
  3. /dev 目录中sda设备之所以是a,由系统内核的识别顺序来决定的。
/dev/hd[a-d]	//hd表示硬盘是IDE类型,且分区从a开始命名。
/dev/sd[a-p]	//同理,SCSI/SATA/U盘类型,分区从a开始,到p。
  1. 图中圈起来的 * 号表示 sda2是引导分区,电脑是否正常开机就看它。
  2. 硬盘分区编号(图中的sd后面的数字)规则:主分区或扩展分区的编号是1~4,还有,举个例子,存在编号为4的主分区并不代表已经有4分区了;逻辑分区必须从编号5开始(不管有没有2、3、4)。
  3. Start和End的值表示这个分区从第几磁柱 (Cylinder) 开始和第几磁柱结束。
  4. ID和system表示的是一个意思。就拿图里的来说,ID是83的话,system是Linux。ID类似于代号。
  5. 判断硬盘是否完全划分——上一个分区的End 和 下一个分区的Start是不是一个连续的数字。
fdisk -l 设备名称	
//查看某一个硬盘。例,查看名为sda的硬盘:fdisk -l /dev/sda1

Step 2:

fdisk 设备名,回车,就进入可以进行分区的模式。输入m就有命令菜单。里面有详尽的相关参数。

Alt
常用的参数有以下几个:

	d	//delete 删除一个分区
	m	//menu 打印帮助信息
	n	//new 创建一个新的分区
	p	//print 打印分区信息,与fdisk -l命令相似
	q	//quit 退出不保存
	w	//write 保存并退出
	t	//改变逻辑分区类型

Step 3:

输入 n 创建分区。

Alt
注意:

  1. 上面演示的是创建扩展分区。
  2. 因为硬盘里已经有三个主分区了(Step 1 中查看过),所以partition type 那里只有primary 和 extended,让你选是创建主分区还是逻辑分区,不会出现扩展分区。

如果主分区只有1个或两个,扩展分区已经有一个了,他就会出现:

Alt
如果你还想再多创建一个扩展分区,当你输入e时,会提示:

Alt
这应该就是所谓的操作系统的限制——扩展分区最多只有一个。

如果已经有4个主分区,然后如果想再创建,那就会提示如果想创建更多,需要把一个主分区变为扩展分区:

Alt
如果本来已经是三个主分区、一个扩展分区的模式的话,就会自动新建成逻辑分区。

Alt
另外,扩展分区删除了,逻辑分区也会被删除!

Step 4:

最后可以输入w保存并退出或输入q不保存然后退出。

关于参数 t

Alt
是不是有点眼熟?就是上面所讲的 Id 和 System。

Alt
其他:

  • 为什么要分区?一是可以确保数据安全,当一个分区由于某种原因遭到破坏时,不会影响别的分区。二是可以提高数据的读取速度,因为数据集中在某个磁柱范围。
  • 有时候系统并没有自动把分区信息同步给Linux内核,这时可以输入partprobe -s将分区信息同步到内核,最好连续两次执行该命令。

参考资料
[1] https://www.linuxprobe.com/chapter-06.html
[2] a1809032425. https://blog.csdn.net/a1809032425/article/details/79692035
[3] 项思凯. https://www.cnblogs.com/xiangsikai/p/10683209.html
[4] 木偶人妮好. www.bilibili.com:av21816136

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!