一、磁盘相关内容
1. 磁盘
一种计算机存储设备,由一个或多个磁性盘片组成,盘片由磁性材料制成,可读写。一般装在计算机内部,也可外接。
2. 作用
读取数据,数据都在磁盘上,磁盘、磁头、磁头臂相互协作,进行数据读写。
3. 数据的组织和格式
磁盘设备可包括一或多个物理盘片;
每个盘片分一个或两个存储面;
每个存储面分成若干个磁道;
每条磁道被划分成若干个扇区。
数据存放在扇区中,写在扇区中,一个硬盘表面可以有多个扇面,每个扇面的磁道数相同,具有相同的磁道的圆柱成为柱面,柱面数与磁道数相等。
扇区:
- 每一个磁道以512字节(512byte,0.5kb)划分。
- 文件数据存储在硬盘上,扇区是硬盘最小存储单位
- 操作系统在磁盘上以多个连续的扇区进行读取,连续的扇区称为块(block)
- 操作系统进行文件读取最小单位是8个扇区,4kb
计算机单位:
对于计算机,识别二进制,称为bit,由于bit单位太小,计算机又用byte单位来统计。1byte=8bit
Bit——位
Byte——字节 1byte=8bits
KB——千字节 1KB=1024bytes
MB——兆字节 1MB=1024KB
GB——千兆字节 1GB=1024MB
4. 磁盘分区
Windows中被分为C盘、D盘等,Linux中可以使用fdisk对磁盘进行格式化、分区等等,划分为不同的分区,就可以在不同的分区中存放不同的数据。
硬盘设备是由大量的扇区组成的,每个扇区的容量为512字节,其中第一个扇区最重要。第一个扇区里面保存着主引导记录与分区表信息。就第一个扇区来讲,主引导记录需要占用446个字节,分区表为64个字节,结束符占用2个字节;其中分区表中每记录一个分区信息就需要16个字节,这样最多只有4个分区信息可以写到第一个扇区中,这4个分区就是4个主分区。第一个扇区中的数据信息如图所示。
第一个扇区最多只能创建出4个分区,为了解决分区个数不够的问题,将第一个扇区的分区表中的16个字节(原本要写入主分区信息)的空间(称之为扩展分区)拿出来指向另外一个分区。也就是说,扩展分区其实并不是一个真正的分区,而更像是一个占用16个字节分区表空间的指针——一个指向另外一个分区的指针。这样用户一般会选择使用3个主分区加1个扩展分区的方法,然后在扩展分区中创建出数个逻辑分区,从而来满足多分区(大于4个)的需求。主分区、扩展分区、逻辑分区可以像下图那样来规划。
在系统里放不同的硬件设备,在系统中读取的名字不一样,通过命名区分。
硬件设备 | 文件名称 |
---|---|
SCSI/SATA/U盘 | /dev/sd[a-p] |
软驱 | /dev/fd[0-1] |
打印机 | /dev/lp[0-15] |
光驱 | /dev/cdrom |
鼠标 | /dev/mouse |
磁带机 | /dev/st0或/dev/ht0 |
一般的硬盘设备都会是以“/dev/sd”开头的。而一台主机上可以有多块硬盘,因此系统采用a~p来代表16块不同的硬盘(默认从a开始分配),而且硬盘的分区编号也有如下规定。
- 主分区或扩展分区的编号从1开始,到4结束。
- 逻辑分区从编号5开始。
- 主分区和扩展分区加一起不超过4个,逻辑分区没有限制。
比如“/dev/sda5”表示的就是“这是系统中第一块被识别到的硬件设备中分区编号为5的逻辑分区的设备文件”。
二、磁盘使用过程
1.磁盘分区
1.fdisk命令
对硬盘进行分区时,在fdisk命令后面直接加上要分区的硬盘作为参数。
在command提示后面输入相应的命令来选择需要的操作,常见的如下:
命令 | 功能 |
---|---|
n | 创建新分区 |
d | 删除硬盘分区 |
t | 更改分区类型 |
p | 列出硬盘分区表 |
w | 把修改写入硬盘分区表,然后退出 |
q | 不保存更改,退出fdisk命令 |
分区操作如下:
(1)fdisk -l
查看系统当中所有硬盘的分区情况。
(2)fdisk /dev/sdb
查看/dev/sdb分区
创建一个主分区
创建一个扩展分区
在扩展分区的基础上创建逻辑分区
w保存退出
2.格式化
不同的操作系统所使用的文件系统各不相同,为了存放这些文件所需的数据,就需要将分区进行格式化,以成为操作系统能够识别、兼容的文件系统。
格式化文件系统命令:mkfs
mkfs [参数] 文件系统
-t:指定要创建的文件系统类型。
或者mkfs.文件系统
-c:建立文件系统前首先检查坏块。
-V:输出建立文件系统详细信息。
操作如下:
(1)lsblk -f查看系统分区文件类型
(2)对/dev/sdb1格式化为ext4文件类型
再次查看
df命令
df [选项]
df命令用来查看文件系统的磁盘空间占用情况。获取硬盘被占用了多少空间,以及目前还有多少空间等信息,还可以利用该命令获得文件系统的挂载位置。
-a:显示所有文件系统磁盘使用情况,包括0块的文件系统。
-k:以k字节为单位显示。 1k-blocks,文件系统总大小,默认以KB为单位。
-i:显示i节点信息。
-t:显示各指定类型的文件系统的磁盘空间使用情况,后面需要加上具体文件类型。
-x:列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
-T:显示文件系统类型。
-h:使用人们习惯的 KB、MB 或 GB 等单位自行显示容量。
du命令
du [参数选项] [文件或目录名称]
du命令用于显示磁盘空间的使用情况。该命令逐级显示指定目录的每一级子目录占用文件系统数据块的情况。
-s:仅显示总计,只列出最后加总的值。
-h:以K,M,G为单位,提高信息的可读性
-a:递归显示指定目录中各文件及子目录中各文件占用的数据块数。
-b:以字节为单位列出磁盘空间使用情况(AS 4.0中默认以KB为单位)。
-k:以1024字节为单位列出磁盘空间使用情况。
-c:在统计后加上一个总计(系统默认设置)。
-l:计算所有文件大小,对硬链接文件重复计算。
-x:跳过在不同文件系统上的目录,不予统计。
3.挂载
(1)mount命令
mount 选项 设备 挂载点
在磁盘上建立好文件系统之后,还需要把新建立的文件系统挂载到系统上才能使用。一定要先格式化文件系统,再挂载使用。
-l:显示系统所有挂载的设备信息
-t:指定要挂载的文件系统的类型。
-r:如果不想修改要挂载的文件系统,可以使用该选项以只读方式挂载。
-w:以可写的方式挂载文件系统。
把文件系统类型为ext4的磁盘分区/dev/sdb1挂载到/newFS目录下
[root@RHEL7-1 ~]# mount -t ext4 /dev/sdb1 /newFS
(2)umount命令
umount 设备 挂载点
卸载文件系统,可以是设备,也可以是挂载点,注意正在使用的文件系统不能卸载。
[root@RHEL7-1 ~]# umount /dev/cdrom
操作如下:
再次查看
卸载
正在使用文件系统是不能卸载
(3)文件系统的自动挂载
通过编辑/etc/fstab文件来实现,在后面添加一行分区对应的信息即可。
[root@RHEL7-1 ~]# cat /etc/fstab
# This file is edited by fstab-sync - see 'man fstab-sync' for details
LABEL=/ / ext4 defaults 1 1
LABEL=/boot /boot ext4 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
LABEL=SWAP-sda2 swap swap defaults 0 0
/dev/sdb2 /media/sdb2 ext4 rw,grpquota,usrquota 0 0
/dev/hdc /media/cdrom auto pamconsole,exec,noauto,managed 0 0
/dev/fd0 /media/floppy auto pamconsole,exec,noauto,managed 0 0
该行从左至右各字段的含义如下:
字段 | 含义 | |
---|---|---|
fs_spec | 设备文件 | 一般为设备的路径+设备名称,也可以是唯一识别码UUID |
fs_file | 挂载目录 | 指定要挂载到的目录,挂载点需要提前创建好 |
fs_vfstype | 格式类型 | 指定文件系统的格式,比如ext3、ext4、xfs等 |
fs_mntops | 权限选项 | 若设置为defaults,则默认权限为:rw, suid, dev, async |
fs_freq | 是否备份 | 1为开机后使用dump进行磁盘备份,0为不备份 |
fs_passno | 是否自检 | 1为开机后自动进行磁盘自检,0为不自检 |
如果实现每次开机自动将文件系统类型为vfat的分区/dev/sdb3自动挂载到/media/sdb3目录下,需要在/etc/fstab文件中添加下面一行内容。这样,重新启动计算机后,/dev/sdb3就能自动挂载了
/dev/sdb3 /media/sdb3 vfat defaults 0 0
4.读写数据
上述三步骤完成后,就可以进行读写数据了。
三、配置与管理磁盘配额
目的:限制用户和组群对磁盘空间的使用。
通过索引节点数和磁盘块区数限制用户和组群对磁盘空间的使用。
索引节点数:用户和组可以创建的文件数量。
磁盘块区数:用户和组可以使用的磁盘容量。
设置系统的磁盘配额分为4个步骤。
1.启动系统的磁盘配额功能
(1)格式化文件系统
以/devsdb2为例,ext4文件系统,挂载到/disk2
mkfs –t ext4 /dev/sdb2
(2)启动文件系统的磁盘配额功能
编辑/etc/fstab文件同时完成挂载和启动磁盘配额功能
加入usrquota项,启动用户的磁盘配额功能
加入grpquota项,启动组的磁盘配额功能
vim /etc/fstab
/dev/sdb2 /disk2 ext4 defaults,usrquota,grpquota 0 0
(3)重启生效
reboot
2.创建配额文件
命令:quotacheck
生成磁盘配额文件
aquota.usr 用户的磁盘配额文件
aquota.grp 组的磁盘配额文件
quotacheck –cvug /dev/sdb2
c:生成配额文件
v:显示详细执行过程
u:检查用户的磁盘配额
g:检查组的磁盘配额
3.设置用户和组群的磁盘配额
对用户和组群的磁盘配额限制分为两种。
软限制 soft limit:用户和组在文件系统上可以使用的磁盘空间和文件数。当超过软限制之后,在一定期限内用户仍可以继续存储文件,但系统会对用户提出警告,建议用户清理文件,释放空间,超过警告期限后用户就不能再存储文件了。取值为0表示不受限制。
对用户和组群的磁盘配额限制分为两种。
硬限制 hard limit:用户和组可以使用的最大磁盘空间或最多的文件数,超过之后用户和组将无法再在相应的文件系统上存储文件。取值为0,表示不受限制。
软限制的数值应该小于硬限制的数值。
命令:edquota
设置用户磁盘配额:edquota –u 用户名
设置组磁盘配额:edquota –g 组名
例:具体的限额控制包括:硬盘使用量的软限制和硬限制分别为3MB和6MB;创建文件数量的软限制和硬限制分别为3个和6个。
对多个用户进行相同设置,不用单独为每个用户配置文件。
edquota –p 参考用户 待设置用户
要给用户user2设置和user1一样的磁盘配额。
edquota –p user1 user2
对多个组群进行相同设置
edquota –gp group1 group2
4.启动磁盘限额功能
在设置好用户及组群的磁盘配额后,磁盘配额功能还不能使用,必须启动磁盘配额功能,才能使用。
命令:
启动:quotaon
关闭:quotaoff