磁盘/设备管理
设备识别
设备接入系统后都是以文件的形式存在。
设备名 | 对应的文件名 | 说明 |
---|---|---|
SATA/SAS/USB | /dev/sda,/dev/sdb | s= SATA,d=DISK,a=第1块 |
IDE | /dev/hd0,/dev/hd1 | h= hard |
VIRTIO-BLOCK | /dev/vda,/dev/vdb | v=virtio |
M2(SSD) | /dev/nvme0,/dev/nvme1 | nvme=m2 |
SD/MMC/EMMC(卡) | /dev/mmcblk0,/dev/mmcblk1 | mmcblk=mmc卡 |
光驱 | /dev/cdrom,/dev/sr0,/dev/sr1 | 无 |
简单说明IDE, virtio, virtio-scsi区别
在VM中给虚拟机添加一块硬盘
为了看出实验效果,我们为虚拟机添加一块硬盘,我在VM里添加
依次进行图示操作:
右键点击虚拟机名字选择设置
添加硬盘
这一步选sata,之后一直下一步即可,硬盘大小给10G即可
设备查看
fdisk -l 查看磁盘分区情况,系统真实存在的设备
lsblk 设备使用情况
blkid 设备管理方式及设备id
df 查看正在被系统挂载的设备
cat /proc/partitions 查看系统识别设备
fdisk -l
lsblk
blkid
df
cat /proc/partitions
设备挂载卸载
挂载
我们日常使用U盘的时候就可以使用命令方式管理!
临时挂载:
mount ##查看挂载信息
挂载命令:
mount -o 挂载参数 device 挂载点
示例:
mount -o rw /dev/sda /lucky
mount -o remount,ro /lucky ##转换挂载参数由读写变为只读
mount挂载,如图即是挂载成功
remount更改挂载参数
永久挂载:
vim /etc/fstab ##设备挂载策略文件
在文件内写入:
/dev/sr0 /lucky xfs defaults 0 0
设备 挂载点 文件系统类型 挂载参数 是否备份 是否检测
此文件在编写完成后不会马上生效
mount -a ##重新读取/etc/fstab文件
此文件内容编写错误会导致系统启动失败
按照提示在操作界面输入超级用户密码
注释错误行,重启系统即可
卸载
umount 设备|挂载点
在卸载时出现提示设备正忙:
fuser -kvm 设备|挂载点 #-k 结束进程, -v 现实详细信息 -m 显示进程
在卸载时出现提示设备正忙情况
fuser -kvm /lucky/
,杀掉占用的进程,因为是被另一个shell占用,所以另一个shell直接被关掉
怎么给磁盘分区
分区方式
1. MBR分区方式
Legacy启动方式以传统BIOS启动,可以进行MBR分区的系统安装。
位数:32位
分区表大小:64byte
支持分区个数:主分区4个,所有分区16个
支持单个分区大小:2.2TB
MBR分区方式包含主分区P、扩展分区E、逻辑分区L
主分区P:
主分区表记录分区的信息并可以直接使用的分区
扩展分区E:
主分区表记录的分区,不可直接使用,只是逻辑分区容器
逻辑分区L:
扩展分区之上划分的分区叫做逻辑分区,逻辑分区信息由容器记录
2. GPT分区方式
UEFI(统一的可扩展固件接口,Unified Extensible Firmware Interface)启动方式,可以进行GPT分区的系统安装
位数:64位
分区表大小:128byte
支持分区个数:理论上无限制,windows限制在128个
支持单个分区大小:8ZB (bit、B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB……)
分区里有一个EFI分区
128位的分区表4等分,其中一部分是记录EFI分区信息的
而EFI分区是记录之后所有分区信息的
因为EFI分区大小可调,所以理论上可以无限制的划分磁盘
但一旦EFI分区空了,那么所有的分区信息都没了!
MBR分区简单抽象图示:
GPT分区简单抽象图示:
更改分区方式
parted方式更改:parted /dev/sda
fdisk方式:输入g将分区方式改为gpt
分区方法
非交互式建立分区:
parted /dev/sda mklabel msdos
,更改为MBR分区方式
parted /dev/sda mkpart primary 1 100
,分个100M的分区
##之后的分区要从101开始分
blkid
可以查看到还没安软件暂时无法管理的分区sda1
parted /dev/sda rm 2
,删除第二个分区
交互式建立分区:
使用 fdisk /dev/sda
命令,用该种方法分区默认是MBR分区
Command (m for help): m ##获得帮助
d ##删除
l ##列出所有分区类型
n ##新建
p ##显示分区表
t ##更改分区类型
w ##保存更改
q ##退出
g ##设定分区方式为GPT
o ##设定分区方式为mbr
n建立分区,如图操作即可
以上更改是运行在内存里的,直接退出不会保存更改,wq保存退出才可保存更改使更改生效
分区后怎么使分区可以使用
第一步:同步分区表
udevadm settle
,已识别的分区表和设备上更改后的分区表进行同步,其实默认情况下是会自动同步的
第二步:给磁盘装软件(格式化)
mkfs.xfs -K /dev/sda1
或者mkfs -t xfs -K /dev/sda1
,格式化设备为xfs文件系统(相当于在/dev/sda1上安装设备管理软件)
##没有软件是不能管理我们的设备的
##-K 不丢弃空数据块,即不对空的设备进行处理
##可以man 5 fs查看帮助
常用文件系统对比:
我们使用U盘时有时明明空间够,却不能存储大文件,就是因为有的U盘的文件系统是FAT16的,具体差别如表:
文件系统名 | 最大卷 | 最大单个文件 | 最大文件个数 | 代表系统 |
---|---|---|---|---|
FAT16 | 2GB | 4GB | 65536 | DOS,Win95 |
FAT32 | 4GB | 8TB | 4177920 | Win98 |
NTFS | 256TB | 16TB | 4294967295 | Win2000以后 |
EXT3 | 32TB | 2TB | 32000个子目录 | RHEL5 |
EXT4 | 1EB | 16TB | 无限子目录 | RHEL6 |
XFS | 16EB | 8EB | 无限子目录 | RHEL7及之后 |
没格式化前分区是只有ID没有类型的,格式化后有了文件系统类型,就可以对该磁盘进行管理,譬如挂载卸载等操作
第三步:尝试挂载
mount /dev/sda1 /lucky
,挂载成功!
##这是临时挂载,如果需要永久挂在需要编写/etc/fstab
删除分区,清空设备
先卸载:umount /dev/sda
然后 fdisk /dev/sda
,输入d删除我们建立的分区
再清空设备:dd if=/dev/zero of=/dev/sda bs=1M count=5
##该命令将前面的数据分区表覆盖(清空),分区信息没了,自然就还原了
怎么建立swap分区
什么是swap分区?
程序在运行时所有数据是在RAM(主存)
当RAM使用量超过了限额,为了使系统更加稳定
我们在硬盘上划分一部分空间来作内存缓冲区swap
当内存使用超过限额,内核会把内存中闲置的数据存放到swap中
当程序需要swap分区中的数据时内核将swap分区中的数据在交还给内存进程处理
内存大小 | swap分区建议大小 | 当允许HIBERNATE |
---|---|---|
2GB以下 | 内存两倍 | 内存3倍 |
2-8GiB | 等于物理内存 | 物理内存2倍 |
8-64GiB | 4GiB | 1.5倍物理内存 |
64GiB以上 | 4GiB | HIBERNATE不开 |
HIBERNATE是数据备份,关机后会把内存的数据保存到swap分区,开启该功能开机会比较慢
临时添加并使用swap分区方法
fdisk /dev/sda
先按上面的方法建立一个分区,然后依次输入t,l,类型编码,将分区类型改为swap
##注意mbr分区方式swap类型是82,gpt是19
wq保存更改退出!
此时swapon -s
查看分区还没有
需要格式化swap分区,mkswap /dev/sda1
再激活swap分区swapon -a /dev/sda
,就可以查到swap分区了
临时swap分区优先级的设定
优先级范围:0-32767
首先要关掉swap分区:swapoff /dev/sda1
激活的同时设置优先级:swapon -a /dev/sda1 -p 1
永久添加swap分区
临时的重启后就会失效,想添加swap分区需要编辑文件vim /etc/fstab
添加如图内容:
写完保存退出后,swapon -a
刷新即有
删除swap分区
删除在文件/etc/fstab编辑的内容,swapoff /dev/sda1
即可,剩余与前面删除分区步骤相同。
磁盘配额
设定用户能写入指定设备的最大额度
临时设定磁盘配额
前提:有分区且格式化过
第一步:挂载设备并激活配额参数
mount /dev/sda1 /lucky/ -o usrquota
第二步:激活配额
quotaon -uv /dev/sda1
第三步:设定用户lucky的配额
edquota -u lucky
设备 用户已经创建数据 软限 硬限 用户已经创建文件个数 软限 硬限
Filesystem blocks soft hard inodes soft hard
/dev/sda1 20480 0 20480 1 0 0
(KB为单位)
##软限的意思是超过多少会警告
##硬限的意思是到了多少不能再操作
执行命令后出现的界面,设定完后退出保存
切换到lucky用户下测试,如图设定生效!
永久设定磁盘配额
编辑文件vim /etc/fstab
,添加内容:/dev/sda1 /lucky xfs defaults,usrquota 0 0
关闭配额
quotaoff -uv /dev/sda1
,关闭配额
vim /etc/fstab
##去掉配额参数usrquota