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

使用Ubuntu18恢复群晖nas硬盘数据外接usb

使用Ubuntu18恢复群晖nas硬盘数据外接usb

  • 1. 接入硬盘
  • 2.使用Ubuntu18
  • 3.查看nas硬盘信息
  • 3. 挂载nas
    • 3.1 挂载损坏nas硬盘(USB)
    • 3.2 挂载当前运行的nas
  • 4. 拷贝数据
    • 分批传输
  • 5. 新旧数据对比

Synology NAS 出现故障,DS DiskStation损坏,则可以使用计算机和 Ubuntu live CD 轻松恢复其硬盘上存储的数据。确保 Synology NAS 硬盘上运行的文件系统是 EXT4 或 Btrfs,然后按照以下步骤恢复数据。此处我们以 Ubuntu 18 版本为例。

1. 接入硬盘

当前使用硬盘盒,USB方式外接群晖的DS损坏NAS硬盘(非RAID)

连接硬盘后,查看硬盘信息

fdisk -l

2.使用Ubuntu18

进入系统,打开终端窗口,登录root用户。

# 切换登录root用户
sudo -i

# 安装依赖
apt update
apt install mdadm lvm2 ntfs-3g

3.查看nas硬盘信息

# 查看物理卷信息
# pvdisplay
root@zhangguoye-dell:/mnt# pvdisplay
  --- Physical volume ---
  PV Name               /dev/md2
  VG Name               vg1000
  PV Size               3.63 TiB / not usable <1.94 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              952682
  Free PE               0
  Allocated PE          952682
  PV UUID               HQqLkb-Wqbu-rKrK-zLJZ-yrGW-xxxx-xxxx
# LVM 逻辑卷信息,挂载用
# lvdisplay

root@zhangguoye-dell:/mnt# lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg1000/lv
  LV Name                lv
  VG Name                vg1000
  LV UUID                NZpqYf-t1fc-8wkK-FVbW-GY2H-xxxx-xxxx
  LV Write Access        read/write
  LV Creation host, time ,
  LV Status              available
  # open                 1
  LV Size                3.63 TiB
  Current LE             952682
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

# 确认使用的文件系统类型,挂载参数使用
root@zhangguoye-dell:/mnt# blkid /dev/vg1000/lv

3. 挂载nas

3.1 挂载损坏nas硬盘(USB)

sudo mount -t btrfs /dev/vg1000/lv /mnt/synology -o ro,recovery,skip_balance,clear_cache,degraded

3.2 挂载当前运行的nas

挂载当前nas,添加更多选项以提高稳定性

sudo mount -t cifs //IP/共享文件夹名称 /mnt/synologynew -o username=nas用户,password=nas密码,vers=2.0,iocharset=utf8,rw,file_mode=0777,dir_mode=0777,soft,nounix

4. 拷贝数据

考虑到硬盘可能存在问题,建议使用 rsync 命令来替代 cp,因为 rsync 在处理损坏文件时更可靠,并且支持断点续传。示例如下,异常日志会存放在log

rsync -av --ignore-errors --partial --progress /mnt/synology/homes/ /mnt/synologynew/homes/ 2>/mnt/synologyold/homes_errors.log
rsync -av --ignore-errors --partial --progress /mnt/synology/docker/ /mnt/synologynew/docker/ 2>/mnt/synologyold/docker_errors.log
rsync -av --ignore-errors --partial --progress /mnt/synology/share/ /mnt/synologynew/share/ 2>/mnt/synologyold/share_errors.log
rsync -av --ignore-errors --partial --progress /mnt/synology/web/ /mnt/synologynew/web/ 2>/mnt/synologyold/web_errors.log

# cp参考
cp -rpv --preserve=all --no-clobber /mnt/synology/homes /mnt/synologyold/homes
cp -rpv --preserve=all --no-clobber /mnt/synology/docker /mnt/synologyold/docker
cp -rpv --preserve=all --no-clobber /mnt/synology/share /mnt/synologyold/share
cp -rpv --preserve=all --no-clobber /mnt/synology/web /mnt/synologyold/web

分批传输

由于部分文件夹过大数量过多,可采取分批传输方式

# 分批传输,先传小文件
find /mnt/synology/homes -type f -size -50M -exec rsync -av --ignore-errors --partial --progress --timeout=60 {} /mnt/synologynew/homes/ \;

# 传输中等大小文件
find /mnt/synology/homes -type f -size +50M -size -500M -exec rsync -av --ignore-errors --partial --progress --timeout=60 {} /mnt/synologynew/homes/ \;

# 最后传输大文件
find /mnt/synology/homes -type f -size +500M -exec rsync -av --ignore-errors --partial --progress --timeout=60 {} /mnt/synologynew/homes/ \;

5. 新旧数据对比

DU对比占用空间2者是否一致

du -sh /mnt/synology/homes /mnt/synologyold/homes
du -sh /mnt/synology/docker /mnt/synologyold/docker
du -sh /mnt/synology/share /mnt/synologyold/share
du -sh /mnt/synology/web /mnt/synologyold/web

DIFF对比

diff -r /mnt/synology/homes /mnt/synologyold/homes
diff -r /mnt/synology/docker /mnt/synologyold/docker
http://www.dtcms.com/a/113197.html

相关文章:

  • [自制调试工具]利用模板函数打造通用调试工具
  • 使用OpenFeign实现服务远程调用
  • 数据定义语言
  • 【速写】einops杂记
  • 【数据结构】堆
  • 【KWDB创作者计划】_KaiwuDB 2.1.0 单节点裸机部署
  • 续-算法-数学知识
  • 数据结构【栈和队列附顺序表应用算法】
  • GenerationMixin:generate
  • MIPI与DVP接口摄像头:深度解析与应用指南
  • 素数的判断方法
  • Mysql explain中列的解析
  • SortedSet结构之用户积分实时榜单实战
  • WordPress图标设置插件,免费功能小巧
  • 武装自己的Kali
  • 轨道交通装备三维检测与轻量化设计
  • Cookie、Session、Token、JWT的区别和使用场景
  • 深度测评 | 聚铭下一代智慧安全运营中心如何破解电力行业安全运维难题?
  • C++ 判断字符是否为数字或字母:isalpha、isdigit 和 isalnum 函数详解
  • 【2-8】同步通信与异步通信
  • 数据库性能优化(sql优化)_子查询02_yxy
  • 二十种中药果实识别分类系统,Python/resnet18/pytorch
  • C++_类和对象(下)
  • 无状态版的DHCPv6是不是SLAAC? 笔记250405
  • 【LeetCode Solutions】LeetCode 146 ~ 150 题解
  • JVM深入原理(六)(二):双亲委派机制
  • 元宇宙概念下,UI 设计如何打造沉浸式体验?
  • 从零开始玩python--python版植物大战僵尸来袭
  • 数字化转型中的开源AI智能客服与S2B2C商城小程序的融合创新
  • ☕️ 关于本博客 ☀️