Eu tenho uma máquina servidor relativamente antiga que não tem portas SATA na placa-mãe (Dell Precision Workstaion 650). Também tem um controlador FakeRAID barato (Chipset VIA VT6421) e dois discos Seagate 3TB (ST3000DM001) conectados ao controlador. O controlador foi configurado para usar unidades no modo Stripe (não RAID): eu basicamente o usei como um controlador SATA, em vez de um controlador RAID. Eu era capaz de configurar um RAID de software (mdadm) neste sistema. Cada uma das duas unidades físicas é particionada da seguinte forma:
Number Start (sector) End (sector) Size Code Name
1 2048 4095 1024.0 KiB EF02 BIOS boot partition
2 4096 3186687 1.5 GiB EF00 EFI System
3 3186688 5856337919 2.7 TiB FD00 Linux RAID
4 5856337920 5860532223 2.0 GiB 8200 Linux swap
Então existem:
- 1 MiB de espaço livre não alocado no início de cada unidade como
requerido pelo GRUB para unidades GPT no BIOS legado
- Partition # 1 (1MiB): partição de boot do BIOS para o GRUB
- Partição # 2 (1.5GiB) para / boot = > md0
- Partição # 3 (2.7TiB) para / = > md1
- Partição # 4 (2GiB) para swap = > md127
As partições # 2, # 3 e # 4 são montadas nos RAIDs de software md0, md1 e md127 (usando o raid1):
$ cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb2[2] sda2[3]
1590208 blocks super 1.2 [2/2] [UU]
md1 : active raid1 sdb3[2] sda3[3]
2926444352 blocks super 1.2 [2/2] [UU]
md127 : active raid1 sdb4[1] sda4[0]
2097088 blocks [2/2] [UU]
O Grub (verison 1.99) é instalado individualmente em cada uma das duas unidades físicas.
Esta configuração é capaz de inicializar e tem funcionado com mais ou menos sucesso (Ubuntu Server 12.04 i686) nos últimos dois anos, exceto por algumas falhas de HDD (acho que principalmente devido ao superaquecimento, já que o resfriamento não foi muito Boa). Duas vezes uma unidade com falha foi removida e uma nova unidade foi adicionada e sincronizada com êxito na matriz.
Agora estou substituindo o controlador HDD, o barato FakeRAID (old_controller) com Supermicro SAT2-MV8 SATA HBA PCI-X de 8 portas (new_controller) que é um controlador SATA puro, não FakeRAID, porque os conectores antigos do controlador são realmente frágeis e parece causar erros de interface às vezes.
O PROBLEMA agora é que não consigo inicializar o sistema sem o antigo_controlador. Em particular, se nenhuma das unidades estiver conectada ao old_controller, então ela sempre terminará no erro "no such disk" e na linha de comando de resgate do grub. Então, no modo de recuperação, o comando "ls" não lista (md / 0) enquanto as partições da unidade física são exibidas. Se, no entanto, uma das unidades estiver conectada ao old_controller, o sistema inicializará normalmente e, se nesse caso, o grub for interrompido, o comando "ls" mostrará (md / 0) junto com outras partições de unidade.
Eu tentei várias configurações.
Configurações que inicializam (pelo menos, atingem o menu de seleção de imagens do GRUB linux):
- disk1 + disk2 no old_controller
- disk1 no old_controller + disk2 no new_controller
- disk2 no old_controller + disk1 no new_controller
- disk1 no old_controller
- disk2 no old_controller
O comando "ls" do GRUB nesses casos sempre lista (md / 0)
Configurações que FAIL para inicializar (erro "sem disco" e resgate grub > linha de comando):
- disk1 e disk2 no new_controller
- disk1 no new_controller
- disk2 em new_controller
- disk1 e disk2 no new_controller com o old_controller completamente removido da placa-mãe
- disk1 no new_controller com old_controller completamente removido da placa-mãe
- disk2 no new_controller com o old_controller completamente removido da placa-mãe
O comando "ls" do GRUB nesses casos NÃO lista (md / 0)
Por que o GRUB não pode montar o array md quando nenhuma das unidades está conectada ao old_controller? No geral, você poderia me ajudar a fazer o sistema funcionar sem o antigo_controlador?
Você poderia recomendar um bom lugar para ler em profundidade sobre como o software RAID é montado na inicialização. Especialmente com o GRUB? Como as unidades para o array md são identificadas pelo GRUB? Como um controlador SATA substituído pode afetar esse processo?
Obrigado!