打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
linux系统之磁盘分区

一.RedHat系统磁盘分区基本要求及分区方案


Linux系统分区的基本要求:

1、至少要有一个根(/)分区,用来存放系统文件及程序。其大小至少在5GB以上。

2、要有一个swap(交换)分区,它的作用相当于Windows里的虚拟内存,swap分区的大小一般为物理内存容量的1.5倍(内存<8G)。但当系统物理内存大于8GB时,swap分区配置8-16GB即可,太大无用,浪费磁盘空间。swap分区不是必须的,但是大多数情况还是设置比较好,个别企业的数据库应用场景不分swap。

3、/boot分区,这是Linux系统的引导分区,用于存放系统引导文件,如Linux内核等。所有文件的总大小一般只有几十MB,并且以后也不会增大太多。因此,该分区可以设置位100~200MB,这个分区也不是必须的。

企业生产场景中Linux系统的分区方案:

方案1:网站集群架构中的某个节点服务器,即数据有多份或者数据不重要的服务器,建议的分区方案如下:

/boot:设置位100~200MB。

/swap:物理内存的1.5倍,当内存大于等于8GB时,给8-16GB即可

/:剩余硬盘空间大小(/usr,/home,/var等分区和/共用一份分区,这相当于在Windows系统中的C盘一样,所有数据和系统文件都放在了一起)

方案2:数据库及存储角色的服务器,即有大量重要数据的业务,建议分区方案如下:

/boot:设置为100~200MB。

/:大小设置为50~200GB,只存放系统相关文件,网站业务数据不放在这里。

/data:剩余硬盘空间大小,放数据库及存储重要数据的,data的名称也可以起别的名字。

提示:本方案其实就是把重要数据单独分区,便于备份和管理

方案3:大网站或门户级别企业的分区思路

/boot:设置为100MB

swap:物理内存的1.5倍,当内存大于等于8GB时,给8-16GB即可

/:大小设置为50~200GB,只存放系统相关文件,网站业务数据不放在这里。

剩余空间保留,不再进行分区,将来分配给部门,由他们自己根据需求再分~

提示:此种分区方案更灵活,比较适合业务线比较多需求不确定的大企业使用


二.主机规划 磁盘分区 MBR

磁盘连接的方式与设备文件名的关系
主流的磁盘接口为SATA接口。
SATA/USB/SCSI等磁盘接口都是使用SCSI模块来驱动的,因此这些接口的磁盘设备文件名都是/dev/sd[a-p]的格式。顺序需要根据Linux内核检测到磁盘的顺序来决定。

比如PC上面有两个SATA磁盘以及一个USB磁盘,而主板上面有6个SATA的插槽。这两个SATA磁盘分别安插在转的SATA1 SATA5接口上,请问这三个磁盘在Linux中的设备文件名是什么?
1.SATA1插槽上的文件名 /dev/sda
2.SATA2插槽上的文件名 /dev/sdb
3.USB磁盘(开机完成后才被系统识别) /dev/sdc

磁盘的组成复习
磁盘数据的写入实际上是在盘片上面。盘片上面又可以细分出扇区(Sector)与柱面(Cylinder)两种单位,其中扇区每个为512bytes那么大。

每块磁盘的第一个扇区特别重要,因为它记录了整块磁盘的两个重要信息:
①主引导分区(Master Boot Record MBR):可以安装引导加载程序的地方,有446 bytes
②分区表(partition table):记录整块硬盘分区的状态,有64bytes

MBR是很重要的,因为系统在开机的时候会主动去读取这个区块的内容,这样系统才会知道你的程序放在哪里且该如何进行开机。如果你要安装多重引导的系统 MBR这个区块的管理就非常重要了。
分区表记录磁盘的分区情况,在下面介绍。

磁盘分区表(partition table)
柱面是文件系统的最小单位,也就是分区的最小单位。我们就是利用参考柱面号码的方式来处理,在分区表所在的64bytes容量中,总共分为四组记录区,每组记录区记录了该区段的起始与结束的柱面号码。

假设上面的硬盘设备文件名是是/dev/hda时,那么这四个分区在Linux系统中的设备文件名如下所示:
P1:/dev/hda1
P2:/dev/hda2
P3:/dev/hda3
P4:/dev/hda4

由于分区表的容量限制,最多只能容纳四个分区。这四个分区被称为主(Primary)或者扩展(Extended)分区。
请注意以下信息:
①其实所谓的”分区”只是针对那个64bytes的分区表进行设置而已。
②硬盘默认的分区表仅能写入四组分区信息。
③这四组分区信息我们称为主(Primary)和扩展(Extended)分区。
④分区的最小单位为柱面(cylinder)。

当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分区进行数据的处理。

为什么”分区”?
原因①:数据的安全性
原因②:系统的性能考虑

虽然分区表只能记录四个分区,但是不代表我们最多只能分区四个。既然第一个扇区所在的分区表只能记录四个数据,那可以利用额外的扇区来记录更多的分区信息。
扩展分区的目的是使用额外的扇区来记录分区信息,扩展分区本身并不能被拿来格式化。但是我们可以通过扩展分区所指向的那个区块继续做分区记录。

由扩展分区继续切出来的分区称为逻辑分区(logical partition)。由于逻辑分区是由扩展分区继续分区出来的,所以它可以使用的柱面范围就是扩展分区所设定的范围。
需要注意的时,不管分区表的4个记录用不用完,文件中1-4始终都是保留着呢。即使只用了一个主分区,扩展分区也是从5开始。

请注意以下信息:
①主分区与扩展分区最多可以有四个(硬盘的限制)。
②扩展分区最多只能有一个(操作系统的限制)。
③逻辑分区是由扩展分区持续切割出来的分区。
④能够被格式化后作为数据访问的分区为主分区和逻辑分区。扩展分区无法格式化。
⑤逻辑分区的数量依操作系统不同而不同。在Linux系统中,SATA硬盘最多有11个逻辑分区(5号到15号)

注意: 如果扩展分区被破坏,所有逻辑分区都将会被删除。因为逻辑分区的信息都记录在扩展分区里面。

所以,如果一个硬盘的第一个扇区(就是MBR与partition table所在的扇区)物理坏掉了,那这个硬盘大概就没有用了。

举个例子

假设PC上有两块硬盘,在第二块硬盘(sdb)分出6个可用的分区,那么每个分区在Linux系统下的设备文件名如何?

分法一: P+P+P+E的环境 (第四个做成扩展分区,扩展分区再分出3个逻辑分区)
可用的分区有:/dev/sdb(1,2,3,5,6,7)

分法二: P+E的环境
可用的分区有:/dev/sdb(1,5,6,7,8,9)

开机流程与主引导分区(MBR)
开机流程
CMOS:记录各个硬件参数并且切入在主板上面的储存器
BIOS:一个写入到主板上的韧体。

BIOS是开机的时候计算机会主动执行的第一个程序。
接着BIOS会分析计算机里面有哪些储存设备,并且到硬盘里面去读取第一个扇区的MBR位置。 MBR这个仅有446bytes的硬盘容量里面会放置最基本的引导加载程序。 接着MBR 识别硬盘内的文件系统格式,引导加载内核文件 ,进入操作系统。

简单说开机步骤:
①BIOS:开机主动执行的韧体,会认识第一个可开机的设备。
②MBR:第一个可开机设备的第一个扇区内的主引导分区块,内包含引导加载程序。
③引导加载程序(Boot loader):一支可读取内核文件来执行的软件。
④内核文件:开始操作系统的功能。

主引导分区(MBR)
Boot loader是操作系统安装在MBR上面的一套软件,这个程序小而完美。这个boot loader的主要任务有下面这些项目:
①提供菜单:用户可以选择不同的开机选项,这也是多重引导的重要功能。
②载入内核文件 :直接指向可开机的程序区段来开始操作系统。
③转交其他loader:将引导加载功能转交给其他loader负责。(多系统)

引导加载程序除了可以安装在MBR之外,还可以安装在每个分区的引导扇区(boot sector)

请注意一下信息:
①每个分区都拥有自己的启动扇区(boot sector)
②实际可开机的内核文件是放置到各分区内的
③loader只会认识自己的系统分区内的可开机内核文件,以及其他loader而已
④loader可以直接指向或是间接将管理权转交给另一个管理程序。

windows安装程序会主动覆盖掉MBR以及自己所在分区的启动扇区 ,所以如果双系统,最好先安装windows再安装linux。
(否则也可以用Linux的救援模式来挽救MBR)

Linux安装模式下,磁盘分区的选择(极重要)
目录树结构
整个Linux最重要的地方就是在与 目录树 结构。所谓的目录树结构是指 以根目录(/)为主, 然后向下呈现分支状的目录结构的一种文件结构。 所有的文件都与目录树有关。

如何结合目录树的架构和磁盘内的数据,就要牵扯到”挂载”了。

文件系统与目录树的关系
利用一个目录当成进入点, 将磁盘分区的数据放置在该目录下。也就是说,进入该目录就可以读取该分区的意思。
这个操作称为 挂载 ,那个进入点的目录称为 挂载点 。

根目录一定需要挂载到某个分区

举个例子

partition1挂载到根目录,partition2挂载到/home目录。也就是说,我的数据放在/home内的各次目录时,数据是放在partition2的。如果不是放在/home下面的目录,那么数据就会被放置到partition1。

安装distributions时,挂载点与磁盘分区的规划
安装Linux时选择自定义安装(专家安装)。

自定义安装”Custom”
初次接触linux:只要分区”/”和”swap”即可
建议分区的方法:预留一个备用的剩余磁盘容量。

选择Linux安装程序提供的默认硬盘分区方式
安装Linux尽量不要选择默认的Server安装选项。

三.具体操作

1.mbr,mpt,一个主分区使用多少大分区表记录,分区类型

2.分区方式

[root@diskctrl ~]# fdisk  /dev/vdb        ##划分/dev/vdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): m            ##获取帮助
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel            ##设定设备标签
   c   toggle the dos compatibility flag
   d   delete a partition            ##删除设备
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types        ##列出设备类型
   m   print this menu
   n   add a new partition            ##新建
   o   create a new empty DOS partition table
   p   print the partition table        ##显示分区表
   q   quit without saving changes        ##退出分区工具
   s   create a new empty Sun disklabel
   t   change a partition's system id        ##改变分区功能标签
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit        ##保存更改的分区表
   x   extra functionality (experts only)

Command (m for help):n
Partition type:p            ##指定划分设备的分区类型
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Partition number (1-4, default 1):1    ##指定使用的分区表号
First sector (2048-20971519, default 2048):enter    ##分区起始快,选择默认
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +1G ##设备大小指定
Command (m for help): p            ##显示分区表

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 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: 0x7c2200a8

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048     2099199     1048576   83  Linux        ##被划分出来的分区

Command (m for help):  wq                        ##保存更改方式并退出


[root@diskctrl ~]# partprobe             ##同步分区表
[root@diskctrl ~]# cat /proc/partitions     ##查看系统能识别的分区
major minor  #blocks  name

 253        0   10485760 vda
 253        1   10484142 vda1
 253       16   10485760 vdb
 253       17    1048576 vdb1

3.如何使用新建立的分区
格式化
挂载
vim /etc/fstab 实现永久挂载


4.设备删除
卸载
删除 /etc/fstab中设备的自动挂载条目
用fdisk删除分区

5.swap分区的管理
swapon -s        ##查看系统中的swap分区
建立swap分区
mkswap    /dev/vdb1    ###把/dev/vdb1格式化成swap格式
swapon -a /dev/vdb1    ##激活
vim /etc/fstab        ##开机自动激活
/dev/vdb1    swap    swap    defautls    0 0


删除/etc/fstab中的swap自动激活条目
swapoff /dev/vdb1    ##关闭激活的swap分区


6.分区加密
cryptsetup    luksFormat /dev/vdb1
WARNING!
========
This will overwrite data on /dev/vdb1 irrevocably.

Are you sure? (Type uppercase yes): YES            ##确定加密
Enter passphrase:                     ##密码大于8位,并且不能太简单
Verify passphrase:                    ##确认密码

[root@diskctrl ~]# cryptsetup open /dev/vdb1  westos    ##解密
Enter passphrase for /dev/vdb1:

[root@diskctrl ~]# mkfs.xfs  /dev/mapper/westos        ##用管理文件格式化设备
[root@diskctrl ~]# mount /dev/mapper/westos  /mnt/    ##使用设备
[root@diskctrl mnt]# cryptsetup close westos        ##关闭设备加密层

    
7.自动挂载加密设备
[root@diskctrl ~]# vim /etc/crypttab             ##设定开机解密
解密后名称    设备    密码文件
[root@diskctrl ~]# vim /etc/fstab            ##开机自动挂载加密设备
/dev/mapper/westos    /mnt    xfs defaults    0 0
[root@diskctrl ~]# vim /root/passwd            ##系统自动读取密码记录文件
解密密码
[root@diskctrl ~]# cryptsetup luksAddKey /dev/vdb1  /root/passwd     ##把密码记录文件与设备关联
Enter any passphrase:                    ##设备解密密码



8.raid 磁盘阵列
建立3个分区,并设定3个分区的功能标签位raid
mdadm  -C /dev/md0 -a yes -l 1 -n 2  -x 1  /dev/vdb{1..3}

    -C    ##建立
    -a    ##文件不存在建立文件
    -l    ##raid级别
    -n    ##设备个数
    -x    ##闲置设备个数
    
cat /proc/mdstat    ##设备信息
mdadm -D /dev/md0    ##设备配置信息
mdadm /dev/md0    -f /dev/vdb1    ##损坏设备1
mdadm /dev/md0 -r /dev/vdb1     ##移除设备1
mdadm /dev/md0 -a /dev/vdb1    ##恢复设备1
mdadm -S /dev/md0        ##停止设备


四.主分区 扩展分区 逻辑分区 活动分区

主分区:也叫引导分区,最多可能创建4个,当创建四个主分区时候,就无法再创建扩展分区了,当然也就没有逻辑分区了。主分区是独立的,对应磁盘上的第一个分区,“一般”就是C盘。在Windows系统把所有的主分区和逻辑分区都叫做“盘”或者“驱动器”,并且把所有的可存储介质都显示为操作系统的“盘”。因此,从“盘”的概念上无法区分主分区和逻辑分区。并且盘符可以在操作系统中修改,这就是要加上“一般”二字的原因。

扩展分区:除了主分区外,剩余的磁盘空间就是扩展分区了,扩展分区是一个概念,实际上是看不到的。当整个硬盘分为一个主分区的时候,就没有了扩展分区。

逻辑分区:在扩展分区上面,可以创建多个逻辑分区。逻辑分区相当于一块存储截止,和操作系统还有别的逻辑分区、主分区没有什么关系,是“独立的”。

活动分区:就是当前活动的、操作系统可以启动的分区。


五.gpt分区表

MBR全称为Master Boot Record

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

   MBR+BIOS

MBR支持32位和64位系统。

  MBR支持分区数量有限。

MBR只支持不超过2T的硬盘,超过2T的硬盘将只能用2T空间(有第三方解决方法)。

GPT(GUID Partition Table)

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

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

  向后兼容MBR。

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

GPT+UEFI

  必须使用64位系统。

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

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

以上就是Linux系统MBR和GPT分区的区别,总得来说GPT比MBR更先进,但是MBR的兼容性比GPT要好。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Linux与磁盘分区介绍(MBR,GPT)
Linux下使用parted命令分区大于2T的GPT的磁盘
Linux 磁盘基本概念(磁盘、分区、MBR、GPT)
大硬盘(大于2T)分区方法
linux文件系统及磁盘格式化
[grub实现]U盘引导多个linux镜像安装,同时支持BIOS和UEFI模式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服