分区

分区


一、关于分区的一些基本信息


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

[python]  view plain  copy
  1. Command (m for help): m        ##获取帮助  
  2. Command action  
  3.    a   toggle a bootable flag  
  4.    b   edit bsd disklabel  
  5.    c   toggle the dos compatibility flag  
  6.    d   ##删除分区  
  7.    g   create a new empty GPT partition table  
  8.    G   create an IRIX (SGI) partition table  
  9.    l   list known partition types  
  10.    m   print this menu  
  11.    n   ##新建分区  
  12.    o   create a new empty DOS partition table  
  13.    p   ##显示分区表信息  
  14.    q   ##退出  
  15.    s   create a new empty Sun disklabel  
  16.    t   ##修改分区id  
  17.    u   change display/entry units  
  18.    v   verify the partition table  
  19.    w   ##将当前操作写入硬盘分区表  
  20.    x   extra functionality (experts only)  
  21. Command (m for help): n     ##创建分区      
  22. Partition type:         ##创建分区类型  
  23.    p   primary (0 primary, 0 extended, 4 free)  
  24.    e   extended  
  25. Select (default p): p          
  26. Partition number (1-4, default 1): 1    ##确定主分区id  
  27. First sector (2048-20971519, default 2048): ##分区起始块位置,用默认   
  28. Using default value 2048  
  29. Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +100M  
  30. Partition 1 of type Linux and of size 100 MiB is set  
  31.   
  32. Command (m for help): wq  ##这些信息都是在内存中的,如果只有q,表示内存中的信息被释放,关于分区的更改并未被保存  
  33. The partition table has been altered!  
  34.   
  35. Calling ioctl() to re-read partition table.  
  36. Syncing disks.  
  37.   
  38. 注:分区好的硬盘无法挂载,缺少文件系统  
2)cat /proc/partitions    ##查看设备是否被系统识别
       partprobe  同步分区表
3)mkfs.xfs /dev/vdb1    ##格式化设备,在设备上安装文件系统xfs
       blkid            ##查看可用设备,可以看到被格式化好的/dev/vdb1
4)mount /dev/vdb1 /mnt    ##挂载设备,使设备投入使用

2. 关于设备永久挂载

vim /etc/fstab        ##设备挂载策略文件

[python]  view plain  copy
  1. 设备         挂载点    文件系统类型    挂载参数    是否备份    是否检测  
  2. /dev/vdb1  /westos      xfs        defaults       0         0  
mount -a    ##让fstab中未生效的策略生效

注:配置文件内容千万不能写错,否则系统将不能重新启动
   且关于fstab的其他用法,可以man了解一下


三、swap分区


1. swap分区查看

swapon -s

[python]  view plain  copy
  1. Filename                                Type            Size    Used    Priority  
  2. /dev/sda2                               partition       3933180 1468    -1   

2.swap分区的建立

法一:
划分分区并修改分区id为swap:

1)fdisk /dev/vdb 建立分区

[python]  view plain  copy
  1. Device Boot      Start         End      Blocks   Id  System  
  2. /dev/vdb1        2048       2050047     1024000   83  Linux  

2)fdisk /dev/vdb

[python]  view plain  copy
  1. Command (m for help): t  
  2. Selected partition 1  
  3. Hex code (type L to list all codes): l  ##列出所有id类型代码  
  4. Hex code (type L to list all codes): 8e ##把/dev/vdb1的分区类型修改为swap,swap类型代码为8e  
  5. Changed type of partition 'Linux' to 'Linux swap / Solaris'  
  6. Command (m for help): wq  

[root@localhost ~]# mkswap /dev/vdb1       ##格式化设备为swap文件系统格式

[root@localhost ~]# swapon -a /dev/vdb1    ##激活swap设备,使系统利用此设备
[root@localhost ~]# vim /etc/fstab    ##让此设备开机自动激活

[python]  view plain  copy
  1. /dev/vdb1       swap    swap    defaults        0       0  

[root@server ~]#  swapon -s         ##列出目前使用swap的设备有哪些

[python]  view plain  copy
  1. Filename                Type        Size    Used    Priority  
  2. /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格式化

注:分区大小:500M

2)激活设备配额参数

mount -o usrquota /dev/vdb1 /westos/ 
chmod 777 /westos/
edquota -u student /dev/vdb1

[python]  view plain  copy
  1. Disk quotas for user student (uid 1000):  
  2.   Filesystem                   blocks       soft       hard     inodes     soft     hard  
  3.   /dev/vdb1                         0        0        204800       0        0        0  
  4.      设备                    已存在的文件大小  软额度     最大额度   文件个数    软额度    最大额度  

3)结果如下:

[root@server ~]# su - student
Last 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

[python]  view plain  copy
  1. [root@localhost ~]# parted /dev/vdb  
  2. GNU Parted 3.1  
  3. Using /dev/vdb  
  4. Welcome to GNU Parted! Type 'help' to view a list of commands.  
  5. (parted)mklabel  ##修改设备分区方式标签                                                        
  6. New disk label type?   
  7. aix    amiga  bsd    dvh    gpt    loop   mac    msdos  pc98   sun      
  8. New disk label type? msdos|gpt  ##把原有的gpt改称为mbr格式|把gpt的改为mbr的  
  9. Warning: The existing disk label on /dev/vdb will be destroyed and all data on  
  10. this disk will be lost. Do you want to continue?  
  11. Yes/No? yes                                                                 
  12. (parted) quit                                                               
  13. Information: You may need to update /etc/  
  14.   
  15. 注:修改分区前需要取消/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


[python]  view plain  copy
  1. [root@server ~]# cryptsetup luksFormat /dev/vdb1  
  2.   
  3. WARNING!  
  4. ========  
  5. This will overwrite data on /dev/vdb1 irrevocably.  
  6.   
  7. Are you sure? (Type uppercase yes): YES  ##此处应为大写  
  8. Enter passphrase:    ##设置的秘密要有一定的复杂度/大于8个字节  
  9. 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

[python]  view plain  copy
  1. /dev/mapper/hongyeli    /mnt    xfs    defaults    0 0   

2) [root@localhost mapper]# vim /root/passfile      

[python]  view plain  copy
  1. chmod 600 /root/passfile  

3)[root@localhost mapper]#vim /etc/crypttab    

[python]  view plain  copy
  1. hongyeli    /dev/vdb1    /root/passfile  
  2. 备管理文件    设备       加密字符存放处  

4) [root@localhost mapper]# cryptsetup luksAddKey /dev/sdb1 /root/passfile 


3. 加密的清除

[python]  view plain  copy
  1. [root@localhost ~]# umount /mnt  
  2. [root@localhost ~]# cryptsetup close hongyeli  
  3. [root@localhost ~]# mkfs.xfs /dev/sdb1 -f     ##格式化为了破坏加密  
  4. [root@localhost ~]# vim /etc/fstab  
  5. [root@localhost ~]# vim /etc/crypttab  

猜你喜欢

转载自blog.csdn.net/weixin_42167918/article/details/80543292