Linux系统之磁盘管理

本地存储设备时别

名称 方法
真实存在的设备 fdisk -l
系统识别的设备 cat /proc/partitions
系统可以使用的设备 blkid
系统正在挂载的设备 df

  其中,四者之间的关系为真实存在的( fdisk -l),但不一定被识别;识别的(cat /proc/partition),不一定能用;一定能用的(blkid),不一定被使用(df)。

##发现系统中的设备(真实存在的设备)
[root@foundation70 ~]# fdisk -l
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/sda: 250.1 GB, 250059350016 bytes, 488397168 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
 1         2048      1023999    499M  Windows recover Basic data partition
 2      1024000      1226751     99M  EFI System      EFI System Partition
 3      1226752      1259519     16M  Microsoft reser Microsoft reserved partition
 4      1259520    209715199   99.4G  Microsoft basic Basic data partition
 5    209715200    302903295   44.4G  Microsoft basic Basic data partition
 6    302903296    305000447      1G  Microsoft basic 
 7    305000448    313128959    3.9G  Linux swap      
 8    313128960    488396799   83.6G  Microsoft basic 
 ##系统可以发现并且识别的设备
[root@foundation70 ~]# cat /proc/partitions 
major minor  #blocks  name

   8        0  244198584 sda
   8        1     510976 sda1
   8        2     101376 sda2
   8        3      16384 sda3
   8        4  104227840 sda4
   8        5   46594048 sda5
   8        6    1048576 sda6
   8        7    4064256 sda7
   8        8   87633920 sda8
  11        0    1048575 sr0
   7        0    3704832 loop0
##系统发现的,但是没有投入使用,随时可以使用的设备
[root@foundation70 ~]# blkid
/dev/sda1: LABEL="M-fM-^AM-"M-eM-$M-^M" UUID="728857BC88577E13" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="7ec6aeb9-dbc7-4347-8d50-b06abb8f81f1" 
/dev/sda2: UUID="6057-D7B3" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="e4da49b7-9ea3-426d-9eba-9a50307833c6" 
/dev/sda3: PARTLABEL="Microsoft reserved partition" PARTUUID="19b70024-1097-4f10-abae-f9da2236d59d" 
/dev/sda4: UUID="E61AF3081AF2D511" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="8c28e437-c115-4f48-b4fe-d7e210ae6bdf" 
/dev/sda5: LABEL="software" UUID="EA0083F90083CB51" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="c29ec523-ee7a-46db-b95f-0fe58644318f" 
/dev/sda6: UUID="2155062d-4b85-4e33-9dc7-8c1560e8e280" TYPE="xfs" PARTUUID="ef631027-816f-4ef7-b901-a0ed5ee88e50" 
/dev/sda7: UUID="794247b9-9e33-4c1d-aead-cbbbcece21e7" TYPE="swap" PARTUUID="b720eb2f-b998-4ad5-b21c-20a15d37a07d" 
/dev/sda8: UUID="380ab965-c64e-49fd-954b-d48620c312a0" TYPE="xfs" PARTUUID="ab899699-439f-4363-b92b-0c1cdf6a026a" 
/dev/loop0: UUID="2016-10-19-18-32-06-00" LABEL="RHEL-7.3 Server.x86_64" TYPE="iso9660" PTTYPE="dos" 
 ##发现正在使用的设备
[root@foundation70 ~]# df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda8       87591132 15492916  72098216  18% /
devtmpfs         1964252        0   1964252   0% /dev
tmpfs            1979244      532   1978712   1% /dev/shm
tmpfs            1979244     9172   1970072   1% /run
tmpfs            1979244        0   1979244   0% /sys/fs/cgroup
/dev/sda6        1038336   149584    888752  15% /boot
/dev/sda2          97280    34697     62583  36% /boot/efi
/dev/loop0       3704296  3704296         0 100% /var/www/html/westos
tmpfs             395852       28    395824   1% /run/user/1000

设备的挂载和卸载

##设备的名称

第一种:/dev/xdx————————磁盘
例如:/dev/hd0 /dev/hd1 ————ide硬盘,一般出现在老式电脑中
/dev/sda /dev/sdb ————sata硬盘,或者iscsi网络存储
/dev/vda1 /dev/vdb1 ————虚拟硬盘,一般出现在虚拟机里面
其中:a表示第一
/dev/vda,系统的第一块虚拟硬盘
/dev/sda1 ,系统中第一个sata硬盘的第一个分区
第二种:/dev/sr0————————光驱
第三种:/dev/mapper/*——————虚拟设备

/dev/xd* #设备名称,d代表硬盘 1. x=s时, /dev/sd* #sata硬盘,或者iscsi网络存储 2. x=v时, /dev/vd* #虚拟硬盘,一般出现在虚拟机里面 *=a~… #eg:/dev/vda,为系统的第一块虚拟硬盘 /dev/sda1 #系统中第一个sata硬盘的第一个分区

##设备的挂载

mount        设备        挂载点        说明
mount        /dev/sdb1      /mnt      挂载sdb1到/mnt
umount        /dev/sdb1   |   /mnt      卸载sdb1(注意两种方式)
mount  -o  ro   /dev/sdb1       /mnt      只读挂载
mount  -a                /mnt      重新加载/mnt中的内容
mount                           查看挂载信息
mount -o remount rw /dev/sdb1     /mnt      重新读写挂载(相当于先卸载再挂载)

将/dev/vdb1挂载到/mnt上
[root@localhost ~]# mount /dev/vdb1 /mnt
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3158600 7315300 31% /
devtmpfs 493408 0 493408 0% /dev
tmpfs 508996 80 508916 1% /dev/shm
tmpfs 508996 13460 495536 3% /run
tmpfs 508996 0 508996 0% /sys/fs/cgroup
##挂载成功
/dev/vdb1 98988 5280 93708 6% /mnt
##卸载
[root@localhost ~]# umount /mnt
##将设备挂载为只读模式
[root@localhost ~]# mount -o ro /dev/vdb1 /mnt
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3158600 7315300 31% /
devtmpfs 493408 0 493408 0% /dev
tmpfs 508996 80 508916 1% /dev/shm
tmpfs 508996 13460 495536 3% /run
tmpfs 508996 0 508996 0% /sys/fs/cgroup
/dev/vdb1 98988 160 98828 1% /mnt
[root@localhost ~]# cd /mnt
## 建立文件建立失败,证明只读
[root@localhost mnt]# touch file
touch: cannot touch ‘file’: Read-only file system
此时若是想写文件,对设备进行热参数更改,从只读模式变为读写模式
[root@localhost mnt]# mount -o remount, rw /mnt
[root@localhost mnt]# touch file
[root@localhost mnt]# ls
file

##设备的永久挂载

[root@localhost ~]# vim /etc/fstab  
/dev/vdb1       /mnt      xfs           defaults        0      0  
 设备名        挂载点   文件系统类型      挂载参数        是否备份  是否检测设备   
[root@localhost ~]# mount -a        #使fstab中未生效的策略生效
[root@localhost ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       10473900 3158688   7315212  31% /
devtmpfs          493408       0    493408   0% /dev
tmpfs             508996      80    508916   1% /dev/shm
tmpfs             508996   13460    495536   3% /run
tmpfs             508996       0    508996   0% /sys/fs/cgroup
/dev/vdb1          98988    5280     93708   6% /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))

当卸载设备时出现 以上内容时,表示该设备正在被系统的某个程序使用
此时发现使用进程是什么: lsof + 设备名 或者 fuser -vm 设备名
进程终止的方式为: kill -9 pid 或者 fuser -kvm 设备名

磁盘分区

在进行磁盘分区之前,我们需要先了解几个概念
1.磁头:磁头是硬盘中对盘片进行读写工作的工具,磁盘转磁头读取信息。
2.盘片:硬盘中一般会有多个盘片组成,每个盘片包含两个面,每个盘面都对应地有一个读/写磁头。
3.磁道:盘面中一圈圈灰色同心圆为一条条磁道。
4.扇区:从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区。扇区是磁盘的最小组成单元,通常是512字节
5.柱面:硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。磁盘的柱面数与一个盘面上的磁道数是相等的。由于每个盘面都有自己的磁头,因此,盘面数等于总的磁头数。
6.磁盘容量计算:存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数。
7.主引导记录(MBR):位于磁盘最前边的一段引导代码,位于0扇面0磁道1扇区 。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统(DOS)在对硬盘进行初始化时产生的。

##主引导记录——512字节

0磁道1扇区512字节,其中446字节,让磁头找系统的启动分区
#完成该动作的最短代码大小为446字节
512-446=66 = 64 + 2
64字节为 mpt主分区表
2字节为 55aa,硬盘有效性标识

一个主分区占用16个字节记录分区信息,故mbr最多有四个主分区
当四个主分区未被完全李荣时,可以将第四个主分区转化为扩展分区,在拓展分区中就可以划分多个逻辑分区。
扩展分区中逻辑驱动器的引导记录是链式的。每一个逻辑分区都有一个和MBR结构类似的扩展引导记录,分区表的第一项指向该逻辑分区本身的引导扇区,第二项指向下一个逻辑驱动器的扩展引导记录。

关于MBR分区必须注意:
1. 在MBR分区表中最多4个主分区或者3个主分区和1个扩展分区,即扩展分区只能有一个
2. 在MBR分区表中,一个分区的最大的容量是2T,且每个分区的起始柱面必须在这个硬盘的前2T内。如果硬盘太大则必须改用GPT

##磁盘分区管理—— fdisk

在进行磁盘分区管理时,我们可以使用fdisk +设备名(/dev/vdb),给/dev/vdb分区

名称 方法
显示所有命令列示 m
添加分区 n
显示硬盘分割情形 p
设定硬盘启动区 a
硬盘为[延伸]分割区(extend) e
硬盘为[主要]分割区(primary) p
改变硬盘分割区属性 t
删除硬盘分割区属性 d
结束不存入硬盘分割区属性 q
结束并写入硬盘分割区属性 w

##磁盘划分具体操作

##给/dev/vdb分区
[root@localhost Desktop]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x17548d22.
##选择m可以出现每个参数的作用,n表示新建一个
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
   ##p表示建立一个主分区(最多四个),n表示建立逻辑分区
Select (default p): p
##选择分区编号,当你选择3时2就不可以使用了,所以默认回车即可
Partition number (1-4, default 1): 
##起始扇区:默认从第2048块扇区
First sector (2048-20971519, default 2048): 
Using default value 2048
##建立的分区大小
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +150M
Partition 1 of type Linux and of size 150 MiB is set
##p显示所有的分区
Command (m for help): p

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: dos
Disk identifier: 0x17548d22

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048      309247      153600   83  Linux
##退出并保存
Command (m for help): wq
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Linux系统之磁盘管理_第1张图片
##格式化建立的分区—— mkfs

  此时虽然分区已经被划分好,但是当我们使用blkid命令时并没有刚才划分出来的分区。所以此时需要格式化文件系统。
  文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
  文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。

  • ext1: ext 是第一个专门为 Linux 的文件系统类型,叫做扩展文件系统。
  • ext2:ext2 是为解决 ext 文件系统的缺陷而设计的可扩展的高性能的文件系统.又被称为 二级扩展文件系统
  • ext3: ext3 是由开放资源社区开发的日志文件系统,. ext3 被设计成是 ext2 的升级版本。
  • XFS: xfs 是一种非常优秀的日志文件系统,它是 SGI 公司设计的.xfs 被称为业界最先进 的,最具可升级性的文件系统技术.它是一个全 64 位,快速,稳固的日志文件系统,
  • jsf: jsf 提供了基于日志的字节级文件系统,该文件系统是为面向事务的高性能系统而开发的。
  • RAMFS:内存文件系统,速度很快
  • ReiserFS: ReiserFS 基于平 衡树结构的 、ReiserFS 文件系统在网上公布.ReiserFS 3.6.x(作为 Linux 2.4 一部分 的版本),设计成员相信最好的文件系统是那些能够有助于创建独立的共享环境或者命名空间的文件系统。
  • NFS:网络文件系统,由SUN发明,主要用于远程文件共享
  • VFAT:WINDOWS 95/98使用
  • FAT:WINDOWS XP使用

在Linux系统中存在的文件系统有ext, ext2, ext3, jsf,ReiserFS和Xfs;其中常用的是xfs。
我们在使用mkfs时,如果你需要格式什么格式,就在后面加上需要的格式。例如:mkfs.xfs
##列出系统中可以使用的分区
[root@localhost Desktop]# blkid
/dev/vda1: UUID=“9bf6b9f7-92ad-441b-848e-0257cbb883d1” TYPE=“xfs”
##查看系统可以找到的分区
[root@localhost Desktop]# cat /proc/partitions
major minor #blocks name
253 0 10485760 vda
253 1 10484142 vda1
253 16 10485760 vdb
253 17 153600 vdb1
##格式化新建的分区,将其格式为xfs格式
[root@localhost Desktop]# mkfs.xfs /dev/vdb1
meta-data=/dev/vdb1 isize=256 agcount=4, agsize=9600 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=38400, 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 Desktop]# blkid
/dev/vda1: UUID=“9bf6b9f7-92ad-441b-848e-0257cbb883d1” TYPE=“xfs”
/dev/vdb1: UUID=“642bfaa9-7441-4f0e-bf4d-4a682c648eab” TYPE=“xfs”

Linux系统之磁盘管理_第2张图片

swap分区管理

  swap分区是交换分区,在系统的物理内存不够用的时候,把物理内存的一部分空间释放出来,以供当前运行的程序使用。这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行的时候,在从Swap分区中恢复保存的数据到内存中。所以swap分区系统自己使用并不需要挂载。

##swap分区的查看

名称 方法
请帮帮我 swapon -h
显示版本讯息 swapon -V
显示简短的装置讯息 swapon -s
自动启动所有SWAP装置 swapon -a
设定优先权 swapon -p

用命令swapon -s来查看

##swap分区的建立

  先要划分一个新的分区,划分分区的方法和主分区的方法相同,不过多赘述。但是在分区建立了之后,把分区的id修改为swap分区。例子如下:

##给/dev/vdb分区
[root@localhost Desktop]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

##建立新的分区
Command (m for help): n
##p建立一个主分区
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (2-4, default 2): 
First sector (309248-20971519, default 309248): 
Using default value 309248
##大小为700M
Last sector, +sectors or +size{K,M,G} (309248-20971519, default 20971519): +700M
Partition 2 of type Linux and of size 700 MiB is set
##修改分区id
Command (m for help): t
Partition number (1,2, default 2): 2
##列出分区所有的id及其对应关系
Hex code (type L to list all codes): L

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1 80  Old Minix   
##swap对应的id号为82   
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'
##显示所有的分区
Command (m for help): p

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: dos
Disk identifier: 0x17548d22

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048      309247      153600   83  Linux
/dev/vdb2          309248     1742847      716800   82  Linux swap / Solaris
##退出并保存
Command (m for help): wq
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Linux系统之磁盘管理_第3张图片
*##设置交换分区——mkswap

##查看系统可以使用的设备
[root@localhost Desktop]# blkid
/dev/vda1: UUID=“9bf6b9f7-92ad-441b-848e-0257cbb883d1” TYPE=“xfs”
/dev/vdb1: UUID=“642bfaa9-7441-4f0e-bf4d-4a682c648eab” TYPE=“xfs”
##将磁盘分区或文件设为Linux的交换区
[root@localhost Desktop]# mkswap /dev/vdb2
Setting up swapspace version 1, size = 716796 KiB
no label, UUID=2c2bd616-65eb-4d89-a0e9-7b41e566ce7b
##查看系统可以使用的设备
[root@localhost Desktop]# blkid
/dev/vda1: UUID=“9bf6b9f7-92ad-441b-848e-0257cbb883d1” TYPE=“xfs”
/dev/vdb1: UUID=“642bfaa9-7441-4f0e-bf4d-4a682c648eab” TYPE=“xfs”
/dev/vdb2: UUID=“2c2bd616-65eb-4d89-a0e9-7b41e566ce7b” TYPE=“swap”

Linux系统之磁盘管理_第4张图片
##激活swap设备

##查看系统可以使用的swap分区
[root@localhost Desktop]# swapon -s
##激活/dev/vdb2的swap分区
[root@localhost Desktop]# swapon -a /dev/vdb2
##查看系统可以使用的swap分区
[root@localhost Desktop]# swapon -s
Filename Type Size Used Priority
/dev/vdb2 partition 716796 0 -1

Linux系统之磁盘管理_第5张图片
##修改为永久的swap分区

在/etc/fstab中填写信息,即可修改为永久的swap分区
/dev/vdb2 swap swap defaults 0 0
Linux系统之磁盘管理_第6张图片

##删除swap分区

  首先删除在/etc/fstab中填写信息,其次使用命令swapoff关闭分区指令;一般这样就可以了,但是你也可以通过fdisk进入磁盘内部再删除该磁盘分区
[root@localhost Desktop]# vim /etc/fstab
##关闭分区
[root@localhost Desktop]# swapoff /dev/vdb2
##查看系统可以使用的swap分区
[root@localhost Desktop]# swapon -s
Linux系统之磁盘管理_第7张图片

配额——usrquota

  磁盘配额可以限制指定账户能够使用的磁盘空间,这样可以避免因某个用户的过度使用磁盘空间造成其他用户无法正常工作甚至影响系统运行。
usrquota是用户配额的意思,grpquota是组配额
edquota命令用于编辑指定用户或工作组磁盘配额
执行quotaon指令可开启用户和群组的磁盘空间限制。
参 数:
-a 开启在/ect/fstab文件里,有加入quota设置的分区的空间限制。
-g 开启群组的磁盘空间限制。
-u 开启用户的磁盘空间限制。
-v 显示指令执行过程。

##将第一个(SATA)硬盘的第一分区挂在到/mnt这个目录里面
[root@localhost Desktop]# mount -o usrquota /dev/vdb3 /mnt
##修改/mnt权限
[root@localhost Desktop]# chmod 777 /mnt
##开启用户的磁盘空间限制,显示指令执行过程。
[root@localhost Desktop]# quotaon -uv /dev/vdb3
quotaon: Enforcing user quota already on /dev/vdb3
##编辑student用户磁盘配额
[root@localhost Desktop]# edquota -u student /dev/vdb3
edquota: WARNING - /dev/vdb3: cannot change current inode allocation
edquota: user /dev/vdb3 does not exist.
Linux系统之磁盘管理_第8张图片
##负责配置Linux开机时自动挂载的分区
[root@localhost Desktop]# vim /etc/fstab
Linux系统之磁盘管理_第9张图片
##指定无限空文件截取200M大小到/mnt/studentfile,成功
[root@localhost Desktop]# dd if=/dev/zero of=/mnt/studentfile bs=1M count=200
200+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 0.286759 s, 731 MB/s
##指定无限空文件截取200M大小到/mnt/studentfile,成功
[root@localhost Desktop]# dd if=/dev/zero of=/mnt/studentfile bs=1M count=200
200+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 0.333896 s, 628 MB/s
##指定无限空文件截取2G小到/mnt/studentfile,失败,只能截取1893531648 bytes (1.9 GB)
[root@localhost Desktop]# dd if=/dev/zero of=/mnt/studentfile1 bs=1M count=2000
dd: error writing ‘/mnt/studentfile1’: No space left on device
1806+0 records in
1805+0 records out
1893531648 bytes (1.9 GB) copied, 3.50087 s, 541 MB/s
##指定无限空文件截取4G大小到/mnt/studentfile,失败,只能截取1893531648 bytes (1.9 GB)
[root@localhost Desktop]# dd if=/dev/zero of=/mnt/studentfile1 bs=1M count=4000
dd: error writing ‘/mnt/studentfile1’: No space left on device
1806+0 records in
1805+0 records out
1893531648 bytes (1.9 GB) copied, 3.28914 s, 576 MB/s
##建立file{1…4}四个文件,只建立了一个文件,其余三个文件建立失败
[root@localhost Desktop]# touch /mnt/file{1…4}
touch: cannot touch ‘/mnt/file1’: No space left on device
touch: cannot touch ‘/mnt/file2’: No space left on device
touch: cannot touch ‘/mnt/file3’: No space left on device
touch: cannot touch ‘/mnt/file4’: No space left on device
Linux系统之磁盘管理_第10张图片

dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
if=文件名:即指定源文件;of=文件名:即指定目的文件; bs:同时设置读入/输出的块大小为bytes个字节; count=n指仅拷贝n个块;/dev/zero:无限空设备

其中blocks表示可存在的文件大小,soft为软额度,hard为最大额度,inodes为可存在文件个数

blocks和soft都是一个真实存在的,所以无法修改,我们只能改变hard和inodes来控制配额

磁盘加密——cryptsetup

加密原理:磁盘分区的加密主要是其中的文件的加密,因为在文件上面会用一层文件系统来对文件进行管理。如果说加密在文件系统上的话,破解加密算法之后,文件仍然读取的是明文,并不安全。所以加密系统应该直接对文件来进行加密,而不是对文件系统进行加密,对文件直接进行加密,那么即使加密算法被破解,别人读取出来的仍然是加密过的密文,文件并不会泄露。


##查看系统中可识别的磁盘
[root@localhost Desktop]# blkid
/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs" 
/dev/vdb2: UUID="2c2bd616-65eb-4d89-a0e9-7b41e566ce7b" TYPE="swap" 
/dev/vdb3: UUID="0d855b8b-2979-4dfe-81a9-6232ec056336" TYPE="xfs" 
/dev/vdb1: UUID="85c60acc-b9e6-4af4-ac85-f2ddbd4360fd" TYPE="xfs" 
/dev/vdb5: UUID="c6b0a6fc-313f-4636-8553-9c4c9af1d6b2" TYPE="xfs" 
##对/dev/vdb5进行磁盘加密
[root@localhost Desktop]# cryptsetup luksFormat /dev/vdb5

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

##这里必须输入大写的YES,小写不识别
Are you sure? (Type uppercase yes): YES
Enter passphrase: 
Verify passphrase: 
##只有打开加密,才能对该分区进行使用;在 /dev/mapper/文件夹下出现一个虚拟设备的文件tian(自定义名称)
[root@localhost Desktop]# cryptsetup open /dev/vdb5 tian
Enter passphrase for /dev/vdb5: 
##格式化虚拟设备的文件tian
[root@localhost Desktop]# mkfs.xfs /dev/mapper/tian 
meta-data=/dev/mapper/tian       isize=256    agcount=4, agsize=95872 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=383488, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
##新建一个挂载点
[root@localhost Desktop]# mkdir /cai
##将虚拟设备中的tian挂载
[root@localhost Desktop]# mount /dev/mapper/tian /cai
[root@localhost Desktop]# touch /cai/file{1..5}
[root@localhost Desktop]# ls /cai/
file1  file2  file3  file4  file5
[root@localhost Desktop]# umount /cai
##关闭后,会发现/dev/mapper/westos消失
[root@localhost Desktop]# cryptsetup close tian
[root@localhost Desktop]# ls /cai/
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190731094847553.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JyZWFkX3dpbm5lcg==,size_16,color_FFFFFF,t_70)

##磁盘解密

若是想查看加密分区的文件,只能再次打开加密,输入密码,进行挂载查看。

##开启加密文件
[root@localhost Desktop]# cryptsetup open /dev/vdb5 tian
Enter passphrase for /dev/vdb5:
[root@localhost Desktop]# ls /cai
##挂载到目录上
[root@localhost Desktop]# mount /dev/mapper/tian /cai
[root@localhost Desktop]# ls /cai
file1 file2 file3 file4 file5

Linux系统之磁盘管理_第11张图片
##加密设备开机自动挂载

第一步:编写/etc/fstab文件
/dev/mapper/westos /mnt xfs defaults 0 0
设备名 挂载点 文件系统类型 挂载参数 是否备份 是否检测设备
第二步:编写/etc/crypttab
westos /dev/vdb1 /root/passfile
编写这个文件是因为每次对加密分区进行操作的时候,需要打开加密,输入密码,该文件会把加密分区和设置的密码文件联系起来。
第三步:编写密码文件/root/passfile
这个文件里面直接写加密分区的时候设置的密码即可。但要记得给这个文件权限,600即可。
chmod 600 /root/passfile
第四步:设备文件与密码关联
cryptsetup luksAddKey /dev/vdb1 /root/passfile

加密清除应注意操作顺序

  • 先卸载/dev/mapper/westos
  • 关掉加密cryptsetup close westos
  • 对分区进行格式化mkfs.xfs /dev/vdb1 (-f)
  • 删除/etc/fstab文件添加的所有配置
  • 删除/etc/crypttab文件的修改
  • 删除/root/passfile密码文件

你可能感兴趣的:(linux)