lanthruster n00b
Joined: 01 Jan 2012 Posts: 60
|
Posted: Wed Nov 28, 2012 4:28 am Post subject: Installing gentoo 3.5.7 amd64 with grub2 on 1.2 mdraid |
|
|
Just to share some time saving data.
The two latest livecd are both broken:
Code: |
install-amd64-minimal-20121107.iso
install-amd64-minimal-20121013.iso
|
The latest working livecd:
Code: | install-amd64-minimal-20120621.iso |
All will be well till the grub installation. At this point you discover that the new mdraid is using a different metadata format/placement and the old grub won't install on md volumes. Fortunately you can unmask the latest grub2 which can handle metadata version 1.2. grub2 is working well, though it will take you half an hour to understand it's new design and to generate menu.lst
Now you reboot the system and another surprise is waiting. The kernel is not able to find your md's. You check /dev/ and really you see no sign of your md*, though sd* are there. The kernel stops with
Code: | mounting / on /newroot failed. |
The first though is that you forgot to add RAID autodetect in the kernel config, after checking it - more complex ideas will come to your mind. After two-three hours you'll be absolutely certain that there is nothing wrong with your config.
And then you find out that the new kernels cannot detect mdraid volumes with metadata version 1.2 yet.
After another half an hour a bright idea visits you - just add domdadm option to the kernel. And you already figured it out how to do it with the new grub2.
You boot and of course you forgot that domdadm relies on mdadm, not on the kernel, that's why it supposed to work while kernel doesn't. You see missing:
Code: |
/sbin/mdadm missing
|
that's because your initramfs is missing /sbin/mdadm, you boot from livecd again and modify it:
Code: |
genkernel --kernel-config=/usr/src/config --mdadm initramfs
|
you reboot again, this time the boot process will go further. It will search for md's but when it will find them they will receiverandom names like md125, md126, different at each boot. And you're expecting it to be say /md3, you can see your raids ls -l /dev/md* but you still can't use them - you didn't add /etc/mdadm.conf to the initrfamfs and mdadm doesn't know what ID give to the md's. A rule of thumb - if you see mdxxx - your md's were initialized by mdadm without mdadm.conf, not by kernel.
You run
Code: |
mdadm --detail --scan >> /etc/mdadm.conf
|
then modify the device id to md1, md2 (or your desired)
then you re-assemble initramfs again
Code: |
genkernel --kernel-config=/usr/src/config --mdadm --mdadm-config=/etc/mdadm.conf --disklabel initramfs
|
And this will do it. You now have 3.5.7 kernel with md raids, grub2 and metadata 1.2
It took me about 12 hours to install Gentoo and I hope you will not spend so much time after reading this post. |
|