设备识别
设备类型:
磁盘类:
- SATA/SAS/USB:
在系统中的显示:/dev/sda 或 /dev/sdb
s= SATA,d=DISK,a/b=第几快 - IDE
在系统中的显示:/dev/hd0 或 /dev/hd1
h= hard,d=DISK,0/1=第几块 - M2(SSD)
在系统中的显示:/dev/nvme0 或 /dev/nvme1
nvme=m2,0/1=第几块 - VIRTIO-BLOCK
在系统中的显示:/dev/vda 或 /dev/vdb
v=virtio,d=DISK,a/b=第几快
卡类:
SD/MMC/EMMC
在系统中的显示:/dev/mmcblk0 或 /dev/mmcblk1
mmcblk=mmc卡,0/1=第几块
光驱:
/dev/cdrom 或 /dev/sr0 或 /dev/sr1
设备查看
命令 | 说明 |
---|---|
fdisk -l | 查看磁盘分区情况 |
lsblk | 设备使用情况 |
blkid | 设备管理方式及设备id |
df | 查看正在被系统挂载的设备 |
cat /proc/partitions | 查看系统识别设备 |
命令演示:
- fdisk -l
- lsblk 会列出所有的设备,包括没有使用的
- blkid
- df
- cat /proc/partitions
设备挂载
在系统中有设备id的设备是可以被系统使用的
设备的临时挂载设定:
挂载命令: 命令:mount -o 挂载参数 device 挂载点
普通挂载,用mount命令查看,可以看到最后有设备的挂载信息,ro=只读,设备的内容是不可更改的。
如果需要更改设备的权限,使用 -o 添加参数rw变为读写权限
设置为rw读写权限,如果再改回只读权限,命令如下,改为读写也是一样。
[root@rhel8-work ~]# mount -o remount,ro /mnt
挂载查看命令: mount
取消挂载命令: umount 挂载点/设备名称。
上面实验时将 /dev/sda1 挂载到 /mnt 下,现在取消挂载,设备又自动回到 /boot 下:
在卸载时当出现设备正忙: fuser -kvm 设备/挂载点
首先挂载设备到 /mnt 目录下,cd切换到该目录
umount 取消挂载,会提示目标正忙
这时,我们先用命令 “fuser -vm /dev/sda1”查看设备情况,-v 显示详细信息 ,-m 显示进程
看到这个设备的运行信息在bash里,PID是7566,可以用“kill -9 7566”关闭这个进程,或者 “fuser -kvm /dev/sda1” 关闭所有这个设备的使用的进程,-k 结束进程,然后再umount ,
设备永久挂载设定:
编辑配置文件:vim /etc/fstab,设备挂载策略文件。
可以看这个文件里,系统默认的写了三个设备的挂载,用的是UUID的方式,
我们使用设备名称同样可以,按照它的格式去写
格式是:设备名—挂载点—设备类型(blkid查看)—挂载参数—是否备份—是否检测
此文件在编写完成后不会马上生效,需要执行命令:mount -a ,重新读取/etc/fstab文件。
/etc/fstab 是系统初始化镜像加载的文件,如果写错了内容,会导致系统启动失败,进入如下界面,先输入超级用户密码,进入shell界面然后编辑 /etc/fstab ,
进入 /etc/fstab文件,“#” 注释掉错误的信息保存退出,
再执行 reboot 重新启动系统就正常了。
设备中文件的查找
文件查找命令:find
参数 | 说明 |
---|---|
-name | 名字 |
-user | 用户 |
-group | 组 |
-type | 类型 |
-perm | 过滤权限 |
-exec | 并行命令 |
-maxdepth | 最大查找层数 |
-mindepth | 最小查找层数 |
-o | 或者,只满足一个条件即可 |
-a | 并且,同时满足两个条件 |
-not | 反选条件 |
用法效果
-
-name
查找 /etc/ 下名字是 user 的文件,查找后就会展示所有名字是user的文件,
-
user
创建一些文件作为实验素材为后面的参数演示使用
find /mnt -user root ,查找属于root用户的文件
-
-group
find /mnt -group redhat ,查找属于redhat用户组的文件
-
-type
find /mnt -type d,find /mnt -type f,d=directory,f=regular file。
-
-perm
find /mnt -perm 755 ,查找权限必须为 rwxr-xr-x 的文件
find /mnt -perm -111 ,文件权限u位有1、G位有1、o位有1的文件,意思是权限最低是111,比111多也可以
find /mnt -perm /111,文件的权限u或G或o位含有1的文件,就是三个位置随便哪个位置有一个1的权限就可以
find /mnt -perm /111 -type d -exec chmod ugo-x {} \; 表示查找文件的权限u或G或o位含有1的目录并且减去ugo位的1权限,{} 表示find命令查找结果 ,\是为了转译“;”,也可以写成:
find /mnt -perm /111 -type d -exec chmod ugo-x {} “;”
-
-o
find /mnt -user root -o -group root ,查找文件用户或者用户组是root的
-
-a
find /mnt -user root -a -group redhat ,查找文件用户是root并且组是redhat的
-
-not
find /mnt -not -group redhat ,查找用户组不是redhat的文件
-
-maxdepth,-mindepth
find /etc/ -maxdepth 1 -name passwd ,表示查找/etc/的文件名为passwd的并且只在/etc/路径找,不查找/etc/下子目录里的文件
如果也要查找子目录的可以把数字改为2,
如果只想在子目录里查找,用 -mindepth 参数
也可以同时使用,锁定查找某些层的文件
分区
分区类型分为两种:传统分区(MBR)、UEFI(GPT)。
我们来作一个比较说明
传统分区(MBR) | |
---|---|
位数 | 32 |
分区表大小 | 64 |
支持分区个数 | 主分区4个,所有分区16个 |
支持单个分区大小 | 2.2TB |
UEFI(GPT) | |
---|---|
位数 | 64 |
分区表大小 | 128 |
支持分区个数 | 理论上无限制,Windows上限是128个 |
支持单个分区大小 | 8ZB |
传统分区(MBR)
因为MBR分区的独特性,我们来详细讲解。
MBR分区方式:
方式 | 说明 |
---|---|
主分区 | 主分区表记录分区的信息并可以直接使用的分区 |
扩展分区 | 主分区表记录的分区,不可直接使用,只是逻辑分区容器 |
逻辑分区 | 扩展分区之上划分的分区叫做逻辑分区 |
所以MBR分区建立的主分区实际是3个主分区+1个扩展分区,其他的逻辑分区都是存在于扩展分区上的
MBR分区方法
命令:fdisk 设备名称
我准备了一块新的硬盘在虚拟机里,/dev/nvme0n1 ,用来分区实验
执行命令:fdisk /dev/nvme0n1 ,在Command后面输入 m 获取帮助
在下面的参数里,介绍一些我们常用到的
参数 | 说明 |
---|---|
d | 删除分区 |
l | 列出所有分区类型 |
n | 新建分区 |
p | 显示分区表 |
t | 更改分区类型 |
w | 保存更改 |
q | 退出 |
执行命令: fdisk /dev/nvme0n1 ,新建分区
命令:fdisk -l,来查看/dev/nvme0n1,可以看到新建的分区出现了
如上建立4块分区,当建立第五块时就会要建立新的分区就要先用扩展分区替换主分区,
如果有时候我们建立完分区后,但是在 /proc/partitions 里看不到新建立的分区时,使用命令:partprobe ,同步分区表。
当使用命令:blkid ,查看设备id时,我们新建的分区是没有UUID的,这时需要执行命令:mkfs.xfs /dev/分区 ,格式化分区为xfs文件系统
安装文件系统后,就可以挂载设备,并且使用了
如果要建立扩展分区,在起始位置和结束位置都直接回车用默认,它就会使用除了你之前建立的主分区之外所有的空间
在建立扩展分区后,再去建立分区时会出现建立完后,显示设备正忙,并且在可识别的设备里查看发现也查看不到
这时要使用命令:partx -d /dev/sda ,清理分区表;
partx -a /dev/sda ,重新加载分区表
MBR分区方式转换成GPT
命令:parted /dev/设备名称
注意:如果转换会清空磁盘,数据会全部被清除
执行命令,可以用help来查看参数命令怎么使用,里面有说明mklabel可以建立新的磁盘标签
输入:mklabel,可以使用【Tab】键查看可选择的类型,再输入gpt确认要更改磁盘类型。如果之前设备有挂载使用就会提示你,选择Ignore忽视。下面输入Yes确认更改,又会提示你的设备被使用,还是输入Ignore,就完成更改了
最后quit退出时,系统还会提示你更新 /etc/fstab 文件,要不你的系统会无法启动的
用fdisk -l 查看设备,可以看到设备类型是gpt,而且之前我们建立的分区都没有了,数据被清空了。