当前位置: 首页 > article >正文

Linux NFS、自动挂载与系统启动管理指南

1. NFS客户端挂载导出的目录的方式

NFS(网络文件系统) 允许将远程服务器的目录挂载到本地,像访问本地文件一样操作远程文件。挂载方式主要有两种:

  • 手动挂载:使用 mount 命令(临时生效,重启后丢失)。

    mount -t nfs server_ip:/shared_dir /local/mount_point  
  • 自动挂载:通过 /etc/fstab 配置(永久生效)。

    # 编辑 /etc/fstab  
    server_ip:/shared_dir /local/mount_point nfs defaults 0 0  
    # 执行挂载  
    mount -a  

通俗比喻

  • 手动挂载像临时租用仓库,用完即还。

  • 自动挂载像买下仓库,随时可用。


2. NFSv4 与 NFSv3 的区别
特性NFSv3NFSv4
协议状态无状态(服务端不记录会话)有状态(服务端维护会话)
安全性依赖防火墙和额外工具(如 Kerberos)内置强加密和身份验证
文件锁定需要额外协议(NLM)内置文件锁定机制
性能较低(多端口通信)更高(单端口 TCP 通信)
兼容性广泛支持旧系统需要较新内核和客户端

核心区别:NFSv4 更安全、高效,适合现代网络环境。


3. 卸载导出的 NFS 目录

使用 umount 命令卸载:

umount /local/mount_point  

若提示“设备繁忙”

  1. 查找占用进程

    lsof /local/mount_point   # 查看正在使用文件的进程  
    fuser -mv /local/mount_point  # 显示进程 PID  
  2. 终止进程或强制卸载

    kill -9 PID               # 终止进程  
    umount -f /local/mount_point  # 强制卸载(慎用)  

4. 自动挂载器(Autofs)及其优势

Autofs 是“智能管家”,按需自动挂载目录,无访问时自动卸载。

  • 优势

    • 节省资源:空闲时卸载,减少网络和内存占用。

    • 无缝体验:用户访问目录时自动挂载,无需手动操作。

配置示例

  1. 安装并启动服务:

    sudo yum install autofs  
    systemctl start autofs  
  2. 编辑主映射文件 /etc/auto.master

    /mnt/nfs  /etc/auto.nfs  # 挂载点 -> 子映射文件 
  3. 创建子映射文件 /etc/auto.nfs

    data  -rw,sync  server_ip:/shared_data  

5. 直接映射与间接映射
  • 直接映射:挂载点路径在映射文件中明确指定。

    /mnt/remote  -rw  server_ip:/remote_dir  
  • 间接映射:挂载点位于父目录下,路径更灵活。

    # 主映射文件  
    /mnt/auto  /etc/auto.indirect  
    # 子映射文件 /etc/auto.indirect  
    docs  -ro  server_ip:/docs  

通俗理解

  • 直接映射像固定地址送货。

  • 间接映射像快递柜,按需取件。


6. 主映射文件的作用与创建
  • 主映射文件/etc/auto.master,定义自动挂载的根目录和子映射文件。

  • 作用:告诉 Autofs 哪些目录需要自动挂载,以及如何查找配置规则。

创建步骤

# 编辑主映射文件  
vim /etc/auto.master  
# 添加条目:挂载点 子映射文件  
/mnt/autofs  /etc/auto.custom  

7. 映射文件条目的格式与命名规则

条目格式

挂载点名称  [挂载选项]  服务器:导出目录  
  • 示例

    backup  -rw,sync  nfs_server:/backups  
  • 命名规则

    • 挂载点名称对应自动挂载目录下的子目录(如 /mnt/autofs/backup)。

    • 选项需符合 NFS 协议(如 ro 只读,rw 读写)。


8. RHEL 的启动过程
  1. BIOS/UEFI:初始化硬件,加载引导程序(GRUB)。

  2. GRUB:选择内核并加载到内存。

  3. 内核初始化:挂载根文件系统,启动 systemd(PID=1)。

  4. systemd:按目标(target)启动服务,进入系统。

通俗流程:开机自检 → 选择系统 → 加载核心 → 启动服务 → 用户登录。


9. systemd 目标(Target)及常用目标

目标:相当于旧版的“运行级别”,定义系统启动状态。

目标作用
multi-user.target多用户命令行模式(无图形界面)
graphical.target图形界面模式
rescue.target单用户救援模式
emergency.target紧急 Shell(最简环境)

切换目标

systemctl isolate multi-user.target  # 切换到命令行模式  

设置默认目标

systemctl set-default graphical.target  

10. 启动时选择其他目标
  1. 在 GRUB 菜单界面按 e 进入编辑模式。

  2. 找到以 linux 开头的行,末尾添加:

    systemd.unit=multi-user.target  
  3. 按 Ctrl+X 启动,系统将进入指定目标。


11. 从启动加载器重置 root 密码

步骤

  1. 重启系统,在 GRUB 菜单按 e 进入编辑模式。

  2. 找到 linux 行,附加rd.break,该选项会中断系统从initramfs镜像向实际系统移交控制权

  3. 按 Ctrl+X 启动进入单用户模式。

  4. 重新挂载根目录并修改密码:

    chroot /sysroot  
    passwd root  
    touch /.autorelabel  # 重置 SELinux 上下文  
    exit  
    reboot  

注意:此方法适用于物理机或具有控制台的虚拟机。

相关文章:

Linux NFS、自动挂载与系统启动管理指南

1. NFS客户端挂载导出的目录的方式 NFS(网络文件系统) 允许将远程服务器的目录挂载到本地,像访问本地文件一样操作远程文件。挂载方式主要有两种: 手动挂载:使用 mount 命令(临时生效,重启后丢…...

uniapp实现全局拖拽按钮

要先引入 “vue3-draggable-resizable”: “^1.6.5” 1.创建DragComponent组件 <template><!-- 抽屉组件 --><div class"drag-container" id"dragBox" :style"{ zIndex: zIndex }"><Vue3DraggableResizable :initW"…...

SOFABoot-10-聊一聊 sofatboot 的十个问题

前言 大家好&#xff0c;我是老马。 sofastack 其实出来很久了&#xff0c;第一次应该是在 2022 年左右开始关注&#xff0c;但是一直没有深入研究。 最近想学习一下 SOFA 对于生态的设计和思考。 sofaboot 系列 SOFABoot-00-sofaboot 概览 SOFABoot-01-蚂蚁金服开源的 s…...

计算机网络——总结

01. 网络的发展及体系结构 网络演进历程 从1969年ARPANET的4个节点发展到如今覆盖全球的互联网&#xff0c;网络技术经历了电路交换到分组交换、有线连接到无线覆盖的革命性变革。5G时代的到来使得网络传输速度突破10Gbps&#xff0c;物联网设备数量突破百亿级别。 网络体系…...

Umi-OCR- OCR 文字识别工具,支持截图、批量图片排版解析

Umi-OCR 是免费开源的离线 OCR 文字识别软件。无需联网&#xff0c;解压即用&#xff0c;支持截图、批量图片、PDF 扫描件的文字识别&#xff0c;能识别数学公式、二维码&#xff0c;可生成双层可搜索 PDF。内置多语言识别库&#xff0c;界面支持多语言切换&#xff0c;提供命令…...

高速网络包处理,基础网络协议上内核态直接处理数据包,XDP技术的原理

文章目录 预备知识TCP/IP 网络模型&#xff08;4层、7层&#xff09;iptables/netfilterlinux网络为什么慢 DPDKXDPBFPeBPFXDPXDP 程序典型执行流通过网络协议栈的入包XDP 组成 使用 GO 编写 XDP 程序明确流程选择eBPF库编写eBPF代码编写Go代码动态更新黑名单 预备知识 TCP/IP…...

C++:背包问题习题

1. 货币系统 1371. 货币系统 - AcWing题库 给定 V 种货币&#xff08;单位&#xff1a;元&#xff09;&#xff0c;每种货币使用的次数不限。 不同种类的货币&#xff0c;面值可能是相同的。 现在&#xff0c;要你用这 V 种货币凑出 N 元钱&#xff0c;请问共有多少种不同的…...

数据可信安全流通实战,隐语开源社区Meetup武汉站开放报名

隐语开源社区 Meetup 系列再出发&#xff01;2025 年将以武汉为始发站&#xff0c;聚焦"技术赋能场景驱动"&#xff0c;希望将先进技术深度融入数据要素流转的各个环节&#xff0c;推动其在实际应用场景中落地生根&#xff0c;助力释放数据要素的最大潜能&#xff01…...

java使用Apache POI 操作word文档

项目背景&#xff1a; 当我们对一些word文档&#xff08;该文档包含很多的标题比如 1.1 &#xff0c;1.2 &#xff0c; 1.2.1.1&#xff0c; 1.2.2.3&#xff09;当我们删除其中一项或者几项时&#xff0c;需要手动的对后续的进行补充。该功能主要是对标题进行自动的补充。 具…...

【 C/C++ 包管理工具】vcpkg安装+使用

【 C/C 包管理工具】vcpkg安装使用 Vcpkg 是由 Microsoft 和 C 社区维护的免费开源 C/C 包管理器&#xff0c;可在 Windows、macOS 和 Linux 上运行。 可以很方便的安装管理 C/C 库。 1. 安装 不要安装到Program Files这种有空格的路径下&#xff0c;否则后面安装库可能出现…...

免费开源的NAS解决方案:TrueNAS

TrueNAS是业内知名的FreeNAS系统的升级版&#xff0c;是一款开源的网络存储系统&#xff0c;具有高性能、稳定性和易用性等优点。 TrueNAS目前有三个版本&#xff0c;分别是TrueNAS CORE、TrueNAS ENTERPRISE、TrueNAS SCALE。其中&#xff0c;TrueNAS CORE基于FreeBSD开发&…...

LeetCode热题100精讲——Top1:两数之和【哈希】

你好&#xff0c;我是安然无虞。 文章目录 题目背景两数之和C解法Python解法 题目背景 如果大家对于 哈希 类型的概念并不熟悉, 可以先看我之前为此专门写的算法详解: 蓝桥杯算法竞赛系列第九章巧解哈希题&#xff0c;用这3种数据类型足矣 两数之和 题目链接&#xff1a;两数…...

github上传操作简单说明

前期准备 0.下载git&#xff08;如果已经有了就不用了&#xff09; 1.在GitHub上新建一个存储库 2.先在本地创建一个目录作为本地库目录&#xff0c;在目录里打开git bash进行上传 上传过程 echo "# Garbled_repair" >> README.md 作用&#xff1a;创建一个…...

GitLens with `Commit Graph`

文章目录 GitLens with Commit Graph GitLens with Commit Graph 想要更直观地查看 Git 提交历史&#xff1f;我打包了一个支持 Commit Graph 的 GitLens 版本&#xff0c;让你轻松在 VSCode 中查看分支、合并、变更记录等内容&#xff0c;一目了然&#xff01; &#x1f4cc…...

Rocky9.5基于sealos快速部署k8s集群

首先需要下载 Sealos 命令行工具&#xff0c;sealos 是一个简单的 Golang 二进制文件&#xff0c;可以安装在大多数 Linux 操作系统中。 以下是一些基本的安装要求&#xff1a; 每个集群节点应该有不同的主机名。主机名不要带下划线。 所有节点的时间需要同步。 需要在 K8s …...

阿里云服务器环境部署 四 MySQL主从配置

安装MySQL 导入mysql镜像 docker load -i /opt/dockerinstall/mysql/mysql-8.1.0.tar docker run --privilegedtrue --name mysql8 --restartunless-stopped -e MYSQL_ROOT_PASSWORD123456 -p 3306:3306 -v /usr/local/mysql/logs:/var/log/mysql -v /usr/local/mysql/d…...

GPT-5 将免费向所有用户开放?

GPT-5 将免费向所有用户开放&#xff1f; 硅谷知名分析师 Ben Thompson 最近与 OpenAI CEO Sam Altman 进行了一场深度对谈&#xff0c;其中Sam Altman透漏GPT-5将免费向大家发放。 OpenAI 这波操作可不是一时冲动&#xff0c;而是被逼出来的。DeepSeek 这个新秀横空出世&am…...

web客户端存储,IndexDB相关讲解

IndexDB详细讲解 IndexedDB 是浏览器提供的一种底层 API,用于在客户端存储大量结构化数据。相比 Web Storage(localStorage/sessionStorage),它支持更复杂的数据结构、事务处理、索引查询等高级功能。以下是一个系统化的讲解: 一、核心概念 1、​数据库(Database)​ 每…...

excel文件有两列,循环读取文件两列赋值到字典列表。字典的有两个key,分别为question和answer。将最终结果输出到json文件

import pandas as pd import json# 1. 读取 Excel 文件&#xff08;假设列名为 question 和 answer&#xff09; try:df pd.read_excel("input.xlsx", usecols["question", "answer"]) # 明确指定列 except Exception as e:print(f"读取文…...

项目日记 -云备份 -服务器配置信息模块

博客主页&#xff1a;【夜泉_ly】 本文专栏&#xff1a;【项目日记-云备份】 欢迎点赞&#x1f44d;收藏⭐关注❤️ 代码已上传 gitee 目录 前言配置信息文件文件配置类getInstance 获得实例readConfigFile 读取配置信息文件 测试 #mermaid-svg-ewlCpjdOf0q0VTLI {font-family:…...

gralloc usage flags

下面这些示例主要说明了 gralloc usage flags 在图像处理和多媒体应用中如何影响性能和正确性。让我们逐个详细分析每个问题的 根因 和 修复方案&#xff0c;并深入解析 gralloc 标志对 缓存管理 和 数据流 的影响。 ✅ Example 1: 长曝光快照耗时异常 &#x1f4cc; 问题描述…...

Mysql配套测试之查询篇

&#x1f3dd;️专栏&#xff1a;Mysql_猫咪-9527的博客-CSDN博客 &#x1f305;主页&#xff1a;猫咪-9527-CSDN博客 “欲穷千里目&#xff0c;更上一层楼。会当凌绝顶&#xff0c;一览众山小。” 目录 条件查询简单测试&#xff1a; 1.查询英语成绩不及格的同学(<60) 2…...

mysql——第二课

学生表 CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT,name varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,sex varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,age int(11) DEFAULT NULL,c_id int(10) DEFAULT NULL,PRIMARY KEY (id),KEY c_id (c_id),CONSTR…...

Python网络编程入门

一.Socket 简称套接字&#xff0c;是进程之间通信的一个工具&#xff0c;好比现实生活中的插座&#xff0c;所有的家用电器要想工作都是基于插座进行&#xff0c;进程之间要想进行网络通信需要Socket&#xff0c;Socket好比数据的搬运工~ 2个进程之间通过Socket进行相互通讯&a…...

arm linux下的读写信号量rw_semphore的实现

本文基于arm linux 5.10来介绍内核中使用的读写信号量rw remphore的实现代码。 内核中信号量结构体struct rw_semaphore的定义在include/linux/rwsem.h 32位architectures下&#xff0c;结构体struct rw_semaphore中的count的使用如下&#xff1a; 先来看信号量的定义和初始化…...

完整的类在JVM中的生命周期详解

首先给出一个示例代码&#xff1a; 示例的目标是展示一个多功能的类结构&#xff0c;包含继承、接口实现、静态成员、本地方法、线程安全等特性&#xff0c;同时模拟一个简单的“计算器”场景&#xff0c;计算并管理数字。&#xff08;尽量将所有的 Java 组件和关键字都给出&am…...

Flutter中常用命令

1.检测flutter运行环境 flutter doctor 2.升级flutter flutter upgrade 3.查看flutter 版本 flutter --version 4.查看连接的设备 flutter devices 5.运行flutter项目 flutter run 或者在vscode中按FnF5 6.打包 flutter build apk //默认打release包 7.开…...

C#里使用libxl的数字格式

由于EXCEL里可以表示不同的数字格式, 比如表示货币数字时,与表示普通序号的数字就不一样。 还有科学计算表示的数字使用小数点位数与普通货币也不一样。 如下所示: 要使用这些格式, 下面创建一个例子来演示保存这些数字格式: private void button11_Click(object send…...

c#难点整理2

1.对象池的使用 就是先定义一系列的对象&#xff0c;用一个&#xff0c;调一个。 public class ObjectPool<T> where T : new(){private Queue<T> pool; // 用于存储对象的队列private int maxSize; // 对象池的最大容量// 构造函数public ObjectPool(int maxSi…...

android adjust 卸载与重装监测

想要洞察应用内用户的留存率,可以通过Adjust 的卸载与重装进行监测 名词解释: 卸载:集成完成后,卸载应用,安装状态为:卸载 重装:如果应用已经卸载,但一段时间后又进行安装,则会被视为重装。 📢📢📢:adjust 文件中说到24 小时后,可以再 adjust 控制台看安装…...