Ubuntu 磁盘修复

Ubuntu 磁盘修复

在 ubuntu 文件系统变成只读模式,该处理呢?
文件系统内部的错误,如索引错误、元数据损坏等,也可能导致系统进入只读状态。磁盘坏道或硬件故障也可能引发文件系统只读的问题。/etc/fstab配置错误,可能导致文件系统被错误地挂载为只读模式。接下来跟着文章逐步排查、修复问题。

作者:炭烤毛蛋 ,点击博主了解更多。


提示:数据无价,操作需谨慎。

文章目录

  • Ubuntu 磁盘修复
  • 1. 硬盘错误日志
  • 2. 硬盘错误分析
  • 3. 硬盘数据恢复
    • 3.1 借助 fsck 命令修复文件系统
    • 3.2 借助 smartctl 检查硬盘健康状态
  • 结语


1. 硬盘错误日志

Ubuntu 系统在正常使用过程突然出现文件系统变为只读,没过多久系统重启。
重启后系统无法正常开机,而是停留在启动的命令终端。

  • 启动日志
Ubuntu 22.04.2 LTS Linux tty1
Cloud-init[1327] v.23.1.2-OubuntuO~22.04.1 running 'moudles:config' at Mon Aug  5 11:16:56 PM CST 2019 +0000. Up 199.40 seconds.
Cloud-init[1334] v.23.1.2-OubuntuO~22.04.1 running 'moudles:final' at Mon Aug  5 11:16:56 PM CST 2019 +0000. Up 199.92 seconds.
Cloud-init[1334] v.23.1.2-OubuntuO~22.04.1 finished at Mon Aug  5 11:16:57 PM CST 2019 +0000. Datasource DataSourceNone. Up 200.06 seconds.
Cloud-init[1334] Mon Aug  5 11:16:57 PM CST 2019 - cc_final_message.py[WWARNING]: Used failback datasource
blk_update_request: I/O error, dev sda, sector 24460536 op 0x0:(READ) flag 0x80700 phys_seg 2 prio class 0
blk_update_request: I/O error, dev sda, sector 24460576 op 0x0:(READ) flag 0x80700 phys_seg 1 prio class 0
blk_update_request: I/O error, dev sda, sector 24460624 op 0x0:(READ) flag 0x80700 phys_seg 1 prio class 0
blk_update_request: I/O error, dev sda, sector 24460576 op 0x0:(READ) flag 0x0 phys_seg 1 prio class 0
blk_update_request: I/O error, dev sda, sector 24460576 op 0x0:(READ) flag 0x0 phys_seg 1 prio class 0
blk_update_request: I/O error, dev sda, sector 1835808720 op 0x0:(READ) flag 0x80700 phys_seg 4 prio class 0
blk_update_request: I/O error, dev sda, sector 1835808720 op 0x0:(READ) flag 0x0 phys_seg 1 prio class 0
blk_update_request: I/O error, dev sda, sector 24466768 op 0x0:(READ) flag 0x80700 phys_seg 2 prio class 0
blk_update_request: I/O error, dev sda, sector 24466808 op 0x0:(READ) flag 0x80700 phys_seg 1 prio class 0
blk_update_request: I/O error, dev sda, sector 24466768 op 0x0:(READ) flag 0x0 phys_seg 1 prio class 0

从启动日志分析磁盘可能出现坏道,或者坏块影响正常使用。

  • 尝试修复启动异常
    尝试重新挂载文件系统,发现仍然为只读模式。
mount -o remount,rw /

尝试显示文件系统的元数据,如果看到检测异常信息,很大概率是磁盘问题。

tune2fs -l /dev/sda | grep checked

2. 硬盘错误分析

磁盘损坏可能导致文件系统不稳定或丢失数据,影响系统性能甚至导致系统无法启动。如果磁盘出现严重的物理故障,可能需要更换硬盘或备份数据后进行恢复。

  • bios 查看磁盘状态
    重新进入 BIOS 查看硬盘,发现硬盘已经掉线,使用机械硬盘从现象确认磁盘存在坏道问题。
    raid0

  • 重新挂载磁盘
    raid0 阵列硬盘出现硬盘损坏情况,系统默认记录当前状态。想要重新挂载该磁盘需要先清除磁盘标识,再尝试挂载硬盘。
    disk-fail
    磁盘挂载成功,然后仍然无法进入系统。好消息确认磁盘已损坏,坏消息磁盘有大量数据。
    抱着能找回尽量找回的原则,可以尝试从 U 盘系统修复磁盘。

  • U盘引导进入系统
    借助带有 Ubuntu 安装 U盘,然后进入到 Ubuntu 尝试安装的临时系统,然后尝试修复损坏磁盘。
    制作启动U盘和U盘启动,此处省略 1万字,需要的小伙伴自行百度。进入U盘系统按照如下方法修复磁盘。

3. 硬盘数据恢复

在 Ubuntu 系统中,修复磁盘通常是为了修复文件系统的损坏或修复磁盘上的错误。修复 Ubuntu 系统中的磁盘问题,通常包括使用 fsck 修复文件系统错误、使用 smartctl 检查硬盘健康状态,或者通过图形界面工具进行管理。

3.1 借助 fsck 命令修复文件系统

fsck(文件系统检查器)是 Linux 系统中用于检查和修复文件系统错误的工具。使用此命令可以扫描文件系统并自动修复文件系统中的错误。

  • 检查磁盘
fsck /dev/sda

/dev/sda 可以替换为需要修复的磁盘设备分区,第一个磁盘分区,则使用 /dev/sda1。

  • 尝试自动修复磁盘
    使用 fsck 尝试自动修复磁盘,该命可以自动修复错误。
fsck -y /dev/sda

提示:磁盘正在被使用(比如挂载了某个分区),你需要先卸载该分区再执行恢复磁盘数据。

  • 强制修复
fsck -f /dev/sda

好在磁盘损坏较轻,经过简单修复可以读到原来数据。接下来备份磁盘内容就不必多讲。

  • fsck 命令详细注释
Usage:fsck [options] -- [fs-options] [<filesystem> ...]Check and repair a Linux filesystem.Options:-A         check all filesystems-C [<fd>]  display progress bar; file descriptor is for GUIs-l         lock the device to guarantee exclusive access-M         do not check mounted filesystems-N         do not execute, just show what would be done-P         check filesystems in parallel, including root-R         skip root filesystem; useful only with '-A'-r [<fd>]  report statistics for each device checked;file descriptor is for GUIs-s         serialize the checking operations-T         do not show the title on startup-t <type>  specify filesystem types to be checked;<type> is allowed to be a comma-separated list-V         explain what is being done-?, --help     display this help--version  display versionSee the specific fsck.* commands for available fs-options.
For more details see fsck(8).

3.2 借助 smartctl 检查硬盘健康状态

如果怀疑磁盘存在物理问题,可以使用 smartctl 工具来检查硬盘的健康状况,特别是对于固态硬盘 (SSD) 和机械硬盘 (HDD) 都非常有用。

  • 安装 stmartmontools
sudo apt update
sudo apt install smartmontools
  • 检查硬盘状态
smartctl -a /dev/sda

将输出硬盘的健康状态报告,包括错误日志和一些详细的健康信息。看到“Reallocated Sector Count”或“Pending Sector”,可能硬盘正在出现物理故障。

  • smartctl 命令详细注释
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.167.4-microsoft-standard-WSL2] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.orgUsage: smartctl [options] device============================================ SHOW INFORMATION OPTIONS =====-h, --help, --usageDisplay this help and exit-V, --version, --copyright, --licensePrint license, copyright, and version information and exit-i, --infoShow identity information for device--identify[=[w][nvb]]Show words and bits from IDENTIFY DEVICE data                (ATA)-g NAME, --get=NAMEGet device setting: all, aam, apm, dsn, lookahead, security,wcache, rcache, wcreorder, wcache-sct-a, --allShow all SMART information for device-x, --xallShow all information for device--scanScan for devices--scan-openScan for devices and try to open each device================================== SMARTCTL RUN-TIME BEHAVIOR OPTIONS =====-j, --json[=cgiosuvy]Print output in JSON or YAML format-q TYPE, --quietmode=TYPE                                           (ATA)Set smartctl quiet mode to one of: errorsonly, silent, noserial-d TYPE, --device=TYPESpecify device type to one of:ata, scsi[+TYPE], nvme[,NSID], sat[,auto][,N][+TYPE], usbcypress[,X], usbjmicron[,p][,x][,N], usbprolific, usbsunplus, sntjmicron[,NSID], sntrealtek, intelliprop,N[+TYPE], jmb39x[-q],N[,sLBA][,force][+TYPE], jms56x,N[,sLBA][,force][+TYPE], marvell, areca,N/E, 3ware,N, hpt,L/M/N, megaraid,N, aacraid,H,L,ID, cciss,N, auto, test-T TYPE, --tolerance=TYPE                                           (ATA)Tolerance: normal, conservative, permissive, verypermissive-b TYPE, --badsum=TYPE                                              (ATA)Set action on bad checksum to one of: warn, exit, ignore-r TYPE, --report=TYPEReport transactions (see man page)-n MODE[,STATUS], --nocheck=MODE[,STATUS]                     (ATA, SCSI)No check if: never, sleep, standby, idle (see man page)============================== DEVICE FEATURE ENABLE/DISABLE COMMANDS =====-s VALUE, --smart=VALUEEnable/disable SMART on device (on/off)-o VALUE, --offlineauto=VALUE                                       (ATA)Enable/disable automatic offline testing on device (on/off)-S VALUE, --saveauto=VALUE                                          (ATA)Enable/disable Attribute autosave on device (on/off)-s NAME[,VALUE], --set=NAME[,VALUE]Enable/disable/change device setting: aam,[N|off], apm,[N|off],dsn,[on|off], lookahead,[on|off], security-freeze,standby,[N|off|now], wcache,[on|off], rcache,[on|off],wcreorder,[on|off[,p]], wcache-sct,[ata|on|off[,p]]======================================= READ AND DISPLAY DATA OPTIONS =====-H, --healthShow device SMART health status-c, --capabilities                                            (ATA, NVMe)Show device SMART capabilities-A, --attributesShow device SMART vendor-specific Attributes and values-f FORMAT, --format=FORMAT                                          (ATA)Set output format for attributes: old, brief, hex[,id|val]-l TYPE, --log=TYPEShow device log. TYPE: error, selftest, selective, directory[,g|s],xerror[,N][,error], xselftest[,N][,selftest], background,sasphy[,reset], sataphy[,reset], scttemp[sts,hist],scttempint,N[,p], scterc[,N,M], devstat[,N], defects[,N], ssd,gplog,N[,RANGE], smartlog,N[,RANGE], nvmelog,N,SIZE-v N,OPTION , --vendorattribute=N,OPTION                            (ATA)Set display OPTION for vendor Attribute N (see man page)-F TYPE, --firmwarebug=TYPE                                         (ATA)Use firmware bug workaround:none, nologdir, samsung, samsung2, samsung3, xerrorlba, swapid-P TYPE, --presets=TYPE                                             (ATA)Drive-specific presets: use, ignore, show, showall-B [+]FILE, --drivedb=[+]FILE                                       (ATA)Read and replace [add] drive database from FILE[default is +/etc/smart_drivedb.hand then    /var/lib/smartmontools/drivedb/drivedb.h]============================================ DEVICE SELF-TEST OPTIONS =====-t TEST, --test=TESTRun test. TEST: offline, short, long, conveyance, force, vendor,N,select,M-N, pending,N, afterselect,[on|off]-C, --captiveDo test in captive mode (along with -t)-X, --abortAbort any non-captive test on device=================================================== SMARTCTL EXAMPLES =====smartctl --all /dev/sda                    (Prints all SMART information)smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda(Enables SMART on first disk)smartctl --test=long /dev/sda          (Executes extended disk self-test)smartctl --attributes --log=selftest --quietmode=errorsonly /dev/sda(Prints Self-Test & Attribute errors)smartctl --all --device=3ware,2 /dev/sdasmartctl --all --device=3ware,2 /dev/twe0smartctl --all --device=3ware,2 /dev/twa0smartctl --all --device=3ware,2 /dev/twl0(Prints all SMART info for 3rd ATA disk on 3ware RAID controller)smartctl --all --device=hpt,1/1/3 /dev/sda(Prints all SMART info for the SATA disk attached to the 3rd PMPortof the 1st channel on the 1st HighPoint RAID controller)smartctl --all --device=areca,3/1 /dev/sg2(Prints all SMART info for 3rd ATA disk of the 1st enclosureon Areca RAID controller)

结语

不枉博主详细讲解,欢迎订阅博主–炭烤毛蛋 。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android系统定制APP开发_如何对应用进行系统签名

前言 当项目开发需要使用系统级别权限或frame层某些api时&#xff0c;普通应用是无法使用的&#xff0c;需要在AndroidManifest中配置sharedUserId&#xff1a; AndroidManifest.xml中的android:sharedUserId“android.uid.system”&#xff0c;代表的意思是和系统相同的uid&a…

【MySQL】DATEDIFF()函数使用

DATEDIFF 函数用于计算两个日期之间的差值&#xff0c;以天为单位 DATEDIFF 函数返回一个整数&#xff0c;表示 date1 和 date2 之间的天数。如果 date1 在 date2 之前&#xff0c;结果为负数&#xff1b;如果在 date2 之后&#xff0c;结果为正数&#xff1b;如果相等&#xf…

yum系统报错:SyntaxError: multiple exception types must be parenthesized

执行yum相关步骤报错如下&#xff1a; File "/usr/bin/yum", line 30except KeyboardInterrupt, e:^^^^^^^^^^^^^^^^^^^^ SyntaxError: multiple exception types must be parenthesized原因&#xff1a;python解释器版本错误&#xff0c;yum运行版本为python 2.7&am…

MapReduce完整工作流程

1、mapreduce工作流程(终极版) 0. 任务提交 1. 拆-split逻辑切片--任务切分。 FileInputFormat--split切片计算工具 FileSplit--单个计算任务的数据范围。 2. 获得split信息和个数。 MapTask阶段 1. 读取split范围内的数据。k(偏移量)-v(行数据) 关键API&#xff1a;TextI…

毕业项目推荐:基于yolov8/yolov5/yolo11的动物检测识别系统(python+卷积神经网络)

文章目录 概要一、整体资源介绍技术要点功能展示&#xff1a;功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出&#xff08;xls格式&#xff09;功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…

了解Node.js

Node.js是一个基于V8引擎的JavaScript运行时环境&#xff0c;它允许JavaScript代码在服务器端运行&#xff0c;从而实现后端开发。Node.js的出现&#xff0c;使得前端开发人员可以利用他们已经掌握的JavaScript技能&#xff0c;扩展技能树并成为全栈开发人员。本文将深入浅出地…

MAC上安装Octave

1. 当前最新版Octave是9.3版本&#xff0c;需要把mac os系统升级到14版本&#xff08;本人之前的版本是10版本&#xff09; https://wiki.octave.org/Octave_for_macOS octave的历史版本参考此文档&#xff1a;Octave for macOS (outdated) - Octavehttps://wiki.octave.org/Oc…

矩阵求逆的几种方式

矩阵求逆的几种方式&#xff08;以二阶为例&#xff09; 矩阵求逆的方法有多种&#xff0c;以下是常用的几种方式总结&#xff1a; 1. 行列式公式法 这是最常见的方法&#xff0c;适用于 2 2 2 \times 2 22矩阵。 对于矩阵&#xff1a; Φ [ a b c d ] , \Phi \begin{bma…

【优选算法篇】:深入浅出位运算--性能优化的利器

✨感谢您阅读本篇文章&#xff0c;文章内容是个人学习笔记的整理&#xff0c;如果哪里有误的话还请您指正噢✨ ✨ 个人主页&#xff1a;余辉zmh–CSDN博客 ✨ 文章所属专栏&#xff1a;优选算法篇–CSDN博客 文章目录 一.位运算一.位运算概述二.常见的位运算操作符三.常见的位运…

每日十题八股-2025年1月12日

1.为什么四次挥手之后要等2MSL? 2.服务端出现大量的timewait有哪些原因? 3.TCP和UDP区别是什么&#xff1f; 4.TCP为什么可靠传输 5.怎么用udp实现http&#xff1f; 6.tcp粘包怎么解决&#xff1f; 7.TCP的拥塞控制介绍一下&#xff1f; 8.描述一下打开百度首页后发生的网络过…

微信小程序——创建滑动颜色条

在微信小程序中&#xff0c;你可以使用 slider 组件来创建一个颜色滑动条。以下是一个简单的示例&#xff0c;展示了如何实现一个颜色滑动条&#xff0c;该滑动条会根据滑动位置改变背景颜色。 步骤一&#xff1a;创建小程序项目 首先&#xff0c;使用微信开发者工具创建一个新…

嵌入式Linux之文件IO

一、标准IO库 1.1 打开/关闭文件 fopen 新建 fopen_test.c&#xff0c;写入以下内容&#xff1a; #include <stdio.h> int main() {/* 打开文件函数&#xff1a;FILE *fopen (const char *__restrict __filename,const char *__restrict __modes)参数&#xff1a;c…

HTML5实现好看的端午节网页源码

HTML5实现好看的端午节网页源码 前言一、设计来源1.1 网站首页界面1.2 登录注册界面1.3 端午节由来界面1.4 端午节习俗界面1.5 端午节文化界面1.6 端午节美食界面1.7 端午节故事界面1.8 端午节民谣界面1.9 联系我们界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 H…

【2024年华为OD机试】(A卷,100分)- 单词倒序(Java JS PythonC/C++)

一、问题描述 题目描述 输入单行英文句子&#xff0c;里面包含英文字母&#xff0c;空格以及,.?三种标点符号&#xff0c;请将句子内每个单词进行倒序&#xff0c;并输出倒序后的语句。 输入描述 输入字符串S&#xff0c;S的长度 1 ≤ N ≤ 100 输出描述 输出倒序后的字…

插入实体自增主键太长,mybatis-plaus自增主键

1、问题 spring-boot整合mybtais执行insert语句时&#xff0c;主键id为长文本数据。 2、分析问题 1)数据库主键是否自增 2&#xff09;数据库主键的种子值设置的多少 3、解决问题 1&#xff09;数据库主键设置的时自增 3&#xff09;种子值是1 所以排查是数据库的问题 4、继…

Java高频面试之SE-11

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本牛马baby今天又来了&#xff01;哈哈哈哈哈嗝&#x1f436; Java中是引用传递还是值传递&#xff1f; 在 Java 中&#xff0c;方法参数传递是通过 值传递 的方式实现的&#xff0c;但这可能会引起一…

Proser:升级为简易的通讯调试助手软件

我本来打算将Proser定位为一个直观的协议编辑、发送端模拟软件&#xff0c;像下面这样。 但是按耐不住升级的心理&#xff0c;硬生生的把即时收发整合了进去&#xff0c;就像这样&#xff01; 不过&#xff0c;目前针对即时收发还没有发送历史、批量发送等功能&#xff0c;…

php 使用simplexml_load_string转换xml数据格式失败

本文介绍如何使用php函数解析xml数据为数组。 <?php$a <xml><ToUserName><![CDATA[ww8b77afac71336111]]></ToUserName><FromUserName><![CDATA[sys]]></FromUserName><CreateTime>1736328669</CreateTime><Ms…

计算机视觉算法实战——打电话行为检测

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​​​​ ​​​​​​​​​​​​​​​ ​​​​​​ ​ 1. 引言✨✨ 随着智能手机的普及&#xff0c;打电话行为检测成为了计算机视…

SpringBoot日常:集成Kafka

文章目录 1、pom.xml文件2、application.yml3、生产者配置类4、消费者配置类5、消息订阅6、生产者发送消息7、测试发送消息 本章内容主要介绍如何在springboot项目对kafka进行整合&#xff0c;最终能达到的效果就是能够在项目中通过配置相关的kafka配置&#xff0c;就能进行消息…