linux服务器系统盘坏且系统盘为软raid的修复方法
1 需要换新盘的情况
1.1 一块盘grub损坏修复
一块盘grub损坏修复(可通过另一块盘进入系统的情况)。更换硬盘的方式,可以热插拔,也可以服务器断电后更换,但如果是热插拔,可能会导致盘符变更。坏了一块硬盘的情况下,软raid1恢复方法(以sdb为新更换的硬盘为例):
1.1.1 拷贝硬盘分区信息
拷贝正常的那块硬盘分区信息到新的硬盘
[root@ ~]#sfdisk -d /dev/sda | sfdisk -f /dev/sdb
1.1.2 查看sdb的分区与sda是否一致
[root@ ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 300.0 GB, 300000000000 bytes
255 heads, 63 sectors/track, 36472 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 1 523 4194304 82 Linux swap / Solaris
Partition 1 does not end on cylinder boundary.
/dev/sdb2 * 523 36473 288773120 fd Linux raid autodetect
[root@ ~]# fdisk -l /dev/sda
Disk /dev/sda: 300.0 GB, 300000000000 bytes
255 heads, 63 sectors/track, 36472 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000dafc6
Device Boot Start End Blocks Id System
/dev/sda1 1 523 4194304 82 Linux swap / Solaris
Partition 1 does not end on cylinder boundary.
/dev/sda2 * 523 36473 288773120 fd Linux raid autodetect
1.1.3 让内核重载分区表
(若可以重启服务器不需执行此部)
[root@ ~]# partprobe /dev/sdb
1.1.4 把第二块盘加入raid1中
[root@ ~]# mdadm /dev/md0 -a /dev/sdb2
等数据同步到SDB 完成之后执行
1.1.5 复制操作系统的引导程序
(复制操作系统的前512字节的引导程序到新的硬盘,最关键一步,否则开机无法正常引导,现场软raid同步后没法启动就是这个原因)
[root@ ~]# dd if=/dev/sda of=/dev/sdb bs=512 count=1
ps:硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,里面却存放了预启动信息、分区表信息。
系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0×7c00地址所在的物理内存中。被复制到物理内存的内容就是Boot Loader,即grub。
1.1.6 添加新盘swap
[root@ ~]# mkswap
/dev/sdb1
[root@ ~]# swapon
/dev/sdb1
上面命令只在未重启时生效
1.1.7 修改fstab
修改fstab中已经被换掉的硬盘的UUID为新swap的UUID,保证swap重启服务器可以生效
[root@ ~]# cat
/etc/fstab
UUID可通过blkid查看
1.2 两块盘grub均损坏(无法进入系统)
有一些之前已经换过系统盘,没有按照上面的操作,然后另一块也坏了,此时两块硬盘都没法进入系统,采用如下方法:
挂载光盘,进应急模式修复







Bash-4.1# chroot /mnt/sysimage
Sh-4.1# grub
Grub > root (hd0,1)
Grub> setup (hd0)
Grub> quit
Sh-4.1# exit
Bash-4.1# reboot

成功

2 不需要换盘的情况
现场存在硬盘没问题,但是掉raid的情况(大部分是这种情况)
检测方法
2.1 检查硬盘的是否正常
2.1.1 smartctl -a /dev/sdb

注意上面得输出,标注位置没有错误,表示硬盘没问题
2.1.2 smartctl -H /dev/sdb
一般用这个查就可以了,health为ok即表示硬盘没问题

2.1.3 badblocks -sv /dev/sdb
全盘扫,很慢,不建议
2.2若硬盘没问题,重新同步即可
2.2.1 检查raid状态
[root@ ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.0
Creation Time : Tue Apr 29 15:19:50 2014
Raid Level : raid1
Array Size : 288772984 (275.40 GiB 295.70 GB)
Used Dev Size : 288772984 (275.40 GiB 295.70 GB)
Raid Devices : 2
Total Devices : 2
Persistence
: Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Jul 4 15:05:56
2016
State : active, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 1
Spare Devices : 0
Name : example.sz.fonsview.com:0
UUID : 8c78cdee:b6be167c:85cce8f9:9e2fe8e8
Events : 26915749
Number Major Minor
RaidDevice State
0 0 0
0 removed
1 8 18
1 active sync /dev/sdb2
0 8 2
- faulty
spare /dev/sda2
若红色字体部分为faulty,执行:
[root@ ~]# mdadm /dev/md0 -r /dev/sdb
[root@ ~]# mdadm /dev/md0 -a /dev/sda2
若红色字体部分为remove,执行:
[root@ ~]# mdadm /dev/md0 -a /dev/sda2
2.2.1 查看同步状态
[root@ ~]# cat /proc/mdstat
linux服务器系统盘坏且系统盘为软raid的修复方法的更多相关文章
- Linux服务器断电导致挂载及xfs文件损坏的修复方法
系统文件损坏后进入紧急修复模式,无法进行维护工作 welcome to emergency mode!after logging in ,type "journalctl -xb" ...
- window、linux系统与linux服务器之间使用svn同步及自动部署代码的方法
摘要: 在家用PC,在公司用办公电脑对一个项目的代码进行修改时,会遇到代码同步的问题.本文讲解了代码同步及自动部署的解决办法. 实现方法: 1.首先在linux服务器上和linux上安装svn(sud ...
- Python ssh连接Linux服务器报Incompatible ssh peer (no acceptable kex algorithm) 解决方法
python通过ssh连接linux服务器,部分服务器出现如下异常 03:50:48.725 FAIL ftp operation failed, Incompatible ssh peer (no ...
- Linux服务器更换主板后,网卡识别失败的处理方法
1)现象说明公司IDC机房里的一台线上服务器硬件报警,最后排查发现服务器主板坏了,随即联系厂商进行更换主板,最后更换后,登录服务器,发现网卡绑定及ip信息都在,但是ip却ping不通了,进一步排查,重 ...
- linux服务器中不支持soap及bcmul函数的结局方法
新的程序里用了webserice接口,部到服务器,先是提示:bcmul() 函数不可用,网上搜索一番,得知这是php的高精度函数,需要在编译php的时候加入此模块,于是在编译脚本里增添 “–enabl ...
- linux服务器没网情况下手动安装软件几个方法
1,找到一个有网的服务器,使用yumdownloader gcc,获取需要的rmp包: 2,在http://pkgs.org 下下载所需要的rpm包
- 阿里云linux服务器到期后续费,网站打不开解决方法之一
续费后打不开网站,可能会出现不同情况,这里只记录我遇到的问题 问题描述:服务器到期后续费,网站打不开. 解决尝试: 1.重启服务器nginx /etc/init.d/nginx restart ...
- vmware 安装 kali linux 系统到U盘 启动错误(initramfs:) 修复方法
安装kalilinux到U盘 启动之后出现这个错误: 这是grub路径不对. 解决办法: 在这模式下可以输入命令:blkid 查看所列举出的磁盘 找到你的U盘系统 TYPE="ext4&qu ...
- Java远程连接Linux服务器并执行命令及上传文件
最近再开发中遇到需要将文件上传到Linux服务器上,至此整理代码笔记. 此种连接方法中有考虑到并发问题,在进行创建FTP连接的时候将每一个连接对象存放至 ThreadLocal<Ftp> ...
随机推荐
- 【2019北京集训六】路径(path) 二分+DP
此题niubi! 题目大意:给你一颗n个点的点带权无根树,现在请您进行以下两步操作: 1,选择一个$[0,T]$之间的整数$C$,并令所有的点权$wi$变为$(wi+C)%MOD$ 2,选择若干条点不 ...
- 根据iPhone6设计稿动态计算rem值
rem 单位在做移动端的h5开发的时候是最经常使用的单位.为解决自适应的问题,我们需要动态的给文档的更节点添加font-size 值.使用mediaquery 可以解决这个问题,但是每一个文件都引用一 ...
- Tsql2008查询性能优化第一章---APPLY
APPLY运算符涉及以下两个步骤中的一步或两步(取决于APPLY的类型): 1.A1把右表表达式应用于左表的行. 2.A2:添加外部行. Ap ...
- Log4Net使用详解2
首先说明一点的是,log4net解决的问题是提供一个记录日志的框架,它提供了向多种目标写入的实现,比如利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库(包括MS ...
- jq通过对象获取其ID值,再简单ajax传到后台改值
<tbody> <tr> <#if scopes?exists> <#list scopes as scopes> <td id='${(scop ...
- Jenkins CLI 命令详解
笔者在前文<通过 CLI 管理 Jenkins Server>中介绍了如何通过 SSH 或客户端命令行的方式管理 Jenkins Server,限于篇幅,前文主要的目的是介绍连接 Jenk ...
- 近乎产品MVC架构介绍-多租户模式
应用的数据部分支持多租户,租户可以是呈现区域(PersentArea)也可以是另一个应用.在数据库设计方面采用最简单的方式,在应用数据表中增加TenantTypeId(存储对应的Application ...
- Java并发编程:ThreadLocal的使用以及实现原理解析
前言 前面的文章里,我们学习了有关锁的使用,锁的机制是保证同一时刻只能有一个线程访问临界区的资源,也就是通过控制资源的手段来保证线程安全,这固然是一种有效的手段,但程序的运行效率也因此大大降低.那么, ...
- eclipse使用struts2找不到action方法或找不到action的错误记录
在确认web.xml已经配置, 配置好struts.xml , 代码没有报错, jar包没有问题, 服务器也没有问题, 代码逻辑没有问题, 关键字方法名action都没有写错, 可以运行旧的相同的代码 ...
- C#多线程——同步
多个线程(不仅仅局限于相同进程)如果需要访问相同的可变资源的话就可能需要考虑到线程同步的手段.CPU的线程和进程管控我这里就不去说了,计算机组成原理里面的东西 那么既然要让线程的步调一致,那么我们首先 ...