分区
一、关于分区的一些基本信息
1.关于设备分区信息
一个扇区大小:512byte>> mbr主引导记录446byte ---主引导分区安装引导加载程序的地方
>> mpt主引导分区表64byte
>> 硬盘的有效性标识"55aa" 2个字节(更改后硬盘无法启动)
>> 一个主分区占用16个字节记录分区信息
>> 一块硬盘上如果用mbr的分区方式最多可以存在4个主分区
>> 主分区,也叫引导分区,最多只能创建4个,当创建四个主分区时,无法创建扩展分区,更无逻辑分区。
>> 扩展分区,除主分区外,剩余的磁盘空间即为扩展分区,其为概念,不可肉眼识别。
>> 逻辑分区在扩展分区上面,可创建多个逻辑分区。
其相当于一块存储截止,和操作系统还有别的逻辑分区,主分区没有什么关系,是“独立的”。
2. 不同文件系统支持的最大分区大小
文件系统,用来识别硬件ext2-3 最多支持32Tb分区
ext4 最多支持1Eb分区
fat 最多支持4Tb分区
wtfs 最多支持32Tb分区
xfs 最多支持18Eb分区 --适用大数据文件系统
fat wtfs链式文件系统,稳定性不太好
ext xfs 分布式文件系统,稳定性较好
二、 mbr分区方式
注:最大支持分区的大小为2Tb
1.关于分区过程
如下操作:1)[root@localhost ~]# fdisk /dev/vdb
Command (m for help): m ##获取帮助
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d ##删除分区
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 ##新建分区
o create a new empty DOS partition table
p ##显示分区表信息
q ##退出
s create a new empty Sun disklabel
t ##修改分区id
u change display/entry units
v verify the partition table
w ##将当前操作写入硬盘分区表
x extra functionality (experts only)
Command (m for help): n ##创建分区
Partition type: ##创建分区类型
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1 ##确定主分区id
First sector (2048-20971519, default 2048): ##分区起始块位置,用默认
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +100M
Partition 1 of type Linux and of size 100 MiB is set
Command (m for help): wq ##这些信息都是在内存中的,如果只有q,表示内存中的信息被释放,关于分区的更改并未被保存
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
注:分区好的硬盘无法挂载,缺少文件系统
2)cat /proc/partitions ##查看设备是否被系统识别partprobe 同步分区表
3)mkfs.xfs /dev/vdb1 ##格式化设备,在设备上安装文件系统xfs
blkid ##查看可用设备,可以看到被格式化好的/dev/vdb1
4)mount /dev/vdb1 /mnt ##挂载设备,使设备投入使用
2. 关于设备永久挂载
vim /etc/fstab ##设备挂载策略文件
设备 挂载点 文件系统类型 挂载参数 是否备份 是否检测
/dev/vdb1 /westos xfs defaults 0 0
mount -a ##让fstab中未生效的策略生效注:配置文件内容千万不能写错,否则系统将不能重新启动
且关于fstab的其他用法,可以man了解一下
三、swap分区
1. swap分区查看
swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 3933180 1468 -1
2.swap分区的建立
法一:划分分区并修改分区id为swap:
1)fdisk /dev/vdb 建立分区
Device Boot Start End Blocks Id System
/dev/vdb1 2048 2050047 1024000 83 Linux
2)fdisk /dev/vdb
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): l ##列出所有id类型代码
Hex code (type L to list all codes): 8e ##把/dev/vdb1的分区类型修改为swap,swap类型代码为8e
Changed type of partition 'Linux' to 'Linux swap / Solaris'
Command (m for help): wq
[root@localhost ~]# mkswap /dev/vdb1 ##格式化设备为swap文件系统格式
[root@localhost ~]# vim /etc/fstab ##让此设备开机自动激活
/dev/vdb1 swap swap defaults 0 0
[root@server ~]# swapon -s ##列出目前使用swap的设备有哪些
Filename Type Size Used Priority
/dev/vdb1 partition 10484732 0 -1
法二:
[root@localhost ~]# dd if=/dev/zero of=/swapfile bs=1M count=1000
此文件创建后的步骤和设备的步骤一致
mkswap /swapfile
swapon -a /swapfile
swapon -s
3. swap分区的删除
[root@localhost ~]# vim /etc/fstab[root@localhost ~]# swapoff /dev/vdb1
[root@localhost ~]# swapoff /swapfile
[root@localhost ~]# rm -rf /swapfile
[root@localhost ~]# fdisk /dev/vdb
四、磁盘配额
目的:
磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。即为磁盘使用的用户分配额度,分区配额是针对于设备。
过程:1)新建分区,并进行xfs格式化
注:分区大小:500M2)激活设备配额参数
mount -o usrquota /dev/vdb1 /westos/chmod 777 /westos/
edquota -u student /dev/vdb1
Disk quotas for user student (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/vdb1 0 0 204800 0 0 0
设备 已存在的文件大小 软额度 最大额度 文件个数 软额度 最大额度
3)结果如下:
[root@server ~]# su - studentLast login: Tue Nov 7 02:21:39 EST 2017 on pts/0
[student@server ~]$ dd if=/dev/zero of=/westos/swapfile bs=1M count=250
dd: error writing ‘/westos/swapfile’: Disk quota exceeded
201+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 0.235273 s, 891 MB/s
注:由上可见,200M没有超过最大额度
五、gtp分区
guid 磁蝶分割表(GUID Partition Table,缩写:GPT)其含义为“全局唯一标识分区表”
与MBR最大4个分区表项的限制相比,GTP对分区数量没有限制
windows最大仅支持128个GPT分区
GPT可管理硬盘大小达到了18Eb,满足企业最大支持容量.
六、分区方式修改
1. 修改目的
为了突破mbr分区的最大支持容量MBR只支持不超过2T的磁盘,超过2T的硬盘将只能用2T空间(支持32和64为操作系统)
GPT支持超过2T的磁盘(仅支持64位操作系统)
2.修改方式
mbr <-----> gpt[root@localhost ~]# parted /dev/vdb
GNU Parted 3.1
Using /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)mklabel ##修改设备分区方式标签
New disk label type?
aix amiga bsd dvh gpt loop mac msdos pc98 sun
New disk label type? msdos|gpt ##把原有的gpt改称为mbr格式|把gpt的改为mbr的
Warning: The existing disk label on /dev/vdb will be destroyed and all data on
this disk will be lost. Do you want to continue?
Yes/No? yes
(parted) quit
Information: You may need to update /etc/
注:修改分区前需要取消/dev/vdb 上分区的挂载
七、建立分区加密
1.关于分区加密过程
luks加密(Linux Unified Key Setup)为linux硬盘加密的一种标准,不仅能适用于不同Linux发行版本,还支持多用户口令。
因为它的加密密钥独立于口令,所以口令失密,我们可以迅速改变口令而无需重新加密整个硬盘。通过提供一个标准的磁盘上的格式,它不仅方便之间分布的兼容性,而且还提供了多个用户密码的安全管理。必须首先对加密的卷进行解密,才能挂载其中的文件系统。
磁盘加密为底层加密,如果强力破解,得到的结果就是文件损坏,将得不到自己想要的信息。
注:基于文件系统上层的加密,安全性不高
luks加密,安全性能高2. 加密工具及其特点
工具:cryptsetup(默认已经安装)
常用参数:luksFormat、luksOpen、luksClose、luksAddKey
使用cryptsetup对分区进行了加密后,这个分区就不再允许直接挂载。LUKS也是一种基于device mapper 机制的加密方案。如果要使用这个分区,必须对这个分区做一个映射,映射到/dev/mapper这个目录里去,我们只能挂载这个映射才能使用。然而做映射的时候是需要输入解密密码的。
Crypsetup工具加密的特点:
Ø 加密后不能直接挂载
Ø 加密后硬盘丢失也不用担心数据被盗
Ø 加密后必须做映射才能挂载
步骤:
1. 创建分区并加密分区
2. 映射分区
3. 格式化分区并挂载使用
4. 关闭映射分区
创建一个磁盘分区/dev/sdb1,不进行格式化
3. 分区加密的过程
过程如下:1)创建一个磁盘分区/dev/sdb1,不进行格式化
2)对磁盘进行加密格式化
cryptsetup luksFormat /dev/sdb1
[root@server ~]# 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:
3) 打开加密磁盘
cryptsetup open /dev/sdb1 hongyeli
该命令使得/dev/vdb1加密后的分区直接映射到/dev/mapper/hongyeli分区上,我们在真正读写分区时使用的是/dev/mapper/hongyeli 分区
4)格式化映射设备,格式化为xfs 文件系统
mkfs.xfs /dev/mapper/hongyeli
5)挂载
mount /dev/mapper/hongyeli /mnt
6)使用完成后卸载,卸载挂载点 hongyeli
umount /mnt
7)关闭映射设备
cryptsetup close hongyeli
8)再次打开映射设备发现需要密码验证
cryptsetup open /dev/vdb1 hongyeli
mount /dev/mapper/hongyeli /mnt
2. 加密设备开机自动挂载
1) [root@localhost mapper]# vim /etc/fstab /dev/mapper/hongyeli /mnt xfs defaults 0 0
2) [root@localhost mapper]# vim /root/passfile
chmod 600 /root/passfile
3)[root@localhost mapper]#vim /etc/crypttab
hongyeli /dev/vdb1 /root/passfile
##解密后设备管理文件 设备 加密字符存放处
4) [root@localhost mapper]# cryptsetup luksAddKey /dev/sdb1 /root/passfile
3. 加密的清除
[root@localhost ~]# umount /mnt
[root@localhost ~]# cryptsetup close hongyeli
[root@localhost ~]# mkfs.xfs /dev/sdb1 -f ##格式化为了破坏加密
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# vim /etc/crypttab