1.为什么要进行磁盘管理?
磁盘管理是一项计算机使用时的常规任务,它是以一组磁盘管理应用程序的形式提供给用户的
它们位于"计算机管理"控制台中.它包括查错程序和磁盘碎片整理程序以及磁盘整理程序
2.本地存储设备的识别
fdisk -l | 查看系统真实存在的设备 |
---|---|
cat /proc/partition | 查看被系统已经识别的设备 |
blkid | 查看系统可以使用的设备 |
df | 查看系统正在挂载使用的设备 |
eg:
3.设备的挂载和卸载
(1).设备名称
/dev/xdx 包括:/dev/hd0;/dev/hd1; /dev/sda; /dev/sdb; /dev/sda1; /dev/sda2; /dev/sdb1
/dev/sr0 光驱 包括: /dev/cdrom
/dev/mapper/*虚拟设备
查看系统真实存在的硬盘设备,看到的不一定是系统能识别的
存在的,不一定是识别的
可识别的,不一定是能使用的
能使用的,不一定是正在用的
这三个都不一样,均用不同的命令去查看
系统真实存在的不一定能被识别,能识别的不一定能被用,能用的不一定是正在用
(2).设备的挂载和卸载
mount 设备目录 挂载点目录:将一个东西挂载到另外一个地方,使它生效
mount /dev/设备 挂载点
mount /dev/sdb1 /mnt/ ##挂载sdb1到/mnt
umount /mnt | /dev/sdb1 ##卸载
mount -o ro /dev/sdb1 /mnt #只读挂载
mount #查看挂载信息
mount -o remount,rw /dev/sdb | /mnt ##重新读写挂载
4 .解决设备正忙情况
[root@foundation16 ~]# umount /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
fuser -kvm /mnt
umount /mnt
[root@foundation16 ~]# fuser -kvm /mnt/
USER PID ACCESS COMMAND
/mnt: root kernel mount /mnt
root 5089 ..c.. bash
root 5382 F.c.. vim
解决方法2
lsof /mnt
kill -9 pid号
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 5556 root cwd DIR 8,17 16384 1 /mnt
vim 5597 root cwd DIR 8,17 16384 1 /mnt
vim 5597 root 4u REG 8,17 12288 2659 /mnt/.file.swo
[root@foundation16 ~]kill -9 5556 5597(pid号)
当设备正在忙时怎么解决?总结
插上u盘,df查看挂载情况
cd 进入u盘挂载目录,打开一个文件或者进入一个目录
重新打开一个shell执行如下操作:
umount /dev/sdb1 发现不能卸载,发现正在忙
fuser -vm /dev/sdb1 查看进程
lsof /dev/sdb1 查看进程
以上两种情况查看出来进程id之后,可以使用kill -9 id号码结束进程
fuser -kvm /dev/sdb1 查看并且结束
umount /dev/sdb1 此时发现就可以卸载了
5. 磁盘分区
硬盘0磁道1扇区的512个字节中记录的信息如下
512=446 + 64 + 2
^ ^ ^
mbr(主引导记录) mpt(主分区表) 55aa(硬盘的有效性标识)
dos或者mbr方式分区的分区表如下:主分区+扩展分区(扩展分区里面的分区块叫逻辑分区)不能超过16个(id=0~16)
dos(mbr)单个分区大小不能超过2t
1个分区占用16个字节
1块硬盘上最多可以划分4个主分区
给硬盘进行分区的具体步骤如下:
(1)fdisk -l 查看可以进行分区的硬件设备
(2)fdisk /dev/vdb 进入它的分区界面
按下m:查看各个参数的功能(知道常用的即可)
d delete a partition | 删除 |
---|---|
n add a new partition | 新建 |
p print the partition table | 显示分区信息 |
q quit without saving changes | 退出分区界面 |
t change a partition’s system id | 修改分区id |
w write table to disk and exit | 保存分区标信息到硬盘 |
(3)建立主分区
(4)当系统已经有三个主分区时,现在需要划分扩展分区
(5)将划分好的三个主分区和一个扩展分区保存(wq)
(6)fdisk -l 可以查看到新建的分区
注意:
再次进入分区界面建立的就是逻辑分区了
主分区个数+扩展分区个数+逻辑分区个数不能超过16个
6.设备格式化及挂载
主分区和扩展分区格式化之后才能用
先格式化再挂载,df才能查看得到
有以下三种文件系统类型:
ext3 rhel5及之前的版本 最多支持32TB的文件系统和2t文件,实际2tb文件系统,16G文件
ext4 rhel6 1EB 16TB
xfs rhel7 18EB 9eb 7G/s 4G/s
步骤一:df查看挂载状态,可以看到/dev/vdb1 并没有挂载
步骤二:mkfs.xfs /dev/vdb1格式化这个分区
步骤三:mount /dev/vdb1 /mnt将这个分区挂载在一个目录上才能生效,df查看挂载状态
注意:以上是临时的生效方式
步骤四:umount /mnt取消这个临时挂载,df查看挂载状态
步骤五:设置永久挂载
vim /etc/fstab(永久生效),写入以下内容
设备 | 挂载点 | 文件系统 | 挂载参数 | 是否备份 | 是否检测 |
---|---|---|---|---|---|
/dev/vdb1 | /mnt | xfs | defaults | 0 | 0 |
步骤六:mount -a(挂载),df查看挂载状态
注意: 如果文件写的有问题,系统起不来的时候怎么办?
进入文字界面,给一个root密码,然后进入shell
vim /etc/fstab (将文件改成正确的格式)
exit退出
如果还不行,在真机里面打开shell poweroff虚拟机,再start就好了
7.swap分区管理
(1)什么是swap分区?
swap分区建立是当内存不够用时用这个分区
(2)swap分区的建立
先在划分分区,再设定分区标签为82(在划分分区的时候按下t设置标签为82)
步骤一:先划分一个分区(必须有分区存在,之前的步骤,)
步骤二:将刚才划分的主分区该为swap分区
步骤三:将刚才建立的swap分区格式化才能生效
mkswap /dev/vdb1
步骤四:swapon -a /dev/vdb1 激活swap分区 ;swapon -s 查看swap分区
注意:以上设置是临时的,在配置文件里面写才是永久的
步骤五:设置永久的swap分区
vim /etc/fstab,写入以下内容:
/dev/vdb2 swap(类型) swap(用途) defaults 0 0
(3)swap分区的删除
步骤一:vim /etc/fstab,删除这个文件里面的东西
步骤二:swapoff /dev/vdb1,swapon -s 此时再查看就没有了
8.磁盘配额(每个分区设备的容量有限制才比较公平)
配额是针对分区的
限制某个用户使用的分区大小
设定一个额度
步骤一:建立一个挂载目录
mkdir /public
步骤二:建立一个主分区/dev/vdb3
步骤二:mkfs.xfs /dev/vdb3
步骤三:mount -o usrquota /dev/vdb3 /public 激活配额并挂载分区
步骤四:chmod 777 /public 先挂载再给权限(否则权限会变小)
如果先给权限,然后挂载在/public这个目录上面,/public这个目录的权限会随被挂载的内容的权限变小
给student用户满权限,student用户才能在主分区上面截取分区自己使用
步骤六:edquota -u studnet 让这个用户有这个限制(这里面的东西不用改,改了也没有用,只改hard容量,单位是k)
1024k=1M 10240k=10M 102400k=100M 20480k=20M
步骤七:测试:切换到student用户下面执行
dd if=/dev/zero of=/public/file bs=1M count=20
当student用户截取分区的时候如果超过管理员设置的分区额度就会报错
9.磁盘加密——基于文件系统底层的加密方式(别人就看不到我的东西了)
步骤一:先不能挂载,df查看,如果挂载的话就umount
步骤二:cryptsetup luksFormat /dev/vdb5 给自己的硬盘设备加密,设置一个有强度的密码
步骤三:blkid 查看可以系统的设备
步骤四:cryptsetup open /dev/vdb5 westos 开放这个设备,打开盖子,盖子名字随便写
步骤五:ll /dev/mapper 这是一个虚拟的设备
步骤六:mkfs.xfs /dev/mapper/westos 格式化这个虚拟的设备
步骤七:mount /dev/mapper/westos /public/ 挂载这个设备
步骤八:vim/public 在这个设备里面建立文件(随便写几个字母)
步骤九:umount /public/ 不想看了就直接卸载(卸载之后就可以重新加密设置别的密码了,但是直接改密码会破坏原来的加密文件)
步骤十:cryptsetup close westos 关闭盖子
再挂载,挂载的时候需要密码,挂载上了进去就可以随意操作
cryptsetup open /dev/vdb7 westos
mount /dev/mapper/westos /public
cat /public/file 可以查看到原先的内容
这个和超级用户 普通用户没关系
10.加密设备的开机自动挂载及如何删除加密设备
当存储设备是加密设备时,系统启动是不能自动挂载的
因为没有人为它输入密码,因此我们要使加密设备自动挂载,使加密设备开机挂载就能用
步骤一:vim /etc/fstab(挂载策略)
/dev/mapper/westos /public xfs defaults 0 0
步骤二:vim /etc/crypttab(解密文件)
westos /dev/vdb8 /root/westoskey
步骤三:vim /root/dickpass(填入硬盘加密密码)
westos123456(硬盘加密密码)
chmod 600 /root/diskpassword
步骤四:cryptsetup luksAddKey /dev/vdb5 /root/diskpassword(使它开机的时候读取上面的文件,进行自动挂载)
需输入加密密码
步骤五:设置完之后,reboot,然后df查看是否自动挂载
11.删除加密设备的自动挂载
步骤一:vim /etc/fstab 删除改文件里面的东西
步骤二:vim /etc/crypttab 删除该文件里面的东西
步骤三:卸载设备umount /dev/mapper/westos
步骤四:彻底删除加密设备(只删设备,设备里面的文件会被破坏,因为没有办法进行解密)
umount /westos/先卸载
cryptsetup close westos
mkfs.xfs /dev/vdb1 -f 强制格式化
也可以fdisk /dev/vdb1 直接d删除所有的
12.如何转换分区方式
(1)
parted /dev/vdb 初始化分区设备
mklabel (更改分区格式)
gpt (选则gpt格式)
quit (保存)
fdisk -l #查看分区格式
(2)将gpt分区改为msdos分区
fdisk -l 查看分区方式