一.设备的管理
1、本地存储设备的识别
命令 | 功能 |
---|
fdisk -l | 查看本地真实存在的设备(包括可用以及不可用的) |
cat /proc/partitons | 查看系统设别的设备(未识别不显示) |
blkid | 查看系统可使用的设备(有的设备存在但不可使用) |
df | 查看系统正在挂载的设备 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5997bae7d865edd507d3b07e0eac61f0.png)
2、设备如何挂载及卸载
(1)什么是挂载及卸载
挂载:
指由操作系统使一个存储设备(如硬盘、CD-ROM、共享资源等)上的计算机文件和目录可供用户通过计算机的文件系统访问的一个过程。
卸载:
从硬盘删除程序文件和文件夹以及从注册表删除相关数据的操作,释放原来占用的磁盘空间并使其软件不再存在于系统中或是从硬盘删除对应的设备驱动程序并删除和设备驱动有关的注册表信息,然后再从计算机物理设备移除设备(一般这里用户更新升级计算机的物理设备用,如果不用移除物理设备,多指更新设备驱动程序)。
(2)设备名称解读
命令 | 功能 |
---|
/dev/xdx | x可被替代,例:/dev/hd0、/dev/sda、/dev/sdb2 |
/dev/sr0 | 光驱 |
/dev/mapper/* | 虚拟设备 |
(3)挂载设备
命令 | 功能 |
---|
fdisk -l | 查看设备名称 |
mount 设备名 挂载点 | 将该设备挂载到挂载点 |
mount /dev/sdb2 /mnt/abc | 将sdb2挂载到/mnt/abc |
mount -o ro /dev/sdb2 /mnt/abc | 以只读的权限挂载sdb2到/mnt/abc(只可在没有挂载到该目录时使用,若已挂载则不能使用) |
mount -o remount,ro /dev/sdb2或/mnt/abc | 重新挂载sdb2,权限改为只读 |
mount | 查看挂载的信息(可以看权限) |
df | 查看是否挂载 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5b70646c272151b2d8c0329505921beb.png)
(4)卸载设备
命令 | 功能 |
---|
umount /mnt/abc或mount /dev/sdb2 | 将sdb2卸载 |
df | 查看是否卸载 |
(5)设备正忙时如何解决
命令 | 功能 |
---|
fuser -vm /mnt/abc或/dev/sdb2 | 查看sdb2当前正在运行的进程 |
fuser -kvm /mnt/abc或/dev/sdb2 | 退出当前sdb2正在运行的进程,使sdb2空闲 |
lsof /mnt/abc或/dev/sdb2 | 查看sdb2当前正在运行的进程 |
kill -9 进程号 | 用查出的进程号关闭进程使sdb2空闲 |
umount /mnt/abc或mount /dev/sdb2 | 空闲后可将sdb2卸载 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8f5c6d4c3a70ce3c9b579c614e96f6f9.png)
二.磁盘分区管理
1、磁盘读取设定
开机时读取默认磁道(0磁道),所以在默认开始读取的0磁道1扇区的512个字节中记录以下信息:
512=446+64+2
[1] [2] [3][4]
编号 | 意义 |
---|
[1]信息总大小 | 指示了去读取设定好的系统磁盘 |
[2]mbr(主引导记录) | 指示去读设定好的分区 |
[3]mpt(主分区标) | 指示分区的位置 |
[4]55aa(硬盘的有效性标识) | 表示有效 |
2、磁盘分区原则
(1)分区标有64个字节,每个分区占16个字节,所以一块硬盘上最多可以划分4个主分区。
(2)若需求在4个分区以上,则可以将最后一个(最大化利用资源)分区划为扩展分区,在扩展分区内建立逻辑分区,则可划分4个以上分区。
(3)扩展分区被删除时,包含的逻辑分区也全部被删除,一个磁盘只能建立一个扩展分区。
3、分区步骤
(1)fdisk -l 查看现有磁盘名称
(2)fdisk /dev/vdb 使用命令给vdb磁盘进行分区管理
命令 | 功能 |
---|
m | 列出所有可选命令(m for help) |
a toggle a bootable flag | 调整硬盘的启动分区 |
b edit bsd disklabel | 编辑bsd磁盘标签 |
c toggle the dos compatibility flag | 切换dos的兼容性标志 |
d delete a partition | [常用]删除一个硬盘分区 |
g create a new empty GPT partition table | 建立一个新的空的GPT分区表 |
G create an IRIX(SGI) partition table | 建立一个IRIX(SGI)分区表 |
l list known partition types | 列出所有支持分区类型 |
m print this menu | [常用]列出所有可选命令(m for help) |
n add a new partition | [常用]建立一个新的硬盘分区 |
o create a new empty DOS partition table | 建立一个新的空的DOS分区表 |
p print the partition table | [常用]列出硬盘分区表 |
q quit without saving changes | [常用]退出不保存更改 |
s create a new empty Sun disklabel | 建立一个新的空的Sun磁盘标签 |
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) | 额外的功能(仅专家使用) |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e1dae6525e8bf70010b3ac808bc54492.png)
4、给设备安装文件系统
(1)为什么需要安装文件系统
将软件与硬盘对接起来
(2)有哪些文件系统
命令 | 功能 |
---|
ext3 rhel5及之前的版本 | 理论:最多支持32TB系统,和2t大的文件;实际:受实际硬件限制,只能支持2tb文件系统,16G大文件 |
ext4 rhel6 | 理论:最多支持1EB系统,和16TB大的文件 |
xfs rhel7(现用版本) | 理论:最多支持18EB系统,和9eb大的文件,下载速度7G/S,上传速度4G/s |
(3)给设备安装文件系统
命令 | 功能 |
---|
mkfs.xfs /dev/vdb1 | 将该新建分区格式化,使其可以使用(扩展分区无法使用) |
mount /dev/vdb1 /mnt | 临时将vdb1挂载到/mnt下,系统重启后将消失 |
vim /etc/fstab | 修改自动挂载策略文件,永久挂载vdb1 |
/dev/vdb1(设备名) /mnt(挂载点) xfs(文件系统) defaults(挂载参数) 0(是否备份) 0(是否检测) | 添加完成后,退出保存 |
umount /dev/vdb1 | 卸载vdb1 |
df | 查看是否卸载 |
mount -a | 重新读取策略文件 |
df | 查看是否自动挂载 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c50348f467484314a8bb6654bbb8f736.png)
5、swap分区的管理
(1)建立swap分区
命令 | 功能 |
---|
fdisk /dev/vdb | 建立新的分区vdb6,并将标签设定为82(按t更改) |
partprobe | 手动更新磁盘分区表 |
mkswap /dev/vdb6 | 将该分区格式化并该为swap格式 |
swapon /dev/vdb6 | 激活swap分区(临时) |
swapon -s | 查看swap分区信息 |
vim /etc/fstab | 修改/etc/fstab文件 |
/dev/vdb6 swap swap defaults 0 0 | 永久激活swap分区 |
(2)删除swap分区
命令 | 功能 |
---|
vim /etc/fstab | 修改/etc/fstab文件 |
/dev/vdb6 swap swap defaults 0 0 | 删除该行,防止重启后swap分区自动激活 |
swapoff /dev/vdb6 | 停止swap分区 |
swapon -s | 查看swap分区信息 |
附:
命令 | 功能 |
---|
swapon -a | 自动启动所有swap装置(读取/etc/fstab文件) |
swapon -a 设备名 | 临时激活swap分区 |
swapoff -a | 自动停止所有swap装置(读取/etc/fstab文件) |
swapoff -a 设备名 | 临时停止swap分区 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/23b3923b1a61f171094a4feecfe68fca.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5877669598649a8f5bbc27c106673c9c.png)
6、配额
针对分区进行配额,限制每个用户可以写入公共目录的最大内存容量的数据
(1)如何给student配额
命令 | 功能 |
---|
mount -o usrquota /dev/vdb1 /public | 临时挂载该分区到公共目录,设定挂载时的服务权限,添加usrquota |
mount | 查看usrquota是否加入 |
chmod 1777 /public | 修改该目录权限,使目录有应有的功能 |
edquota -u student /dev/vdb1 | 修改该文件,对student用户的配额进行设定 |
vim /etc/fstab | 修改该文件永久设定 |
/dev/vdb1 /public xfs defaults,usrquota 0 0 | 将usrquota永久设定 |
(2)测试
命令 | 功能 |
---|
su - student | 登陆到student用户进行操作 |
dd if=/dev/zero of=/public/studentfile bs=1M count=5 | 加入合理大小 |
dd if=/dev/zero of=/public/studentfile bs=1M count=200 | 加入超过配额的大小,看是否成功,失败则配额成功 |
(3)如何取消student配额
命令 | 功能 |
---|
vim /etc/fstab | 修改该文件,将usrquota删除,否则重启后会自动激活服务 |
quotaoff /dev/vdb1 | 关闭vdb1的配额服务 |
(4)测试
命令 | 功能 |
---|
su - student | 登陆到student用户进行操作 |
dd if=/dev/zero of=/public/studentfile bs=1M count=200 | 加入超过配额的大小,看是否成功,成功则取消配额成功 |
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019102820360782.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzIzODE5NA==,size_16,color_FFFFFF,t_70)
(5)有关dd命令的解释
参数 | 意义 |
---|
if=文件名 | inputfile输入文件名,缺省为标准输入,即指定源文件 |
of=文件名 | outputfile输出文件名,缺省为标准输出,即指定目的文件 |
ibs=bytes | 一次读入bytes个字节,即指定一个块,大小为bytes个字节 |
obs=bytes | 一次输出bytes个字节,即指定一个块,大小为bytes个字节 |
bs=bytes | 同时设置读入/读出的块,大小为bytes个字节 |
cbs=bytes | 一次转换bytes个字节,即指定转换缓冲区大小 |
skip=blocks | 从输入文件开头跳过blocks个块后再开始复制 |
seek=blocks | 从输出文件开头跳过blocks个块后再开始复制(通常只有当输出文件使磁盘或者磁带时才有效) |
cout=blocks | 仅拷贝blocks个块,块大小=ibs或bs指定的字节数 |
conv=conversion | 用指定的参数转换文件 |
7、给磁盘进行加密
命令 | 功能 |
---|
cryptsetup luksFormat /dev/vdb3 | 加密vdb3设备,策略为LUKS |
cryptsetup open /dev/vdb3 name | 解密vdb3设备,名为name |
ls /dev/mapper | 解密后在此目录显示,查看该目录是否有 |
mkfs.xfs /dev/mapper/name | 格式化该解密后设备,使设备可以使用 |
mount /dev/mapper/name /dir | 挂载该设备至/dir目录 |
df | 查看挂载是否成功 |
touch /dir/file{1…5} | 建立文件测试 |
ls /dir | 查看目录中是否有文件,此时应有 |
umount /dir | 卸载设备 |
ls /dir | 查看目录中是否有文件,此时应无 |
cryptsetup close name | 加密名为name的vdb3设备,加密后想要查看设备中的文件时,需解密挂载再查看,解密需要输入密码,做到给设备加密 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7dbbf2a21b13a94a1681c6e59562ff38.png)
8、使加密磁盘开机自动挂载
(1)设定
命令 | 功能 |
---|
vim /etc/crypttab | 修改该文件 |
name(解密产生的文件名) /dev/vdb3(加密的设备) /root/dirkey(存放解密密码的文件) | 修改完成后退出保存 |
vim /root/dirkey | 修改存放解密密码的文件 |
2019WESTOS | 输入之前设置的密码(个人设置) |
cryptsetup luksAddKey /dev/vdb3 /root/dirkey | 用该策略将密码文件与加密设备对应,开机时自动输入 |
vim /etc/fstab | 修改该文件 |
/dev/mapper/name /dir xfs defaults 0 0 | 永久挂载该设备至/dir目录,则开机自动挂载 |
chmod 600 /root/dirkey | 设置密码文件的权限,使文件安全等级更高 |
(2)测试
命令 | 功能 |
---|
reboot | 设置完成后重启虚拟机 |
df | 启动虚拟机后,查看是否挂载 |
(3)如何排错
命令 | 功能 |
---|
vim /etc/fstab | 查看是否正确 |
vim /etc/crypttab | 查看是否正确 |
vim /etc/dirkey | 查看是否正确,若密码匹配不正确,可通过以下命令重新设定密码匹配 |
cryptsetup luksRemoveKey /dev/vdb3 /root/dirkey | 移除密码匹配关系 |
cryptsetup luksAddKey /dev/vdb3 /root/dirkey | 重新设定密码匹配 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a5a2c2c7d492d517edbf5c48a9bcabd4.png)
9、如何删除磁盘分区
命令 | 功能 |
---|
vim /etc/fstab | 删除设定的所有内容 |
df | 查看现在挂载的设备 |
umount /dev/vdb? | 卸载现在挂载着的所有设备 |
swapon -s | 查看是否有swap设备挂载 |
blkid | 查看所有可使用的设备,若有解密中的设备则取消解密 |
cryptsetup close name | 加密名为name的vdb3设备 |
blkid | 查看是否还能看到加密设备,应为否 |
fdisk /dev/vdb | 执行后输入d和序号删除所有分区,w退出保存即可 |