分区
一、关于分区的一些基本信息
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.
- 注:分区好的硬盘无法挂载,缺少文件系统
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
注:配置文件内容千万不能写错,否则系统将不能重新启动
且关于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