MBR分区时, 一共分为2部分:分别是MBR和磁盘分区。
MBR
主引导记录(Master Boot Record,缩写:MBR),MBR早在1983年IBM PC DOS 2.0中就已经提出,又叫做主引导扇区。之所以叫“主引导记录”,是因为它是存在于驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的操作系统的启动加载器和驱动器的逻辑分区信息。是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。
它由三个部分组成,主引导记录MBR、硬盘分区表DPT和硬盘有效标志。在总共512字节的主引导扇区里MBR占446个字节,偏移地址0000H–0088H,它负责从活动分区中装载,并运行系统引导程序;第二部分是Partition table区(DPT分区表),占64个字节;第三部分是Magic number,占2个字节。
缺点:在MBR分区表中,一个分区最大的容量为2T。
磁盘分区
在Linux系统中,硬盘分区命名为sda1-sda4或者hda1-hda4(其中a表示硬盘编号可能是a、b、c等等)。在MBR硬盘中,分区号1-4是主分区(或者扩展分区),逻辑分区号只能从5开始。
fdisk 是用于管理磁盘分区的实用程序
下面看几个管理磁盘的命令:
fdisk -l 列出磁盘分区信息
fdisk 后面直接跟磁盘名称表示对该磁盘进行操作,如下:
然后需要你输入相应的命令对其进行操作,可以输入 m 查看帮助,可以看到都可以使用哪些命令,以及对应的功能:
新建分区操作:
退出时一定要记得保存并退出 wq:
然后还要执行同步分区表的命令:
partprobe
由于磁盘分区只能分4个主分区,第4个为扩展分区,如果再继续分的话就是在扩展分区中分逻辑分区,如下,我们尝试创建多于4个分区:
然后用p命令查看分区:
wq保存退出,并 partprobe 同步分区表。
对分区格式化命令:
我们要想使用新建的分区就需要对分区进行格式化,给予分区一个新的文件系统。
mkfs就是对分区格式化的命令,一般在mkfs.后面加上相应的格式,然后再跟要格式化的分区,我们可以看一下可以格式化的文件系统都有那些:
其中最常用的有以下几个:
对新建的分区vdb2进行格式化,并将其挂载到 /mnt 目录下:
可以用命令 df 查看系统中正在使用的设备信息,如下:
然后我们切换到/mnt目录下,在目录中新建10个文件:
然后再退出/mnt 目录,并通过 umount 命令把 /dev/vdb2 卸载掉,再查看/mnt目录下的内容,可以发现卸掉之后目录就为空了:
设定分区方式为gpt
全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构。它的推出是和UEFI BIOS相辅相成的,GPT首要的任务就是突破了2.2T分区的限制,最大支持18EB的分区。
为了设定一个分区方式为gpt,我们需要给虚拟机新加一块磁盘,如下:
加完之后fdisk -l 查看新加的磁盘:
gpt分区对磁盘操作方式会有所不同,可以通过 parted 命令,对新加的磁盘进行操作,如下:
首先我们输入 help 查看可使用的操作命令列表及对应的功能,如下,已将最常用的几个操作命令加上注释:
我们新建一个gpt类型的分区表,然后新建分区并显示分区表,如下:
然后我们需要对新建的分区进行格式化,之后就可以使用对其进行挂载了,如下:
mount 挂载只是一种临时的挂载方式,系统关闭后再开启,之前的挂载就会失效。因此我们需要一种方式可以实现永久挂载,在 /etc/fstab文件中记录挂载的信息就可以实现永久挂载。用vim编辑器打开该文件,在文件中编辑如下内容:
然后保存并退出,用 umount 卸载掉,再用 mount -a 命令使/etc/fstab中记录的挂载策略生效:
Swap分区在系统的物理内存(这里应该是运行内存)不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
这样 , 系统就能在主内存中留出空间用于储存当前正在处理的数据 ,并在系统面临主内存空间不足的风险时提供应急溢出。
设置分区为swap分区的具体步骤:
Step1 用fdisk对分区进行操作,然后输入 t 命令将指定分区修改为swap分区标识
然后 p 显示分区表:
wq保存并退出:
Step2 同步分区表并格式化分区用作交换区
此处的格式化命令为 mkswap :
Step3 激活新的swap分区
命令如下:
swapon -a /dev/vdb5
然后可以用下面命令查看linux内存使用情况,可以看到新的swap分区:
free -m
swapoff /dev/vdb5
磁盘加密,是指将计算机用户的磁盘进行加密,防止信息泄漏。可以通过分区加密启用数据保密。
LUKS ( Linux 统一密钥设置)是标准的设备加密格式。 LUKS 可以对分区或卷进行加密。必须首先对加密的卷进行解密,才能挂载其中的文件系统。
磁盘加密的步骤:
Step1 对指定的分区进行加密并设置密码
cryptsetup luksFormat /dev/vdb3
cryptsetup open /dev/vdb3 任意名称
将加密分区解锁之后就可以在 /dev/mapper/ 目录下查看到指定名称的设备,如下:
Step3 将解密的分区格式化,创建新的文件系统
Step4 然后就可以使用解密之后的设备了,可以对其进行挂载
Step5 对设备进行卸载,并对解锁的分区重新进行加密
重新加密的命令:
cryptsetup close 名称
重新加密之后,在/dev/mapper/目录下就没有了刚才的解密之后的设备:
实现加密磁盘永久挂载的步骤:
Step1 编辑/etc/crypttab文件实现开机自动打开加密设备生成虚拟文件
vim /etc/crypttab
在文件中编辑如下内容:
Step2 编辑打开设备的密码文件
上一步在/etc/crypttab文件中写的密码存放文件为 /root/password,那么就在该文件中存放密码字符。注:该文件中只能存放密码字符,不能有任何其它字符包括空格。
vim /root/password
在文件中编辑密码,如下:
为了防止其他人随意打开该文件,看到密码,因此修改该文件权限为 “600”:
Step3 把密码添加到LUKS中,让密码文件生效
cryptsetup luksAddKey /dev/vdb3 /root/password
vim /etc/fstab
文件中编辑如下内容:
该文件的含义前面已经介绍过,此处不再介绍。
以上操作步骤就实现了加密磁盘的永久挂载。
磁盘加密清除的步骤:
如果之前加密的磁盘不需要加密了,这时候就需要磁盘的加密清除,清除之后磁盘就会跟普通磁盘一样了,下面介绍一下磁盘加密清除的步骤:
Step1 把在开机自动挂载的文件中编辑的内容删掉
vim /etc/fstab
Step2 清空开机自动打开加密设备的文件/etc/crypttab
> /etc/crypttab
Step3 把存放密码的文件删除掉
rm -rf /root/password
Step4 卸载掉之前的挂载
umount /mnt/
Step5 把加密的设备关掉
cryptsetup close 名称
Step6 对设备重新格式化
mkfs.xfs /dev/vdb3
以上步骤操作之后就会将磁盘的加密清除掉了。
磁盘阵列(Redundant Arrays of Independent Drives,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。
磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。
RAID技术主要有以下三个基本功能:
RAID最常用的两个级别:
(1). RAID 0是最早出现的RAID模式,即Data Stripping数据分条技术。RAID 0是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。RAID 0没有提供冗余或错误修复能力,但实现成本是最低的。
(2). RAID 1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。
创建磁盘阵列的步骤:
Step1 用下面命令创建一个磁盘阵列
mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{2,3,5}
参数 | 含义 |
---|---|
-C | 创建磁盘阵列 |
-a | auto,如果raid不存在,则自动创建 |
-l | level,raid的等级(raid0, raid1<备份/镜像>) |
-n | 当前激活的设备个数 |
-x | 当前空闲的设备个数 |
Step2 对创建的磁盘阵列进行格式化
mkfs.vfat /dev/md0
mount /dev/md0 /mnt/
磁盘阵列就创建完成了。
下面再介绍几个磁盘阵列常用的参数,如下:
mdadm -f /dev/md0 /dev/vdb1
-f: faulty, 让磁盘发生错误,破坏磁盘
mdadm -D /dev/md0
-D: 查看raid的状态
mdadm -r /dev/md0 /dev/vdb1
-r:remove,移出磁盘
mdadm -a /dev/md0 /dev/vdb1
-a:add,添加磁盘
mdadm -S /dev/md0
-S:stop,停止使用raid,然后删除raid里面的分区即可
raid操作示例:
可以用 -D 参数,先查看磁盘阵列的状态信息:
然后我们用下面的命令实时监控磁盘阵列的状态:
watch -n 1 'mdadm -D /dev/md0 | tail -n 7'
(1). 把激活的/dec/vdb2 破坏掉:
可以看到 vdb2在毁坏之后,闲置的vdb5就会被激活了。
(2). 把毁坏的磁盘vdb2移除
/dev/vdb2 就被移除掉了
(3). 添加新的磁盘到磁盘阵列中
(4). 停用正在使用的RAID
使用 -S 参数停用RAID:
磁盘配额是一种磁盘空间的管理机制,使用磁盘配额可限制用户或组在某个特定文件系统中所能使用的最大空间。
磁盘配额的作用:
Linux系统是多用户任务操作系统,在使用系统时,会出现多用户共同使用一个磁盘的情况,如果其中少数几个用户占用了大量的磁盘空间,势必压缩其他用户的磁盘的空间和使用权限。因此,系统管理员应该适当的开放磁盘的权限给用户,以妥善分配系统资源。
给磁盘配额的具体步骤:
Step1 给磁盘分区
如下,给磁盘分一个大小2G的分区vdb3:
保存退出并同步分区表:
Step2 将分区格式化
格式化成ext4也可以。
Step3 创建一个公共目录,并将设备挂载到该目录上,修改该目录权限
Step4 激活磁盘配额
quotaon -uv /dev/vdb3
注意:如果是ext格式的文件系统,则需要先执行的命令 quotacheck -u /dev/vdb3,之后才可以激活磁盘配额。
Step5 配置指定用户的磁盘配额信息
edquota -u 用户名
给student用户进行配额:
然后会打开如下文件:
修改里面的配额信息,如下:
Step6 客户端测试配置的磁盘配额是否生效
(1). 测试文件个数限制
切换到student 用户,然后在/public 目录创建 20 个文件:
(2). 可使用空间大小的限制
把/public 下的文件全都删除掉,然后用 dd 命令往 /public 下写30M的内容:
dd命令详解:
if ——> input file,of ——> output file,bs ——> block size(每块大小), count提取数据块的个数