磁盘分区,磁盘配额,LUKS加密

磁盘

1.磁盘的组成:盘片,机械手臂,磁头,主轴马达。盘片分为柱面(Cylinder)和扇区(Sector),每个扇区大小为512bytes。
2.磁盘的第一个分区记录内容:
(1)主引导分区(Master Boot Record,MBT):安装引导加载程序,446bytes。
(2)分区表:记录整块硬盘分区的状态,46bytes。

分区

1.mbr分区表使用fdisk分区
fdisk使用m作为提示指令,fdisk有时会使用柱面作为分区的最小单位
partprobe [-s] ##更新linux核心的分区信息

2.按生产标准定制分区
(1)分区的实质(原理):给磁盘按照柱面为单位划分为不同的块(给一个分区指定不同的柱面数来分成不同的分区数)。柱面为分区的最小单位。
(2)分区之后需要给分区格式化,分区格式化的原理是:把分区变成可以存储数据的格式。
(3)磁盘分区有主分区(可直接使用)、扩展分区(不可直接使用,划分为逻辑分区可使用)、逻辑分区之分。一块磁盘最多有四个主分区(原因:主分区表只有64bytes,每个主、扩展分区各要占用16bytes),其中一个主分区的位置可以用扩展分区替换,一块硬盘只能有一个扩展分区,这个扩展分区可以有多个逻辑分区。
3P+E
2P+E
P+E
4P 不能增加分区
(4)磁盘分区的设备名
通过设备名来访问设备,设备名存放在“/dev”目录中
设备名称如下:
系统的第一块IDE接口的硬盘称为/dev/hda(系统的第一块SCSI接口硬盘的第1个分区为/dev/sda1;)
二 /dev/hdb;
三 /dev/hdc;
系统的第一块IDE接口硬盘的第1个分区为/dev/hda1;
系统的第一块IDE接口硬盘的第2个分区为/dev/hda2。
注意:
①分区数字编号1~4留给主分区和扩展分区使用,逻辑分区编号只能从5开始;
②IDE硬盘设备名均以/dev/hd开头,不同硬盘编号依次为/dev/hda、/dev/hdb、/dev/hdc。
③SCSI、SAS、SATA、USB硬盘设备名均以/dev/sd开头,不同硬盘编号依次为/dev/sda、/dev/sdb、/dev/sdc。
④SAS、SATA为当前2010-2012互联网生产环境主流硬盘接口,SSD是主流硬盘接口,逐渐被应用。
性能:SSD(电子设备)>SAS(机械硬盘)>SATA(同样的价钱容量从大到小,则顺序相反)
线上服务器中,SAS是主流。
⑤Linux中常用的外部设备文件名

软盘          /dev/fdN(N=0,1,2...)
光驱(IDE)   /dev/cdrom(→/dev/hdX)
光驱(SCSI)  /dev/scdN(N=0,1,2...)
硬盘(IDE)   /dev/hdX(X=a,b,c...)
硬盘(SCSI)  /dev/sdX(X=a,b,c...)
U盘          /dev/sdX(X=a,b,c...)

3.Linux系统对分区的要求
(1)至少有/和swap(交换分区)分区(必须有一个根分区)
(2)交换分区的作用:虚拟内存(内存不够用了,通过虚拟内存进行缓存)
大小参考值为1.5倍的物理内存容量。内存大于8GB,swap大小可以等于物理内存;内存为16GB、32GB或更高,swap可在8~16GB。
数据库使用swap会变慢。如果不分swap,内存被用完会宕机。
若发现swap被用了很多,内存有剩余,则说明程序有漏洞(内存泄漏)。处理方式为:找程序。
(3)建议设置独立的/boot分区
Linux引导分区,存放系统引导文件(如Linux内核等),所有文件大小一般只有几十兆欧。故该分区一般设置为100~200M。

设备的查看

1.发现系统中的设备
(1)fdisk -l
这里写图片描述

(2)cat /proc/partitions
这里写图片描述

2.系统发现的,但是没有投入使用 随时可以使用的
blkid ##查看设备的id信息
这里写图片描述

3.正在使用的设备

df   -h                    ##1g=2^n (更精确)
df   -H                    ##1g=10^n

这里写图片描述

设备名称的读取

1./dev/xd*

x=s  /dev/sd*          ##sate硬盘,或者iscsi网络存储
x=v  /dev/vd*          ##虚拟硬盘,一般出现在虚拟机里
x=h  /dev/hd*          ##ide硬盘 ,一般出现在老式电脑里
*=a~...                ##/dev/vda, 系统中的第一块虚拟硬盘
/dev/sda1              ##系统中的第一块sate硬盘的第一个分区

2./dev/cdrom,/dev/sr[0-…] ##系统中的光驱

3./dev/mapper/* ##系统中的虚拟设备

设备的使用

设备必须使用目录来对设备中的内容进行读取
所以设备在使用时需做挂载动作

1.blkid ##查看可使用的设备

[root@localhost ~]# blkid
/dev/sda1: UUID="40486AB4486AA87C" TYPE="ntfs"
.   .   .   .   .   .
/dev/sdb1: LABEL="HP v285w" UUID="9B03-2CED" TYPE="vfat"             ##插入的u盘

这里写图片描述

[root@localhost ~]# df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda5      266049616 23050072 242999544   9% /
.  . .  .  .  .
/dev/sdb1       31020992  2913408  28107584  10% /run/media/kiosk/HP v285w       ##u盘挂载位置

这里写图片描述

2.mount 设备 挂载点 ##挂载设备(挂载在一个目录后 可查看设备里的内容 不能查看原来目录里的东西)

mount  -o ro     设备     目录  ##-o,指定动作,ro表示read only
mount  -o ro  /dev/sdb1  /mnt/

这里写图片描述

注意:当卸载设备时出现下列情况

umount: /mnt: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

(1)进程发现的方式

[root@localhost ~]# fuser -vm /dev/sdb1
                     USER        PID ACCESS COMMAND
/dev/sdb1:           root     kernel mount /mnt
                     root      20071 ..c.. bash
                     root      20720 F.c.. vim

或者

[root@localhost ~]# lsof /dev/sdb1
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    20071 root  cwd    DIR   8,17    16384    1 /mnt
vim     20720 root  cwd    DIR   8,17    16384    1 /mnt
vim     20720 root   3u    REG   8,17    12288  3096 /mnt/.file.swo

(2))关闭进程的方法

[root@localhost ~]# fuser -kvm /dev/sdb1
                     USER        PID ACCESS COMMAND
/dev/sdb1:           root     kernel mount /mnt
                     root      15647 ..c.. bash
                     root      20021 F.c.. vim
[root@localhost ~]# umount /dev/sdb1
[root@localhost ~]# df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda5      266049616 23050820 242998796   9% /
devtmpfs         1868044        0   1868044   0% /dev
tmpfs            1881152      516   1880636   1% /dev/shm
tmpfs            1881152     9016   1872136   1% /run
tmpfs            1881152        0   1881152   0% /sys/fs/cgroup
/dev/sda2         505580   149488    356092  30% /boot
/dev/loop0       3947824  3947824         0 100% /var/www/html/rh7.2
/dev/loop1       3947824  3947824         0 100% /rh7.2
tmpfs             376232       20    376212   1% /run/user/1000

或者

kill -9 pid
[root@localhost ~]# fuser -vm /dev/sdb1
                     USER        PID ACCESS COMMAND
/dev/sdb1:           root     kernel mount /mnt
                     root      20071 ..c.. bash
[root@localhost ~]# kill -9 2007
-bash: kill: (2007) - No such process
[root@localhost ~]# kill -9 20071
[root@localhost ~]# umount /dev/sdb1
[root@localhost ~]# df

分区的划分

分区小结:
mbr分区,最大分区为2TB
主分区:由分区表记录的分区
扩展分区:解决分区不足,分出逻辑分区
逻辑分区:在扩展分区中的分区,由扩展分区记录
mbr + 55aa (2个字节,硬盘有效性标示,类似于目录)+mpt (主分区表64字节)=512bytes
一个主分区占用主分区表16个字节记录分区信息

1.fdisk -l 查看分区
这里写图片描述

2.创建分区

fdisk  /dev/vdb
Command (m for help): n       ##创建分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)  ##主分区
   e   extended                              ##扩展分区

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      ##保存分区操作并退出

这里写图片描述

分区之后
cat /proc/partitions ##查看设备是否被识别
这里写图片描述

mkfs.xfs /dev/vab1 ##格式化设备,在设备上添加xfs文件系统
这里写图片描述

blkid ##查看可用设备,可以看到被格式化好的设备
这里写图片描述

mount /dev/vab1 /mnt/ ##挂载设备,使设备投入使用
这里写图片描述
partprobe ##同步分区表

文件系统:
ext 分布式文文件系统,稳定
ext2-3 可支持32TB的分区
ext4 可支持1EB的分区
vfat 可支持4TB,链式文件系统,稳定性差
ntfs 可支持32TB的分区,链式文件系统,稳定性差
xfs 可支持18EB的分区,吞吐速度7GB/S

设备永久挂载

vim /etc/fstab
设备 挂载点 文件系统类型 挂载参数 是否备份 是否检测磁盘是否完整,数据是否有问题

/dev/vdb1  /mnt/       xfs        defaults    0                    0

这里写图片描述
mount -a ##让fstab中未生效的策略生效
这里写图片描述

删除分区

注意:正在使用的设备不能删除

vim /etc/fstab       ##删掉之前的挂载
mount  -a            ##让fstab中未生效的策略生效
umount  /mnt/        ##取消挂载
df                   ##查看挂在点

这里写图片描述
然后fdisk /dev/vdb
Command (m for heip):d ##删除分区/dev/vdb1
这里写图片描述

swap分区的管理

1.swap 交换分区,系统自己使用,不需要挂载
2.swap分区的建立
先建立分区
这里写图片描述

然后将分区的id改为swap类型
Command (m for help)t ##修改分区id
Hex code (type l to list all codes):l ##列出所有的id类型代码
这里写图片描述

Hex code (type l to list all codes):82 ##把/dev/vdb1的分区类型改为swap,swap类型代码为82
这里写图片描述

vim /etc/fstab

 /dev/vdb1       swap         swap    defaults        0 0

这里写图片描述

mkswap        /dev/vdb1  ##格式化/dev/vdb1为swap文件系统格式
swapon  -a   /dev/vdb1   ##激活swap设备,将新建的swap投入使用
swapon  -s     ##同cat /proc/swaps,列出目前使用swap的设备有哪些

这里写图片描述

swapoff /dev/vdb1 ##关闭系统使用/dev/vdb1
这里写图片描述

3.当磁盘全部被用完不能创建新分区时,可以使用文件来代替分区
dd if=/dev/zero of=/swapfile bs=1M count=1000
这里写图片描述

此文件创建后的步骤和设备的步骤一致
这里写图片描述

这里写图片描述

注意:
新建分区时,我们会遇到Command (m for help),输入m即可查看参数的使用方法,如下所示:

Command (m for help): m         ##输入m 查看参数用法
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition        ##删除分区
   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   add a new partition        ##新建分区
   o   create a new empty DOS partition table
   p   print the partition table  ##区分分区表信息
   q   quit without saving changes          
   ##退出,但是不会保存新建的分区操作
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit   ##将当前操作写入硬盘分区
   x   extra functionality (experts only)

删除swap分区

vim /etc/fstab ##删除swap的配置
这里写图片描述

swapoff /dev/vdb1 ##停止/dev/vdb1设备的使用
swapoff /swapfile ##停止/swapfile设备的使用
这里写图片描述

rm -rf /swapfile ##删除swap分区
这里写图片描述

fdisk /dev/vdb ##fdisk命令删除分区
这里写图片描述

注意:

rm -rf /dev/vdb1是删除/dev/vdb1设备文件,恢复方法为:
mknod /dev/vdb1  b  253   17

这里写图片描述

mknod          ##用于新建字符设备文件和块设备文件
-z             ##设置安全的上下文
-m             ##设置权限模式
-help          ##显示帮助的信息
--version      ##显示版本的信息
b              ##创建块(缓冲)文件
c,u           ## 创建字符(非缓冲)文件
p              ##创建一个先进先出,先入先出
磁盘配额

为磁盘使用用户分配额度
分区配额是针对设备的
1.激活设备参数

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     204800      0     204800     1         0       0
           存在文件的大小  软额度 最大额度  文件个数    软额度  最大额度

测试:

su  student
dd  if=/dev/zero  of=/westos/file  bs=1M  count=600

##student用户的配额限度是200M,然后在/westos下切割一个400M的文件
这里写图片描述

开机自动激活配额
vim /etc/fstab

/dev/vdb1    /westos    xfs   defaults,userqutoa   0    0
分区方式修改 mbr<—->gpt

gpt的优点:解决mbr分区只有2TB,不能满足使用的缺点。最多支持128个分区

mbr–>gpt:

[root@203server ~]# 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? gpt                  ##把原有的dos标签改为gpt(双击Tab可查看所有的设备分区方式标签)                                      
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) q                                                                
Information: You may need to update /etc/fstab

这里写图片描述

分区方式检测:

[root@203server ~]# fdisk -l                                              

Disk /dev/vda: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00013f3e

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    20970332    10484142+  83  Linux
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt

Start   End    Size  Type    Name
[root@203server ~]# 

这里写图片描述

luks加密

文件与文件系统的关系:文件存储在文件系统中,文件系统存储在磁盘上;文件系统是管理文件的软件。

luks加密的原理:在文件与文件系统之间加密(相当于在文件与文件系统之间加上锁),当文件被人经过文件系统取出文件时,取出的文件仍然是加密的无法使用文件。

1.新建分区
2.加密格式化
cryptsetup luksFormat /dev/vdb1 ##对/dev/vdb1进行加密
这里写图片描述

[root@localhost ~]# cryptsetup  luksFormat  /dev/vdb1      

WARNING!
========
This will overwrite data on /dev/vdb1 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase:                 ##设置加密的密码
Verify passphrase:         
[root@localhost ~]# 

3.cryptsetup open /dev/vdb1 westos ##生成加密使用的锁,westos是随意命名的
这里写图片描述

[root@localhost ~]# cryptsetup open /dev/vdb1 westos
Enter passphrase for /dev/vdb1:
[root@localhost ~]#

4.mkfs.xfs /dev/mapper/westos ##将生成的锁格式化为xfs并投入使用
5.mount /dev/mapper/westos /mnt/ ##挂载设备
这里写图片描述

touch /mnt/westosfile{1..5}
这里写图片描述

6.umount /mnt/ ##卸载/mnt/
cryptsetup close westos ##关闭锁

7.cryptsetup open /dev/vdb1 westos
mount /dev/mapper/westos /mnt/
这里写图片描述

加密设备开机自动挂载

[root@localhost ~]# vim /etc/fstab 
/dev/mapper/westos   /mnt   xfs   defaults   0   0
[root@localhost ~]# vim /etc/crypttab 
westos   /dev/vdb1    /root/passfile

[root@localhost ~]# vim /root/passfile
2017westos
[root@localhost ~]# chmod 600  /root/passfile

[root@localhost ~]# cryptsetup  luksAddKey  /dev/vdb1  /root/passfile
Enter any passphrase:     ##输入/etc/passfile编辑的内容,即加密的密码
[root@localhost ~]# 

这里写图片描述

清除加密

[root@localhost ~]# umount /dev/mapper/westos    ##卸载生成的锁
umount: /dev/mapper/westos: not mounted

[root@localhost ~]# cryptsetup close westos      ##关闭锁

[root@localhost ~]# mkfs.xfs  /dev/vdb1  -f             
meta-data=/dev/vdb1              isize=256    agcount=4, agsize=12800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=51200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# vim /etc/fstab        ##清除编辑的内容,还原文件
[root@localhost ~]# vim /etc/crypttab     ##清除编辑的内容,还原文件
[root@localhost ~]#rm  -rf   /root/passfile

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值