xfs文件系统磁盘损坏修复

47 阅读2分钟

将10.91.129.42的vg_data-lv_minio备份img到10.91.129.193上 10.91.129.42的vg_data-lv_minio挂载不上了,我们先备份 我们使用samba和dd来备份损坏的磁盘,首先安装 目标备份机10.91.129.193挂载情况

image.png

故障机10.91.129.193挂载情况:

image.png

前置准备:更换yum源

1. 备份原有yum源配置文件

mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/

2. 下载新的yum源配置文件(以阿里云为例)

对于CentOS 7:

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3. 清理并生成缓存

yum clean all
yum makecache

4. 更新系统(可选)

yum update -y

1. 在193节点上准备存储空间

# 查看磁盘分区
sudo fdisk -l /dev/vdb

# 为42T磁盘创建分区
sudo parted /dev/vdb mklabel gpt
sudo parted /dev/vdb mkpart primary 0% 100%

# 格式化分区
sudo mkfs.xfs /dev/vdb1

# 创建挂载点并挂载
sudo mkdir -p /mnt/backup_storage
sudo mount /dev/vdb1 /mnt/backup_storage

2. 在193节点上安装和配置Samba

# 安装Samba
sudo yum install samba samba-client -y

# 创建备份目录
sudo mkdir -p /mnt/backup_storage/minio_backup
sudo chmod 777 /mnt/backup_storage/minio_backup

# 配置Samba
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

编辑Samba配置 /etc/samba/smb.conf

[minio_backup]
    path = /mnt/backup_storage/minio_backup
    browseable = yes
    writable = yes
    guest ok = yes
    read only = no
    create mask = 0777
    directory mask = 0777

3. 启动Samba服务

# 设置Samba用户(可选设置密码)
sudo smbpasswd -a root

# 启动服务
sudo systemctl enable smb
sudo systemctl enable nmb
sudo systemctl start smb
sudo systemctl start nmb

# 配置防火墙
sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reload

4. 在42节点上挂载Samba共享

# 安装Samba客户端
sudo yum install cifs-utils -y

# 创建本地挂载点
sudo mkdir -p /mnt/remote_backup

# 挂载Samba共享
sudo mount -t cifs //10.91.129.193/minio_backup /mnt/remote_backup -o username=root,password=您的密码,vers=3.0

# 测试挂载
df -h /mnt/remote_backup

5. 创建逻辑卷镜像备份

# 检查逻辑卷状态
sudo lvdisplay /dev/vg_data/lv_minio

# 创建逻辑卷镜像(使用dd命令)
sudo nohup dd if=/dev/vg_data/lv_minio of=/mnt/remote_backup/lv_minio_backup.img bs=1M status=progress &1 &

修复步骤(在备份的 img 文件上操作)

1. 挂载备份的 img 文件

# 创建挂载点
sudo mkdir /mnt/img_recovery

# 将 img 文件挂载为回环设备
sudo mount -o loop,ro,norecovery your_backup.img /mnt/img_recovery

2. 识别文件系统类型

sudo blkid /dev/loop0  # 替换为实际回环设备名
sudo file -s /dev/loop0

3. 尝试修复 XFS

# 检查文件系统状态
sudo xfs_repair -n /dev/loop0

# 实际修复(强制日志清零)
sudo xfs_repair -L /dev/loop0

# 尝试挂载修复后的文件系统
sudo mount -t xfs /dev/loop0 /mnt/recovery_mount