QNAP威联通通过SSH还原恢复旧硬盘

前情提要:机器为TS-453Bmini,系统为5.1,原本有两块机械硬盘,都是单一静态卷,现在增加了一个SSD作为系统盘。操作过程为:

  1. 备份系统配置到本地
  2. 在“存储/快照”里面移除(忘记是操作的移除还是安全卸载了)系统盘
  3. 关机,拔下两块磁盘,插上SSD,开机,在SSD上新建单一静态卷
  4. 恢复系统配置,重启,安装app
  5. 关机,插上那两块机械硬盘,插槽2还是以前的硬盘,以前的系统盘插到了插槽3,开机

现在“存储/快照”里面只有SSD一个,机械硬盘都不显示了。

通过“磁盘/VJOB”->恢复->连接并恢复存储池 成功的恢复了磁盘2,以前的系统盘还是没有恢复

参考 https://www.chiphell.com/thread-2537968-1-1.html 的操作,问题是pvcreate和vgcfgrestort 都需要用到/mnt/HDA_R00T/.config/lvm/ 下以前的配置信息,但是我现在的这个目录下是新的SSD上的,没有以前的配置信息。以前的配置信息在以前的系统盘里面,还没挂载上来呢。

 

因为两块机械硬盘是一样的,猜测配置信息也是一下的,所以直接复制第二块机械硬盘的配置,然后修改一些参数

1. 修复flex标签

使用qcli_storage -d 命令查看显示/dev/sda的Signature列只有QNAP没有FLEX,使用以下命令恢复FLEX标签

storw2util --nas-disk-write-signature-v2 enc_id=0,port_id=3

2. 创建raid

mdadm -CfR --assume-clean /dev/md3 -n 1 -l 1 -e 1.0 /dev/sda3

3. 创建物理卷

用pvs、lvs、vgs查看都没有这块硬盘的信息,只有两个硬盘的信息:vg288、vg289,vg288是新的SSD,vg289是第二块硬盘,我们就用vg289重建第三块硬盘的卷信息。

复制/mnt/HDA_ROOT/.config/lvm/backup/vg289 为 vg290.vg

cp /mnt/HDA_ROOT/.config/lvm/backup/vg289  vg290.vg

然后编辑vg290.vg,把里面的uuid都改动一下,否则会重复,再把logical_volumes下的键的数字加1,比如lv545改为lv546,lv2改为lv3

创建物理卷:

pvcreate -ff --uuid fGRNJs-ttZZ-LSK8-kxPK-4EQa-Cjcz-a4Wbuw --restorefile vg290.vg /dev/md3

-uui是vg290.vg里面physical_volumes.pv0的id字段的值

再用pvs查看可以看到新建的卷:

  PV         VG    Fmt  Attr PSize   PFree

  /dev/drbd1 vg288 lvm2 a--  829.81g    0 

  /dev/drbd2 vg289 lvm2 a--    3.63t    0 

  /dev/md3   vg290 lvm2 a--    3.63t    0

不过奇怪,两块正常的硬盘是drbd,新创建的是md,也许pvcreate后面的参数应该改为/dev/drbd3,尝试过,但是执行会报错,提示需要改为md,那就这样把

 

4. 恢复卷组信息

vgcfgrestort --force -f vg290.vg vg290

再使用lvchange -ay vg289 激活vg

5. 挂载

(这一步我好像忘记做了,但是最后居然还是成功了)

/etc/init.d/init_lvm.sh

以上命令都执行成功了

重启之后,登录系统,报警告信息,忘记具体是什么内容了,大概意思是不支持的存储池,不管它,然后按照恢复第二块硬一样恢复第一块硬盘,成功了。

如果还有错误,重启系统试试吧,反正我是多次重启多次恢复,最后神奇的是,系统自动创建了/dev/drbd3 vg291,/dev/md3   vg290消失了,如果没有消失可以尝试手动删除:pvremove /dev/md3