Linux系统管理(五)企业存储的基本管理

2023-10-27

目录

一 设备识别

二 设备挂载

三 设备中文件的查找

四 分区

五 swap分区 

六 磁盘配额


一 设备识别

添加硬盘

 

设备接入系统后都是以文件的形式存在

设备文件名称:

串口硬盘 SATA/SAS/USB /dev/sda,/dev/sdb(s:STAT,d:DISK,a第一块,b第二块)

并口硬盘 IDE /dev/hd0,/dev/hd1(h:hard)

虚拟硬盘 VIRTIO-BLOCK /dev/vda(v:virtio)

固态硬盘 M2(SSD) /dev/nvme0(nvme:M2)

存储卡 SD/MMC/EMMC /dev/mmcblk0(mmcblk:mmc卡)

光驱 /dev/cdrom,/dev/sr0

设备查看:
查看磁盘分区情况 fdisk -l

设备使用情况 lsblk

设备id及类型 blkid

查看正在被系统挂载的设备 df

查看系统识别设备 cat /proc/partitions

二 设备挂载

在系统中有设备 id 的设备是可以被系统使用的
临时挂载设备
挂载 mount - o 挂载参数 device 挂载点

 

卸载设备:
umount 设备
| 挂载点
在卸载时当出现设备正忙(有程序正在使用设备)
fuser - kvm 设备 | 挂载点
查看什么程序正在使用设备 fuser - vm 设备 | 挂载点
# - k 结束进程 - v 显示详细信息 - m 显示进程

查看挂载信息 mount

指定挂载参数 mount - o rw / dev / vda1 / westos
挂载后更改参数 mount - o remount,ro / westos
永久挂载设备:
vim / etc / fstab ( 设备挂载策略文件)
设备         挂载点   文件系统类型   挂载参数   是否备份     是否检测
/ dev / sr0    / westos   xfs                   defaults      0(不备份) 0(不检测)

 

重新读取 / etc / fstab 文件:mount - a
此文件内容编写错误会导致系统启动失败
按照提示在操作界面输入超级用户密码
注释错误行
重启系统即可

三 设备中文件的查找

find命令参数:
- name 文件名
- user 所有人
- group 所有组
- type 文件类型(f d s b l )
- perm 权限 ( 222: ugo权限都为222 / 222: ugo权限至少有一个含有2   - 222: ugo权限都含有2)
- exec 减权限(-exec chmod o-x {} \; {} 表示find命令查找结果 \是为了转译“;”
- maxdepth   - mindepth 1 查找深度
- cmin 修改时间( 1: 一分钟时刻被修改过  - 1: 一分钟内被修改过  + 1: 一分钟后被修改过)
- size 文件大小(+1M:大于1M,-1M:小于1M,1M:等于1M)
- o
- a
- not

 

四 分区

两种分区方式:mbr、gpt
++++++++++++++++++++++++++++++++++++++++++
分区方式              位数       分区表大小      支持分区个数      
++++++++++++++++++++++++++++++++++++++++++
legacy(MBR)     32位         64byte            主分区 4 个        
UEFI(GPT )    64位         128byte        理论上无限制    
++++++++++++++++++++++++++++++++++++++++++
mbr分区方式:
主分区P:主分区表记录分区的信息并可以直接使用的分区
扩展分区E:主分区表记录的分区, 不可直接使用 只是逻辑分区容器
逻辑分区L:扩展分区之上划分的分区叫做逻辑分区
gpt分区方式:
efi:记录分区信息的分区
其他分区:实际可用的分区

Command (m for help): 使用参数:

m ## 获得帮助
d ##删除
l ##列出所有分区类型
n ##新建(默认格式为mbr)
p ##显示分区表
t ##更改分区类型
w ##保存更改
q ##退出
g ##设定分区方式为GPT
o ##设定分区方式为 mbr
(g和o 开始选的是什么格式后续就一直用什么格式,中间转换的话之前建立的所有分区会被删除)

交互式划分设备: 

......@rhel8_node1 mnt]# fdisk / dev / sdb
新建分区  Command (m for help) : n
建立主分区 Select (default p) : p(建立拓展分区 Select (default p) :  e)
确定分区表位置 Partition number ( 1 - 4, default 1) : 1
分区起始位置推荐使用默认 First sector ( 2048 - 20971519 , default 2048 ) :
确定分区结束位置和分区大小 Last sector, + sectors or + size {K,M,G,T,P} ( 2048 - 20971519 , default 20971519 ) : + 100M
退出保存 如果直接 q表示退出不保存 Command (m for help) : wq
同步分区表 udevadm settle
格式化设备为 xfs 文件系统 mkfs.xfs - K / dev / sdb1( - K 不丢弃空数据块, - 强制格式化)
不格式化分区无法被挂载

mount 命令挂在为临时挂载 如果需要永久挂载需要编写 / etc / fstab
mount / dev / sdb1 / mnt / westos 

 

非交互式划分设备:  

parted / dev / vdb mklabel msdos 确定分区方式为mbr
parted / dev / vdb mkpart primary 1 100  第一块分区划分的起始结束范围为1~100M
parted / dev / vdb rm 删除第二块分区

五 swap分区 

程序在运行时使用的数据存放在内存里,当内存 使用量超过了限额时,为了使系统更加稳定
我们在硬盘上划分一部分空间来作内存缓冲区 swap
当内存使用超过限额 内核会把内存中闲置的数据存放到 swap
当程序需要 swap 分区中的数据时内核将 swap 分区中的数据在交还给内存进程处理

swap管理:

swapon - s 查看 swap 分区信息
swapon - a 读取swap使用策略,无报错说明正常
创建 swap 分区:
创建swap分区 设定分区的类型为Linuxswap
同步分区表 udevadm settle

 

临时添加swap分区:
格式化设备位 swap 格式 mkswap / dev / sda1
指定 swap的优先级 swapon / dev / sda1 - p 0 - 32767
临时激活swap分区  swapon / dev / sda1 -
永久添加swap分区:
vim / etc / fstab
/ dev / sda1 swap swap defaults,pri = 4 0 0
swapon - a
 
删除 swap分区:
vim / etc / fstab
删除此行  / dev / sda1 swap swap pri = 4 0 0
swapoff / dev / sda1

六 磁盘配额

作用: 设定用户能写入指定设备的最大额度

激活配额:
挂载设备并激活配额参数 mount / dev / sda1 / pub / - o usrquota
激活配额 quotaon - uv / dev / sda1

设定用户 lee 配额:
edquota - u lee
Disk quotas for user lee (uid 1001 ) :
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
编写格式为:
设备               用户已经创建数据    软限     硬限   用 户已经创文件个数   软限个数     硬限个数
Filesystem       blocks                     soft     hard             inodes                  soft           hard
/ dev / sda1          20480                      0        20480                1                         0                 0
   
用户已经创建数据:不可更改
软限:超过软限后用户受到警告
硬限:不能超过(默认单位k)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

永久开启配额:
vim / etc / fstab
/ dev / sda1        / pub       xfs      defaults,usrquota        0      0

 

测试
用户lee截取数据失败只能写入 20M 数据
su - lee
cd / pub
dd if=/ dev / zero of =/ pub / leefile bs = 1M count = 22

 

关闭配额:
quotaoff - uv / dev / sda1
vim / etc / fstab
去掉配额参数 usrquota
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux系统管理(五)企业存储的基本管理 的相关文章

  • Linux 是否允许从信号处理程序进行任何系统调用?

    我的理解是 一般来说 如果您从信号处理程序调用非异步信号安全函数 则行为是未定义的 但我听说 Linux 允许您安全地调用任何系统调用 这是真的 另外 SIGSEGV 处理程序的唯一可移植行为是中止或退出 但我知道如果返回 linux 实际
  • SDL/C++ OpenGL 程序,如何阻止 SDL 捕获 SIGINT

    我在用SDL http www libsdl org 用于在 Linux 上运行的 OpenGL 应用程序 我的问题是 SDL 正在捕获 SIGINT 并忽略它 这是一个痛苦 因为我正在通过屏幕会话进行开发 并且我无法使用 CTRL C 终
  • 在Linux服务器中安装ZLIB

    我要安装ZLIB http www techsww com tutorials libraries zlib installation installing zlib on ubuntu linux php在Linux服务器中 我的服务器帐
  • 共享库 RPATH 和二进制 RPATH 优先级

    如果共享库链接到二进制文件 并且共享库还依赖于其他库 则共享库的 RPATH 和二进制文件的 RPATH 的优先级 链接器搜索顺序 是什么 二进制文件的 RPATH 是否可以覆盖共享库中的 RPATH 我在共享库RPATH中设置的 ORIG
  • 如何安装 Node 和 NPM 以便不必使用 sudo?

    我正在尝试在 Ubuntu 14 04 计算机上设置 Node js 和 NPM 但遇到了一些问题 在我的第一次尝试中 我不断得到EACCES尝试安装软件包时出错 有时甚至使用sudo 所以我彻底卸载了node和npm 现在我正在尝试找出如
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • 如何仅使用 grep/sed 提取子字符串和数字

    我有一个包含文本和数字的文本文件 我想使用 grep 只提取我需要的数字 例如 给定一个文件如下 miss rate 0 21 ipc 222 stalls n shdmem 112 所以说我只想提取数据miss rate这是0 21 如何
  • 如何删除警告:link.res包含输出部分;你忘了-T吗?

    我正在使用 fpc 编译器 我想删除此警告 我已经阅读了 fpc 的选项 但我找不到如何做到这一点 这可能吗 当我运行命令时出现 fpc foo pas out 目标操作系统 Linux for i386 编译 foo pas 链接 p2
  • Rsync 制作平面副本

    我正在尝试编写一个脚本 将一个目录 带有子目录 的所有文件复制到另一个目录的根目录 所以想象一下我有这个文件结构 pic JPG PIC5 JPG FOLDER pic2 JPG pic3 JPG FOLDER2 pic4 JPG 我想要该
  • 将 React 应用程序作为后台进程运行

    我对部署前端代码完全陌生 因此提出了这个问题 我有一个 React 应用程序 需要作为后台进程运行 但是我对如何执行此操作有点困惑 我运行一个 npm 脚本 npm run build 在服务器上构建 缩小和服务项目 构建过程的相关代码是这
  • 为什么每次运行应用程序时都必须使用导出来定义 LD_LIBRARY_PATH?

    我有一些使用一些共享库的代码 gcc 上的 c 代码 编译时 我必须使用 I 和 L 显式定义包含目录和库目录 因为它们不在标准位置 当我尝试运行代码时 出现以下错误 sync test sync test error while load
  • 如何检查 Linux 控制台屏幕保护程序是否黑屏

    有没有办法以编程方式 通过 ioctl 等 或通过读取 sys proc 或 dev 中的文件 检查屏幕是否已被 Linux 控制台屏幕保护程序清空 谢谢并致以最诚挚的问候 G nter 好的 检查了 相关代码部分是 include
  • (Linux) 如何在没有显示环境的情况下运行gtk程序? Gtk-警告 **:无法打开显示:

    我有一个必须在 GTK gui 环境中运行的程序 我只能使用ssh 该程序将在服务器 centos 6 上运行并安装 gnome X 显示 不需要看GUI 但运行完成后 我就能得到答案 VNC 和远程屏幕已禁用 当我在 ssh 中启动程序时
  • gdb 无法针对arm-linux 进行交叉编译

    Linux 已经具备了这两种功能gcc arm gcc在环境路径中 fit localhost gdb arm gcc v Using built in specs Target i386 redhat linux Configured w
  • 为什么 bash 无法识别套接字文件的存在

    在 Linux 机器上 我想检查特定的套接字文件是否存在 我知道套接字文件存在 但我在 bash 中的检查没有向我显示这一点 ls l var run supervisor sock srwxrw rw 1 root root 0 Jun
  • 将 jiffies 转换为毫秒

    如何在 Linux 中手动将 jiffies 转换为毫秒 反之亦然 我知道内核 2 6 有这个功能 但我正在研究 2 4 家庭作业 虽然我查看了代码 但它使用了很多宏常量 我不知道它们是否在 2 4 中定义 正如之前的答案所说 jiffie
  • 什么可能导致 sock send() 命令上的“资源暂时不可用”

    什么会导致Resource temporarily unavailable套接字上的错误send 命令 套接字设置为AF UNIX SOCK STREAM 它在大多数情况下都有效 但偶尔会出现此错误 套接字的接收端似乎工作正常 我知道这不是
  • 对于 Linux 上的 ARM,从 *.hex 转换为 *.bin

    我想使用以下命令将程序上传到我的 STM32F4 Discovery 板st flash命令 问题是当我尝试上传 hex 或 elf 文件时 它不起作用 我尝试了多种方法 例如使用 xxd 从 elf 或 hex 转换为 bin 但当我上传
  • 如何在shell中获取clock_gettime(2)时钟?

    我看不到这样的选项date proc uptime是基于引导的 而不是单调的 最后我发现cat proc timer list grep now产生的纳秒数是通过以下方式获得的ktime get如果我理解正确的话 它会返回单调时间 但这非常

随机推荐

  • intel至强服务器芯片制程,神器地位再巩固 !Intel 至强E3-1230/1220 V5测试

    2015年8月Intel正式发布了新一代微架构Skylake来替代当下的Broadwell 新一代的Skylake 是英特尔第六代微处理器架构 最主要的特征便是采用14纳米制程以及支持DDR4内存 Intel每一代处理器家族中都有一系列被中
  • python枚举之Enum模块详解

    简介 当我们需要定义一些特定有限数量的常量 标签 类型等的时候 最佳方式就是使用枚举 枚举一般用于表示某些特定的有限集合 例如月份 季节 星期等 本篇主要介绍python2 7中的枚举类 即enum中的Enum类 python3 4开始有内
  • 终端显示 Git 当前所在分支

    1 进入你的home目录 cd 2 编辑 bashrc文件 vi bashrc 将下面的代码加入到文件的最后处 function git branch branch git branch 2 gt dev null grep sed e s
  • TCP select 轮询服务器

    include
  • [RequireComponent(typeof(....))]

    当某个脚本必须依赖其他脚本或者组件共同使用时 为了避免人为添加过程的操作失误 可以在代码中使用RequireComponent 它的作用就是添加该脚本时 会自动将所依赖的各个组件添加至gameobject上 避免人为操作的失误 例 Requ
  • 毕业季到了,用C/C++做一张表白图片吧

    一转眼又到了毕业季 大学里相伴四年之人也将各奔东西 这其中不乏你的好兄弟 好闺蜜 也有你暗恋许久的人 不如就趁这最后的时间 勇敢一次 用我们的专业技术做一张表白图片送给她 他 吧 目录 先看效果 一 原理 二 代码实现 1 首先我们需要安装
  • 其他引用形式(引用指针、引用数组)

    1 没有引用的引用 但有指针的引用 2 可以对数组进行引用 引用一般为左值引用 给已有的实例取别名 一般都是用一个 进行引用 很少使用 如果是两个 就不代表二级引用 代表的是右值引用 左右值得区分可看我别的文章那 下附链接 左值与右值 A
  • sqlplus命令

    1 登录 1 1 sqlplus nolog conn scott tiger 或 conn scott tiger 192 168 1 12 orcl 1 2 sqlplus scott tiger 1 3 sqlplus as sysd
  • 如何用U盘启动做系统启动盘,如何重装系统

    一般重装系统大多会使用镜像刻录工具 把iso镜像刻录到U盘 今天我们使用官方的工具来刻录U盘 首先我们要格式化U盘 然后进入windows下载官网 这里以win11为例 Win11 https www microsoft com zh cn
  • C++ 拷贝构造函数中的Private权限问题

    引言 在C 中 拷贝构造函数是用于创建一个对象的副本的特殊成员函数 拷贝构造函数通常被定义为公有成员函数 以便其他对象能够使用它来创建副本 然而 有些人可能会对拷贝构造函数能否访问私有成员变量产生疑问 本文将详细探讨C 拷贝构造函数中的Pr
  • 分享串口接收中断只能接收到一个字节的其中一个原因

    问题 今天来分享一个我这两天遇到的一个很狗血的问题 就是我在写一个新项目串口部分时候 发现串口怎么只能接收到一个字节 因为我用的是接收中断RBEN吗 每接收到一个字节都会中断一次 可是这次我发现我每次怎么只能收到一个字节 然后我调试了一遍发
  • 宇宙第一 IDE Visual Studio 要放弃 Mac 了

    当地时间 8 月 30 日 微软在其官网发文称 已经关停 Visual Studio for Mac 的开发 相关支持将于 2024 年 8 月 31 日结束 微软将继续支持最新版本的 Mac IDE 集成开发环境 根据相关通知 使用 NE
  • 遗传算法的matlab实现

    遗传算法 Genetic Algorithm GA 是20世纪70年代初兴起的一门新兴学科 遗传算法的基本思想来源于达尔文的进化论和孟德尔的遗传学说 它通过模拟生物进化的过程来求解问题 生物中的基因对应优化问题中的变量组合 一个解则代表了一
  • 数据结构与算法 学习摘要

    时间复杂度比较 O 1 lt O logn lt O n lt O nlogn lt O n 2 lt O n 3 线性表 栈 stack 后进先出 队列 queue 先进先出 链表 linkedlist 单链表 双链表 https git
  • Linux8 如何重启网络服务

    本文主要讲解如何重启RHEL 8或者CentOS 8网络以及如何解决RHEL8和CentOS8系统的网络管理服务报错 当我们安装好RHEL 8或者 CentOS 8 重启启动网络时 会出现以下报错 systemctl restart net
  • 板子接线图

    1 ST LINK V2接线 2 对抗板子刷蓝牙固件 接USB转TTL 用镊子短接两个孔 2 对抗板子用串口测试蓝牙AT命令 短接白色箭头 接TX RX 电源
  • 嵌入式开发面试中经常被问到的问题记录

    问题 你能介绍一下你最熟悉的处理器架构及其特点吗 在嵌入式开发中 你通常使用哪些编程语言 对于不同的应用场景 如何选择适合的编程语言 请描述一下您在项目中遇到的最具挑战性的问题 并解释您是如何解决这个问题的 如何设计和实现一个多线程嵌入式系
  • JavaScript:从入门到精通总结二

    7 代码块 1 代码块只有分组的功能 代码块内部的内容 外部完全可见 2 prompt 弹出提示框 并且该提示框会带有一个文本框 返回值是string类型 3 switch语句中条件表达式是进行全等比较 4 可以为循环语句创建一个label
  • spring-data-JPA repository自定义方法规则

    Spring Data JPA框架在进行方法名解析时 会先把方法名多余的前缀截取掉 比如find findBy read readBy get getBy 然后对剩下的部分进行解析 假如创建如下的查询 findByUserDepUuid 框
  • Linux系统管理(五)企业存储的基本管理

    目录 一 设备识别 二 设备挂载 三 设备中文件的查找 四 分区 五 swap分区 六 磁盘配额 一 设备识别 添加硬盘 设备接入系统后都是以文件的形式存在 设备文件名称 串口硬盘 SATA SAS USB dev sda dev sdb