midenok / hardware

Hardware related stuff (like NAS, smartphones, etc)
6 stars 4 forks source link

Synology: convert system volume raid superblock 0.90 -> 1.2 #13

Closed midenok closed 2 years ago

midenok commented 2 years ago
dd if=/dev/md0 of=/volume1/md0.tmp bs=10485760
midenok commented 2 years ago

xxd is broken: shows nulls instead of data.

midenok commented 2 years ago

/dev/loop3 is syno system device.

# losetup -l|grep loop3
/dev/loop3         0      0         0  0 /mnt/storage/sda1.syno    0     512
# mdadm -Ee0 /dev/loop3
mdadm: No super block found on /dev/loop3 (Expected magic a92b4efc, got fc4e2ba9)
# bgrep a92b4efc /dev/loop3
/dev/loop3: 72691dea
/dev/loop3: 97fd0000
# echo $((16#97fd0000))
2549940224
# raid-sb -f /dev/loop3 /tmp/sb
Device size: 2550005760
Superb addr: 2549940224
# bgrep a92b4efc /tmp/sb
/tmp/sb: 00000000
# hexdump -Cn16 /tmp/sb
00000000  a9 2b 4e fc 00 00 00 00  00 00 00 5a 00 00 00 00  |.+N........Z....|

In little-endian the number is fc4e2ba9 but is written as a92b4efc. So it is confusing that mdadm saying "Expected a92b4efc" means we should grep by "a92b4efc".

midenok commented 2 years ago

Not needed as 0.9 is accessed easily with mdadm -AUbyteorder, just make sure you keep original preferred minor.

My post here.