设备识别
Linux中的一切管理都是文件管理,所以设备接入系统后也都是以文件形式存在.
##设备文件名称:
SATA/SAS/USB /dev/sda,/dev/sdb #s=SATA,d=DISK a|b=第a|b块
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(card) /dev/mmcblk0,/dev/mmcblk1 #mmblk=mmc卡
光驱 /dev/cdrom,/dev/sr0,/dev/sr1
##设备查看:
fdisk -l #查看磁盘分区情况
lsblk #设备使用情况
blkid #设备管理方式以及设备id
df -h|H #查看正在被系统挂载的设备 1h=1M=1024K 1H=1M=1024K
cat /proc/partitions #查看系统识别设备
设备挂载
在系统中,有设备id的设备是可以被系统使用的
##挂载命令:
mount -o 挂载参数 device 挂载点
##卸载命令:
umount 设备|挂载点
mount #查看挂载信息
##挂载管理:
mount -o ro /dev/sdb1 /mnt #将设备以只读方式挂载到mnt下
mount -o remount,rw /mnt #将设备以读写方式重新挂载
##卸载时设备正忙:
umount /dev/sdb1
**********************************************************************
umount: /mnt: target is busy.
**********************************************************************
##处理方法:
lsof /dev/sdb1 #查看占用进程
fuser -vm /dev/sdb1 #查看占用进程
fuser -kvm /dev/sdb1 #查看并结束占用 -k结束进程 -v显示详细信息 -m进程信息
设备中的文件查找(find)
find /dir
-mindepth n #最小深度
-maxdepth n #最大深度
-name "" #文件名
-user username #文件所有者
-group groupname #文件所属组
-type f|d|s|b|l #文件类型
-perm 222 | /222 | -222 #文件权限 /=或 -=并且 权限0表示不指定对应位权限
-cmin n | -n | +n #修改时间(s) -=< +=> n表示第n-1到n的那分钟
-ctime n | -n | +n #修改时间(day) -=< +=> n表示第n到n+1的那天
-size + | - | nM #文件大小 -=< +=>
-o #or
-a #and
-not #not
-exec #对find到的所有文件进行进一步处理
**********************************************************************
##示例
find /mnt -perm -002 -exet chmod o-w {} \; #查找o上有w权限的文件并且去掉o上的w权限
-exet 命令 {} \;
或者-exet 命令 {} ";"
是固定命令 {}
表示find查找到的所有结果
分区
分区方式 | 位数 | 分区表大小 | 支持分区个数 | 支持单个分区大小 | ||
---|---|---|---|---|---|---|
legacy (MBR) | 32 | 64byte | 主分区4个 | 2.2TB | 所有分区16个 | |
UEFI (GPT) | 64 | 128byte | 理论上无限制 | 8ZiB | windows 128个 |
MBR分区方式
- 主分区:主分区表记录的分区并可以直接使用的分区
- 扩展分区:主分区表记录的分区,不可以直接使用,只是逻辑分区的容器
- 逻辑分区:扩展分区上划分的分区叫做逻辑分区
分区方法
fdisk /dev/vdb
有图形指示的分区方法parted
命令分区方法
parted /dev/vdb mklabel msdos|gpt
parted /dev/vdb mkpart primary|extent 1 1000
parted /dev/vdb rm 1
常用文件系统对比
文件系统 | FAT16 | FAT32 | NTFS | EXT3 | EXT4 | XFS |
---|---|---|---|---|---|---|
最大卷 | 2GB | 4GB | 256TB | 32TB | 1EB | 16EB |
最大单个文件 | 4GB | 8GB | 16TB | 2TB | 16TB | 8EB |
最大文件个数 | 65536 | 4177920 | 4294967295 | 32000个子目录 | 无限 | 无限 |
代表系统 | DOS/Win95 | Win98 | Win2000以后 | RHEL5 | RHEL6 | RHEL7~ |
格式化文件系统
mkfs.xfs /dev/vdb1 #格式化为xfs格式
mkfs.vfat /dev/vdb2 #格式化为vfat格式
mkfs.ext4 /dev/vdb3 #格式化为ext4格式
mkfs.xfs -K /dev/vdb5 #快速格式化为xfs格式 K表示对未使用的块不做处理
永久挂载
mount
挂载只能临时挂载,要永久挂载需要编辑文件vim /etc/fstab
规则:设备 挂载点 格式 挂载选项 是否备份 系统检查
修改完成后执行mount -a
可以将未挂载的设备全部挂载
删除设备
想要删除设备可以用parted
和fdisk
来一个个删除
也可以使用以下命令将设备分区表直接清除
dd if=/dev/zero of=/dev/vdb bs=1M count=1
swap分区
swap分区作用:程序在运行时所有数据在RAM,当RAM使用量超过限额,为了使系统更加稳定,在硬盘上划分一部分空间来作为内存缓冲区swap。当内存使用超过限额,内核会把内存中闲置的数据存放到swap中,当程序需要swap分区中的数据时内核将swap分区中的数据交还给内存进程处理
swap分区大小建议:
内存大小 | swap分区建议大小 | 当允许HIBERNATE |
---|---|---|
2GiB以下 | 内存2倍 | 内存3倍 |
2-8GiB | 等于物理内存 | 物理内存2倍 |
8-64GiB | 4GiB | 1.5倍物理内存 |
64GiB以上 | 4GiB | HIBERNATE不打开 |
swap管理
swapon -s #查看swap分区信息
##创建swap分区:创建分区并设定分区的类型为Linuxswap
mkswap /dev/vdb1 #格式化设备为swap格式
swapon /dev/vdb1 -p 0-32767 #启用swap分区 -p表示指定swap优先级
上面操作都是临时操作,若要永久添加swap分区,需要修改系统文件/etc/fstab
删除swap
编辑/etc/fstab
文件,将要删除的swap分区的信息删除,保存退出
vim /etc/fstab #删除swap信息
swapoff /dev/vdb1 #关闭swap
关闭后使用fdisk
将swap分区删除
配置限额
配额作用:设定用户能楔入指定设备的最大额度
1.将/dev/vdb2以配额方式挂载到/song111目录
mount /dev/vdb2 /song111/
##用mount查看挂载信息:
mount
**********************************************************************
/dev/vdb2 on /song111 type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
**********************************************************************
##重新用配额方式挂载
umount /dev/vdb2
mount -o usrquota /dev/vdb2 /song111/
mount
**********************************************************************
/dev/vdb2 on /song111 type xfs (rw,relatime,seclabel,attr2,inode64,usrquota)
**********************************************************************
2.激活配额
临时激活配额:
quotaon -uv /dev/vdb2 #激活配额
永久激活配额——修改系统文件/etc/fstab
:
vim /etc/fstab
3.为用户分配配额
edquota -u song