On 20/03/2023 00:34, Ram Ramesh wrote:
On 3/19/23 19:01, Wol wrote:
On 19/03/2023 23:29, Ram Ramesh wrote:
My primary DVR is old and I need to move it to more recent
hardware. I have two md raids (a raid1 and another raid6) called
/dev/md0 and /dev/md1. I plan to have root on the new machine on
raid1 and thus I like to rename my /dev/md0 to /dev/md1 in the old
machine before I move it to the new machine. After that I want to
move the disks in the most recommended way to minimize the chance
of loss.
Do you have an mdadm.conf, or do the arrays auto-assemble without one?
I have mdadm.conf and each md is named in that file.
ARRAY /dev/md/1 metadata=1.2 name=zym:md1
UUID=0e9f76b5:4a89171a:a930bccd:78749144
ARRAY /dev/md2 metadata=1.2 name=zym:2
UUID=d4e30060:d6395b41:dde52d2e:35ffa6fd
Okay. May I suggest that
(1) try getting rid of mdadm.conf - temporarily - and see if
everything boots fine.
(2) see if you can hard-rename (as in force an update to the metadata)
the array to a named array eg something like "zym:data"
If you can do (2), then (1) will boot and the array will come up as
/dev/md/data.
At which point you will be able to move the disks across and
everything should "just work".
Note that in the modern world your arrays should not be named md1, md2
etc, as I said. The default numbers count down from - as I said - I
think 127, and you're advised not to use numbers. I created my
original arrays as 0, 1, 2 and promptly found they came back as 127,
126, and 125.
I don't know whether advising you to "not have an mdadm.conf" is a
good idea, but I've never had one, and storing things like array name
in the metadata is much better than having it stored in an external file.
And it means you won't have clashing names :-) Actually, if you use
mdadm.conf to rename the arrays you're moving up to md3 or md4, see if
they boot fine on the old system, and again you can then just dd your
system across, then move the raid drives across, and you shouldn't
have any problems.
Cheers,
Wol
Yes the names must be in the metadata of the md because I populate
mdadm.conf after every change by actually using the output from mdadm
--detail -scan. Since that comes up with md0/md1/md2, I assume somehow
mdadm simply finds them again and again with exact same name.
Not necessarily. mdadm could (probably is) be reading mdadm.conf,
building the array using the name in mdadm.conf, and then rebuilding
mdadm.conf based on the name it got from mdadm.conf.
I do not ever get md127.
If you boot with no mdadm.conf whatsoever? If that gives you md127, then
you can rename the arrays on the old system by messing with mdadm.conf.
Also, it's just struck me, you're matching array to name using the UUID.
So, assuming that's the array UUID (what else could it be) when you dd
the root filesystem across and boot, that array should NOT be called
md0, because the UUIDs won't match.
Cheers,
Wol