Blog16@linux存储设备的管理(2)—分区

来源:互联网 发布:java数字转化为字符串 编辑:程序博客网 时间:2024/06/06 02:54

分区


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


1.关于设备分区信息

一个扇区大小:512byte
>> mbr主引导记录446byte ---主引导分区安装引导加载程序的地方
>> mpt主引导分区表64byte  
>> 硬盘的有效性标识"55aa"(更改后硬盘无法启动)
>> 一个主分区占用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):        ##获取帮助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   extendedSelect (default p):       Partition number (1-4, default 1): 1    ##确定主分区idFirst sector (2048-20971519, default 2048): ##分区起始块位置,用默认 Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +100MPartition 1 of type Linux and of size 100 MiB is setCommand (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       

mount -a    ##让fstab中未生效的策略生效

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


三、swap分区


1. swap分区查看

swap -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): tSelected partition 1Hex code (type L to list all codes): l  ##列出所有id类型代码Hex code (type L to list all codes): 8e ##把/dev/vdb1的分区类型修改为swap,swap类型代码为8eChanged type of partition 'Linux' to 'Linux swap / Solaris'Command (m for help): wq

[root@localhost ~]# mkswap /dev/vdb1       ##格式化设备为swap文件系统格式
[root@localhost ~]# swapon -a /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格式化

注:分区大小:500M

2)激活设备配额参数

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 - 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


五、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/vdbGNU Parted 3.1Using /dev/vdbWelcome 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 onthis 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发行版本,还支持多用户口令。

因为它的加密密钥独立于口令,所以口令失密,我们可以迅速改变口令而无需重新加密整个硬盘。

磁盘加密为底层加密,如果强力破解,得到的结果就是文件损坏,将得不到自己想要的信息。


注:基于文件系统上层的加密,安全性不高

   loks加密,安全性能高

2. 分区加密的过程

过程如下:
1) 建立分区
2) cryptsetup luksFormat /dev/vdb1

[root@server ~]# cryptsetup luksFormat /dev/vdb1WARNING!========This will overwrite data on /dev/vdb1 irrevocably.Are you sure? (Type uppercase yes): YES  ##此处应为大写Enter passphrase:    ##设置的秘密要有一定的复杂度/大于8个字节Verify passphrase:

3) cryptsetup open /dev/vdb1 hongyeli
4) mkfs.xfs /dev/mapper/hongyeli
5) mount /dev/mapper/hongyeli /mnt
        touch /mnt/file{1..4}
6) umount /mnt
       cryptsetup close hongyeli
7) 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/vdb1 /root/passfile 


3. 加密的清除

[root@localhost ~]# umount /mnt
[root@localhost ~]# cryptsetup close hongyeli
[root@localhost ~]# mkfs.xfs /dev/vdb1 -f     ##格式化为了破坏加密
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# vim /etc/crypttab