linux-云服务器数据盘挂载失败导致进入维护模式

news2024/11/24 3:22:45

已经在华为云、AWS上面吃过这个亏了,老这样可不好,心怦怦跳的。

  • 华为云是由于服务器升级配置后重启,数据盘名称变化导致进入维护模式。
  • AWS则是由于重启后没有挂载上数据盘,手动编辑/etc/fstab文件错误导致进入维护模式。

究其原因,就是因为/etc/fstab中的内容错误,导致服务器进入维护模式,此时无法通过ssh远程登录。目前知道两种方式解决:

1、自救。能够通过云服务器商提供的方式可以连接到服务器后台,同时拥有root账号,进入维护模式修改/etc/fstab文件后重启。
2、曲线自救。无法登录到服务器A后台,此时需要同区域另一台服务器B,在B服务器上将A服务器的系统盘挂载为数据盘,修改/path/to/mount/etc/fstab文件,修改后服务器A重新挂载上系统盘再启动。
3、提桶跑路,已经干了一件stupid的事情了,不要再干一件了。

自救

华为云服务器,挂载了200G的数据盘,在服务器升级配置后重启,但服务器远程不上,从华为云提供的VNC,用root账号登录维护模式,结果发现是因为配置在/etc/fstab中的数据盘没有挂载起来导致的。

在这里插入图片描述

查看磁盘列表,要挂载的/dev/vdb(200G那个)变成了/dev/sdb

# fdisk -l

Disk /dev/sdb: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00063f90

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    83886079    41942016   83  Linux

/etc/fstab中写的内容是挂载/dev/vdb

# cat /etc/fstab
UUID=fc1ecf74-b8b4-44e6-9178-1d9c6e64d7f1 /                       ext4    defaults        1 1
/dev/vdb /opt/wecon ext4 defaults 0 2

再看之前的操作记录,确实当时挂的是/dev/vdb没错:

# history | grep ext4
  339  2022-06-07 16:35:55 root mkfs.ext4 /dev/vdb
  341  2022-06-07 16:36:07 root mount -t ext4 /dev/vdb /opt/wecon
 2212  2022-06-20 21:57:32 root history | grep ext4

所以怀疑这个设备名变了,找到华为云的人工服务,确实是这样的。

不建议采用在“/etc/fstab”直接指定设备名(比如/dev/vdb1)的方法,因为云中设备的顺序编码在关闭或者开启云服务器过程中可能发生改变,例如/dev/vdb1可能会变成/dev/vdb2,可能会导致云服务器重启后不能正常运行。

解决方法就是用磁盘的UUID来取代设备名,通过blkid获取设备的UUID:

blkid /dev/vdb
/dev/db1: UUID="0b3040e2-1367-4abb-841d-ddb0b92693df" TYPE="ext4"

然后在/etc/fstab中配置后重启系统:

# cat /etc/fstab
UUID=fc1ecf74-b8b4-44e6-9178-1d9c6e64d7f1 /                       ext4    defaults        1 1
UUID=0b3040e2-1367-4abb-841d-ddb0b92693df /opt/wecon ext4 defaults 0 2

曲线自救

同样的情况,发生在AWS,很显然我的实例不支持登录后台的方式,也没装会话管理器:
在这里插入图片描述

唯一能做的就是从系统日志这里查看确实进入了维护模式,这个时候就只能曲线自救了。

在这里插入图片描述

1、进入AWS EC2 实例页面,将处于紧急模式的实例A关机,将实例A的系统盘A(AWS中系统盘名称为/dev/sda1)分离。

在这里插入图片描述

在这里插入图片描述

2、进入AWS EC2 实例页面,创建一个和实例A同区域的救援实例B。

3、进入AWS EC2 卷页面,将刚刚分离的系统盘A,挂载为实例B的数据盘B。

在这里插入图片描述

4、将实例B开机并ssh远程登录实例B进行操作。

用命令挂载数据盘B:

mkdir /mnt/rescue
mount /dev/xvdf /mnt/rescue

根据需要编辑数据盘B中的etc/fstab文件:

vi /mnt/rescue/etc/fstab

修改完成后,卸载数据盘B:

sudo umount /mnt/rescue

5、进入AWS EC2 实例页面,将实例B关机,数据盘B重新挂载为实例A的系统盘,启动的实例A就OK了。

关于fstab文件

cat /etc/fstab

LABEL=cloudimg-rootfs   /        ext4   defaults,discard        0 0
# 磁盘文件格式为ext4,默认参数,
UUID=91579631-dff2-4e3b-8d33-1da1f9ef6dc1 /mnt1 ext4 defaults 0 2
# 自动探测文件系统,默认参数,设备不存在也不报错
#UUID=91579631-dff2-4e3b-8d33-1da1f9ef6dc1 /mnt1 auto defaults,nofail 0 0

参考man fstab

  • 第一列:设备名、UUID、LABEL。一般用UUID,设备名可能会变化。
  • 第二列:挂载点,设备挂载在哪个目录下。
  • 第三列:磁盘文件系统的格式。一般是ext4、xfs之类的,有一个可选项是auto,当无法确定的时候可以填auto,让系统自动检测。
  • 第四列:挂载参数,多个选项的情况下以逗号分割。

参考man 8 mountFILESYSTEM-INDEPENDENT MOUNT OPTIONS一节,部分文件系统无关的选项如下:

Async/sync: 设置是否为同步方式运行,默认为async
auto/noauto: 当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto
rw/ro: 是否以以只读或者读写模式挂载
exec/noexec: 限制此文件系统内是否能够进行”执行”的操作
user/nouser: 是否允许用户使用mount命令挂载
suid/nosuid: 是否允许SUID的存在
nofail: 即使设备不存在也不报错
defaults: 同时具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置
......

参考man 8 mountFILESYSTEM-SPECIFIC MOUNT OPTIONS一节,查看特定文件系统相关的选项。

  • 第五列:能否被dump备份命令作用,dump是一个用来作为备份的命令。通常这个参数的值为0或者1
    • 0:不要做dump备份
    • 1:要每天进行dump的操作
    • 2:不定日期的进行dump操作
  • 第六列:是否检验扇区,开机的过程中,系统默认会以fsck检验我们系统是否为完整。
    • 0:不要检验
    • 1:最早检验(一般根目录会选择最早检验)
    • 2:1级别检验完成之后进行检验

参考

  • 华为云 - 设置开机自动挂载磁盘分区
  • 排查 EC2 Linux 实例处于紧急模式的问题 (amazon.com)
  • 什么?加块磁盘就开不开机了? - 知乎 (zhihu.com)
  • linux中的/etc/fstab文件 (loadingok.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/154727.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022年航空发动机行业研究报告

第一章 行业概况 航空发动机制造指主要用来产生拉力或推力使飞机前进的发动机设备。除了产生前进力外,还可以为飞机上的用电设备提供电力,为空调设备等用气设备提供气源。航空发动机制造产业链包括原材料研发、零部件生产制造、分系统和整机制造。 原材…

大智慧同花顺Level2行情数据有什么用

股市L2是大智慧Level2数据。由“上海证券交易所”最新推出的实时行情信息收费服务,主要提供在上海证券交易所上市交易的证券产品的实时交易数据。该行情速度比传统行情快3秒以上,同时包括十档行情、买卖队列、逐笔成交、总买总卖和统计信息等多种新式数据…

Fabric.js 拖放元素进画布

本文简介 点赞 关注 收藏 学会了 学习 Fabric.js,我的建议是看文档不如看 demo。 本文实现的功能:将元素拖进到画布中并生成对应的图形或图片。 效果如下图所示: 思路 要实现以上效果,需要考虑以下几点: 元素有…

婴儿游泳池行业市场经营管理及未来前景展望分析

2023-2029年中国婴儿游泳池行业市场经营管理及未来前景展望报告报告编号:1691316免费目录下载:http://www.cninfo360.com/yjbg/qthy/ly/20230109/1691316.html本报告著作权归博研咨询所有,未经书面许可,任何组织和个人不得以任何形…

PyQt6快速入门-事件处理

事件处理 文章目录 事件处理1、Qt事件介绍2、常用事件函数2.1 paintEvent事件2.2 鼠标事件2.3 窗口大小改变事件2.4 窗口隐藏/关闭/显示事件2.5 键盘按键事件3、事件拦截4、事件过滤器5、事件队列与事件处理1、Qt事件介绍 Qt GUI应用程序的核心是 QApplication 类。 每个GUI应…

Linux 文件 I/O

1.Linux 应用编程中最基础的知识,即文件 I/O(Input、 Outout) , 文件 I/O 指的是对文件的输入/输出操作,说白了就是对文件的读写操作; Linux 下一切皆文件,文件作为 Linux 系统设计思想的核心理…

java Lambda表达式引用类方法

Lambda表达式和方法引用是一对孪生兄弟 而引用类方法是Lambda支持的方法引用中的一种 引用类方法其实就是引用类的静态方法 直接上代码 首先 我们要创建一个包 包下创建一个接口 我这里叫subInterface 参考代码如下 public interface subInterface {int convelutl(String s…

【RabbitMQ】SpringBoot整合RabbitMQ

文章目录搭建初始环境引入依赖配置配置文件HelloWorld模型使用Work模型使用Fanout 广播模型Route 路由模型Topic 订阅模型(动态路由模型)搭建初始环境 引入依赖 <!--引入与rabbitmq集成依赖--> <dependency><groupId>org.springframework.boot</groupId…

NKOJ P3549 可见的点

分析 这道题乍一看是一道几何,实际上,是一道法雷数列模板题; 首先,他让我们求有多少条可见的线,实际上是让我们求有多少种不同的斜率可以存在,而斜率就是表现为yx\Large\frac{y}{x}xy​的形式;可以发现,只有当yx\Large\frac{y}{x}xy​为最简分数时,才能算作一条可见的线,其他…

Linux中如何使用Htop监控工具?【网络安全】

一、Htop界面展示 “Htop是一个用于Linux/Unix系统的交互式实时进程监控应用程序&#xff0c;也是top命令的替代品&#xff0c;它是所有Linux操作系统上预装的默认进程监控工具。 Htop还有许多其他用户友好的功能&#xff0c;这些功能在top命令下不可用 在Htop中&#xff0c;…

蓝桥杯省赛习题练习(二)

题目来源&#xff1a;2020年真题题集&#xff08;B组&#xff09; 注&#xff1a;代码都是自己写的&#xff0c;不是参考答案&#xff01; 目录1. 门牌制作运行结果2. 既约分数运行结果3. 蛇形填数运行结果4. 跑步锻炼运行结果5. 7段码6. 成绩统计运行结果7. 回文日期1. 门牌制…

5.9、TCP报文段的首部格式

为了实现可靠传输&#xff0c;TCP 采用了面向字节流\color{red}面向字节流面向字节流的方式。 但 TCP 在发送数据时&#xff0c;是从发送缓存取出一部分或全部字节并给其添加一个首部使之成为 TCP报文段\color{red}\texttt{TCP} 报文段TCP报文段后进行发送。 一个 TCP 报文段由…

ELAN设计理念:通过梯度路径分析设计网络设计策略

设计高效、高质量的表达性网络架构一直是深度学习领域最重要的研究课题。当今的大多数网络设计策略都集中于如何集成从不同层提取的特征&#xff0c;以及如何设计计算单元来有效地提取这些特征&#xff0c;从而增强网络的表现力。本文提出了一种新的网络设计策略&#xff0c;即…

Django框架MVT模型工作流程

Django 一、Django介绍 Django是一个开源的Web应用框架&#xff0c;由Python写成。采用了MTV的框架模式&#xff0c;它最初是被用来做CMS&#xff08;内容管理系统&#xff09;软件。 使用Django&#xff0c;程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序…

聚威新材在科创板被暂缓审议:毛利率高于同行,张天荣为董事长

2023年1月10日&#xff0c;上海证券交易所披露的信息显示&#xff0c;上海聚威新材料股份有限公司&#xff08;下称“聚威新材”&#xff09;被科创板上市委员会暂缓审议。据贝多财经了解&#xff0c;聚威新材仍有多个问题需进一步落实事项。 上市委要求聚威新材落实&#xff1…

YOLOv5进行水域游泳者检测系统源码+标注好的数据集

YoloV5对水域中游泳者进行检测 一、说明 1.1 项目说明 完整代码下载地址&#xff1a;YOLOv5进行水域游泳者检测系统源码标注好的数据集 本项目是使用 YoloV5 来训练自己的数据集&#xff0c;所以仅仅展示训练自定义数据集的过程。 本次视频检测的结果已经上传至B站&#x…

MATLAB-样条插值运算

MATLAB中不仅提供了一维插值、二维插值和三维插值方法&#xff0c;还提供了样条插值的方法。其主要思想是:假定有一组已知的数据点&#xff0c;希望找到该组数据的拟合多项式。在多项式的拟合过程中&#xff0c;对于每组相邻的样本数据点&#xff0c;存在一条曲线&#xff0c;该…

MCU-51:单片机之AD模数转换与DA数模转换

目录一、AD/DA介绍二、硬件电路模型2.1 模型2.2 硬件电路三、运算放大器3.1 运算放大器介绍3.2 运放电路四、DA原理4.1 T型电阻网络DA转换器&#xff1a;4.2 PWM型DA转换器&#xff1a;五、AD原理六、AD/DA性能指标七、XPT2046介绍7.1 功能说明7.2 XPT2046时序八、代码演示8.1 …

JAVA17连接sqlserver:驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接

JAVA17连接sqlserver报错 : com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]”。 Clien…

【Java寒假打卡】Java基础-字节输入流和字节输出流

【Java寒假打卡】Java基础-字节输入流和字节输出流&#xff09;概述字节输出流快速入门字节输出流的注意事项输出字节流-一次性写多个数据字节输出流的两个问题try-catch-finally捕获异常字节输入流写数据字节流读数据 一次性读取多个数据案例、文件复制使用字节数组进行拷贝文…