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

ubuntu16 重启之后lvm信息丢失故障恢复

一、背景

1、问题背景

业务有一台物理开发服务器,文件系统有损坏;由于重启时没有检查,导致重启卡住。后面通过断电重新启动之后,无法进入系统;进入救援模式,注释数据盘挂载。重启之后进入系统,发现数据盘做的lvm信息丢失;通过pvs、vgs、lvs均无法看该lvm信息;lsblk 命令查询,也只能看到只有盘符/dev/sdb和分区信息/dev/sdb1

2、主机信息

  • 操作系统: ubuntu16.04
  • 逻辑卷名称:/dev/vg_data/lv_data

二、lvm恢复步骤

1、确认lvm备份信息是否存在

备份目录一般在:/etc/lvm/arcive或者/etc/lvm/backup下

root@Ubuntu-8-70:/etc/lvm# ll
total 108
drwxr-xr-x   4 root root  4096 Nov 23 11:21 ./
drwxr-xr-x 116 root root 12288 Nov 26 09:29 ../
drwx------   2 root root  4096 Nov 26 09:26 archive/
drwx------   2 root root  4096 Nov 26 09:26 backup/root@Ubuntu-8-70:/etc/lvm/archive# ll 
total 24
drwx------ 2 root root 4096 Nov 26 09:26 ./
drwxr-xr-x 4 root root 4096 Nov 23 11:21 ../
-rw------- 1 root root 1338 Aug 13  2020 vg_data_00000-1854432265.vg   ##lvm备份存在root@Ubuntu-8-70:~# cat  /etc/lvm/archive/vg_data_00000-1854432265.vg
# Generated by LVM2 version 2.02.133(2) (2015-10-30): Thu Aug 13 23:57:38 2020contents = "Text Format Volume Group"
version = 1description = "Created *before* executing 'pvscan --cache --activate ay --major 8 --minor 17'"creation_host = "Ubuntu"        # Linux Ubuntu 4.10.0-28-generic #32~16.04.2-Ubuntu SMP Thu Jul 20 10:19:48 UTC 2017 x86_64
creation_time = 1597334258      # Thu Aug 13 23:57:38 2020vg_data {id = "qPdnvh-uHhd-pSdO-1yz3-KgOz-Q3eD-tguAyz"seqno = 2format = "lvm2"                 # informationalstatus = ["RESIZEABLE", "READ", "WRITE"]flags = []extent_size = 8192              # 4 Megabytesmax_lv = 0max_pv = 0metadata_copies = 0physical_volumes {pv0 {id = "e4lnF9-ccfB-6ezE-Dh4Z-WwQj-IvOC-RaYjyP"device = "/dev/sdb1"    # Hint onlystatus = ["ALLOCATABLE"]flags = []dev_size = 21090529280  # 9.82104 Terabytespe_start = 2048pe_count = 2574527      # 9.82104 Terabytes}}logical_volumes {lv_data {id = "wV3cRh-u0YD-nT0C-2Wcf-vAoq-OCwL-QfwxCA"status = ["READ", "WRITE", "VISIBLE"]flags = []creation_host = "Ubuntu"creation_time = 1597333822      # 2020-08-13 23:50:22 +0800segment_count = 1segment1 {start_extent = 0extent_count = 2574527  # 9.82104 Terabytestype = "striped"stripe_count = 1        # linearstripes = ["pv0", 0]}}}
}

2、数据备份,操作前一定要先备份数据

由于数据盘文件系统已经损坏,无法从文件系统侧备份,故使用dd,备份整个/dev/sdb1;数据盘总空间:9.8T,已经使用空间6.6T,需要先准备一个可以容纳整个9.8T磁盘的存储空间。

dd if=/dev/sdb1  of=/backup/sdb_backup.img  bs=64k    conv=noerror,sync status=progress ##参数解析:
if:输入文件,表示需要读取的文件或设备;
of:输出文件,表示需要读取的文件或设备;
bs: 块大小,指定数据读写块的大小,可以适当调整更大的值,值越大相对系统调用就少,整体传输速度会更快些
status=progress   可获取实时的进度信息

3、进行lvm恢复

(1)、恢复物理卷上的元数据

  • 查看备份文件中的物理卷id
root@Ubuntu-8-70:~# cat  /etc/lvm/archive/vg_data_00000-1854432265.vg        
............physical_volumes {pv0 {id = "e4lnF9-ccfB-6ezE-Dh4Z-WwQj-IvOC-RaYjyP"device = "/dev/sdb1"    # Hint onlystatus = ["ALLOCATABLE"]flags = []dev_size = 21090529280  # 9.82104 Terabytespe_start = 2048pe_count = 2574527      # 9.82104 Terabytes}}
............root@Ubuntu-8-70:~# pvcreate --uuid e4lnF9-ccfB-6ezE-Dh4Z-WwQj-IvOC-RaYjyP  --restorefile  /etc/lvm/archive/vg_data_00000-1854432265.vg   /dev/sdb1Physical volume "/dev/sdb1" successfully created

(2)、恢复卷组的元数据

vgcfgrestore vg_data

(3)、查看卷组上的逻辑卷并激活

root@Ubuntu-8-70:~# lvs --all --options +devices vg_data   ##列出卷组的逻辑卷,恢复的逻辑卷处于未激活状态root@Ubuntu-8-70:~#  lvchange --activate y vg_data/lv_data  ##激活逻辑卷root@Ubuntu-8-70:~# mount /dev/vg_data/lv_data   /work    ##尝试挂载

备注:取消/etc/fstab中/work开机挂载注释,重启服务器验证是否能正常开机和正常挂载

三、修复文件系统(额外工作,如果文件系统没有这个问题,则无需处理)

1、问题表现

root@Ubuntu-8-70:/work# cd /work/root@Ubuntu-8-70:/work# ll -t    ##出现报错提示
ls: cannot access 'nohup.out': Structure needs cleaning
total 1065472
..........
-??????????   ? ?        ?                 ?            ? nohup.out

2、修复处理

root@Ubuntu-8-70:~# umount -l /work   ## 卸载有问题的分区root@Ubuntu-8-70:~# fsck.ext4 -y  /dev/vg_data/lv_data  ##-y:参数自动确认yes选项,避免交互式操作,一定要记得加上;fsck.ext4用于检查和修复 ext4 文件系统的工具root@Ubuntu-8-70:~# mount -a    ##重新挂载数据盘root@Ubuntu-8-70:/work# ll   ##验证修复结果
total 1065584
drwxr-xr-x.  18 root      root            4096 Nov 26 09:30 ./
drwxr-xr-x.  29 root      root            4096 Nov 25 10:00 ../
.......
p--S------    1 402656438 543168512          0 Oct 24  1994 nohup.out|
.......root@Ubuntu-8-70:/work# rm -rf nohup.out

相关文章:

ubuntu16 重启之后lvm信息丢失故障恢复

一、背景 1、问题背景 业务有一台物理开发服务器,文件系统有损坏;由于重启时没有检查,导致重启卡住。后面通过断电重新启动之后,无法进入系统;进入救援模式,注释数据盘挂载。重启之后进入系统&#xff0c…...

【华为OD-E卷 - 热点网站统计 100分(python、java、c++、js、c)】

【华为OD-E卷 - 热点网站统计 100分(python、java、c、js、c)】 题目 企业路由器的统计页面,有一个功能需要动态统计公司访问最多的网页URL top N。请设计一个算法,可以高效动态统计Top N的页面 输入描述 每一行都是一个URL或…...

Ubuntu下安装Android Sdk

下载android sdk命令行工具 https://developer.android.com/studio?hlzh-cn#command-tools mkdir android-sdk cd android-sdk unzip commandlinetools-linux-11076708_latest.zip 添加环境变量到~/.bashrc export ANDROID_HOME$HOME/android-sdk export PATH$PATH:$ANDRO…...

【JVM】总结篇-类的加载篇之 类的加载器 和ClassLoader分析

文章目录 类的加载器ClassLoader自定义类加载器双亲委派机制概念源码分析优势劣势如何打破Tomcat 沙箱安全机制JDK9 双亲委派机制变化 类的加载器 获得当前类的ClassLoader clazz.getClassLoader() 获得当前线程上下文的ClassLoader Thread.currentThread().getContextClassLoa…...

怎样修改el-table主题样式

起因:el-table有主题样式,部分需要单独设置 环境:ideanodejs插件谷歌浏览器 第一步:找到scss文件: 谷歌浏览器打开表格页面,ctrlshifti打开开发者工具,点击后鼠标移动到表格单元格上单击一下…...

MySQL(二)MySQL DDL数据库定义语言

1. MySQL DDL数据库定义语言 1.1. MySQL定义语言 进入MySQL mysql -u root -p(回车后输入密码,即可进入mysq1)1.1.1. 数据库操作 (1)查看数据库 mysql>show databases;注:MySQL语句分隔符为“;”   mysql库很重要它里面有…...

Spring Boot 项目启动报 NoClassDefFoundError 异常的原因分析与解决方案 - jackson 版本不一致

目录 报错: 问题分析: 解决方案: 方案 1:对 Jackson 版本进行统一 方案 2:升级 Springfox 版本 方案 3:替换 Springfox 为 springdoc-openapi(推荐) 方案 4:排除冲突的 Jack…...

原型与原型链

什么是原型(对象) 在JavaScript中,每个对象都具有一个原型对象prototype,目的是:利用原型对象实现在同一原型链中的原型方法共享 在理解原型对象前,需要先了解什么是构造函数 构造函数 用来初始化对象的…...

【Linux】信号处理

一、Linux系统信号 1、常见的系统信号 常见的Linux系统信号 信号值描述1SIGHUP挂起(hang up)进程2SIGINT中断进(interrupt)程3SIGQUIT停止(stop)进程9SIGKILL无条件终止(terminate)…...

5个不同类型的mysql数据库安装

各种社区版本下载官方地址:MySQL :: MySQL Community Downloads 一、在线YUM仓库(Linux) 选择 MySQL Yum Repository 选择对应版本下载仓库安装包(No thanks, just start my download.) 下载方法1:下载到本…...

python学习笔记—12—布尔类型、if语句

1. 布尔类型 (1) 定义 (2) 比较运算符 (3) 代码演示 1. 手动定义 bool_1 True bool_2 False print(f"bool_1的内容是:{bool_1}, 类型是:{type(bool_1)}") print(f"bool_2的内容是:{bool_2}, 类型是:{type(bool…...

分数阶傅里叶变换代码 MATLAB实现

function Faf myfrft(f, a) %分数阶傅里叶变换函数 %输入参数: %f:原始信号 %a:阶数 %输出结果: %原始信号的a阶傅里叶变换N length(f);%总采样点数 shft rem((0:N-1)fix(N/2),N)1;%此项等同于fftshift(1:N),起到翻…...

《数据结构》期末考试测试题【中】

《数据结构》期末考试测试题【中】 21.循环队列队空的判断条件为?22. 单链表的存储密度比1?23.单链表的那些操作的效率受链表长度的影响?24.顺序表中某元素的地址为?25.m叉树第K层的结点数为?26. 在双向循环链表某节点…...

openwrt 清缓存命令行

一、查看缓存 : free -m 二、清缓存:echo 3 > /proc/sys/vm/drop_caches  三、详解。 释放物理页缓存 echo 1 > /proc/sys/vm/drop_caches 释放可回收的slab对象,包含inode and dentry echo 2 > /proc/sys/vm/drop_caches 同时…...

RP2K:一个面向细粒度图像的大规模零售商品数据集

这是一种用于细粒度图像分类的新的大规模零售产品数据集。与以往专注于相对较少产品的数据集不同,我们收集了2000多种不同零售产品的35万张图像,这些图像直接在真实的零售商店的货架上拍摄。我们的数据集旨在推进零售对象识别的研究,该研究具…...

.NET Core FluentAPI

目录 约定配置 主要规则 两种配置方式 Data Annotation Fluent API Fluent API配置 Fluent API众多方法 选择 约定配置 主要规则 表名采用DbContext中的对应的DbSet的属性名。数据表列的名字采用实体类属性的名字,列的数据类型采用和实体类属性类型最兼容…...

【C++数据结构——查找】顺序查找(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 一、根据输入数据建立顺序表 二、顺序表的输出 三、顺序查找算法 测试说明 通关代码 测试结果 任务描述 本关任务:实现顺序查找的算法 相关知识 为了完成本关任务,你需要掌握: 根据输入数据建立…...

HTTP Scheme 通常指的是在 URL 中用于指定使用 HTTP 协议的方案(scheme)

HTTP Scheme 通常指的是在 URL 中用于指定使用 HTTP 协议的方案(scheme)。URL(统一资源定位符)中的 scheme 部分指明了访问资源所使用的协议。对于 HTTP,有两个主要的 scheme: - **http**:表示…...

基于Matlab的变压器仿真模型建模方法(13):单相升压自耦变压器的等效电路和仿真模型

1.单相升压自耦变压器的基本方程和等效电路 单相升压自耦变压器的接线原理图如图1所示。在建立自耦变压器的基本方程时,仍然把它看成是从双绕组变压器演变而来。在图1中,设节点a到节点b部分的绕组的匝数为,对应于双绕组变压器的原边绕组;节点c到节点a部分的绕组的绕组匝数为…...

【Vue.js】监听器功能(EventListener)的实际应用【合集】

目录 🤔在实际开发过程中,我遇到了一个颇为棘手的小问题 😋解决这个小问题 问题出现的原因剖析 解决方法阐述 问题成功解决!​ 📖相关知识总结 基本概念 使用方法 实际应用场景 🤔在实际开发过程中…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...

离线语音识别方案分析

随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...