使用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/md2VG Name vg1000PV Size 3.63 TiB / not usable <1.94 MiBAllocatable yes (but full)PE Size 4.00 MiBTotal PE 952682Free PE 0Allocated PE 952682PV UUID HQqLkb-Wqbu-rKrK-zLJZ-yrGW-xxxx-xxxx
# LVM 邏輯卷信息,掛載用
# lvdisplayroot@zhangguoye-dell:/mnt# lvdisplay--- Logical volume ---LV Path /dev/vg1000/lvLV Name lvVG Name vg1000LV UUID NZpqYf-t1fc-8wkK-FVbW-GY2H-xxxx-xxxxLV Write Access read/writeLV Creation host, time ,LV Status available# open 1LV Size 3.63 TiBCurrent LE 952682Segments 1Allocation inheritRead ahead sectors auto- currently set to 256Block 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