Install Arch Linux with Fake RAID (Português)

From ArchWiki
Status de tradução: Esse artigo é uma tradução de Install Arch Linux with Fake RAID. Data da última tradução: 2022-08-26. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

O objetivo deste guia é permitir o uso de um conjunto RAID criado pelo controlador RAID BIOS integrado e, assim, permitir a inicialização dupla do Linux e do Windows a partir de partições dentro do conjunto RAID usando o GRUB. Ao usar o chamado fake RAID ou host RAID, os conjuntos de discos são alcançados em /dev/mapper/nome-do-chipset_nome-aleatório e não em /dev/sdX .

O que é "Fake RAID"

Segundo a Wikipedia:

O RAID baseado em sistema operacional nem sempre protege o processo de inicialização e geralmente é impraticável em versões de desktop do Windows. Os controladores RAID de hardware são caros e proprietários. Para preencher essa lacuna, foram introduzidos "controladores RAID" baratos que não contêm um chip controlador RAID, mas simplesmente um chip controlador de disco padrão com firmware e drivers especiais. Durante a inicialização do estágio inicial, o RAID é implementado pelo firmware. Quando um kernel de sistema operacional em modo protegido, como Linux ou uma versão moderna do Microsoft Windows, é carregado, os drivers assumem o controle.
Esses controladores são descritos por seus fabricantes como controladores RAID, e raramente fica claro para os compradores que o ônus do processamento RAID é suportado pela unidade de processamento central do computador host - e não pelo próprio controlador RAID - introduzindo assim a sobrecarga de CPU acima mencionada que controladores de hardware não sofrem. Os controladores de firmware geralmente só podem usar certos tipos de discos rígidos em suas matrizes RAID (por exemplo, SATA para Intel Matrix RAID, pois não há suporte SCSI nem PATA em pontes sul Intel ICH modernas; no entanto, os fabricantes de placas-mãe implementam controladores RAID fora da ponte sul em alguns placas-mãe). Antes de sua introdução, um "controlador RAID" implicava que o controlador fazia o processamento, e o novo tipo tornou-se conhecido em círculos com conhecimento técnico como "fake RAID", embora o próprio RAID seja implementado corretamente. Adaptec os chama de "host RAID".

Veja também Guia de FakeRaid - Documentação Comunitária do Ubuntu para mais informações.

Apesar da terminologia, "fake RAID" via dmraid é uma implementação robusta de software RAID que oferece um sistema sólido para espelhar ou distribuir dados em vários discos com sobrecarga insignificante para qualquer sistema moderno. dmraid é comparável a mdadm (RAID de software Linux puro) com o benefício adicional de poder reconstruir completamente uma unidade após uma falha antes do sistema ser inicializado. No entanto, esteja ciente de que nem todas as implementações de BIOS RAID suportam a reconstrução de unidade. Em vez disso, eles contam com software não-linux para realizar a reconstrução. Se o seu sistema não puder reconstruir uma unidade no utilitário de configuração do BIOS RAID, você é fortemente encorajado a usar mdraid (puro Linux Software Raid via mdadm - veja RAID) em vez de dmraid, ou você não conseguirá reconstruir uma matriz em caso de uma falha de unidade - ou incapaz de recuperar informações de sua matriz em caso de falha de placa-mãe sem muito trabalho adicional.

História

No Linux 2.4, a estrutura do kernel ATARAID forneceu suporte para fake RAID (RAID de software assistido pelo BIOS). Para Linux 2.6, o framework device-mapper pode, entre outras coisas legais como LVM e EVMS, fazer o mesmo tipo de trabalho que ATARAID em 2.4. Embora o novo código que lida com a E/S RAID ainda seja executado no kernel, o mapeador de dispositivos geralmente é configurado por um aplicativo de espaço do usuário. Ficou claro que ao usar o mapeador de dispositivos para RAID, a detecção iria para o espaço do usuário.

Heinz Maulshagen criou a ferramenta dmraid para detectar conjuntos RAID e criar mapeamentos para eles. Os controladores suportados são (na maioria baratos) controladores RAID IDE/SATA falsos que contêm funções do BIOS. Exemplos comuns incluem: controladores Promise FastTrak; High Point HPT37x; Intel Matriz RAID; Silicon Image Medley; e NVIDIA nForce.

Preparação

Atenção: Faça backup de todos os dados antes de mexer com RAID. O que você faz com seu hardware é apenas sua própria culpa. Os dados em faixas RAID são altamente vulneráveis a falhas de disco. Crie backups regulares ou considere usar conjuntos de espelhos. Considere-se avisado!
  • Abra quaisquer guias necessários do (Guia de instalação) em outra máquina. Se você não tiver acesso a outra máquina, imprima-os.
  • Baixe a imagem de instalação do Arch Linux mais recente.
  • Faça backup de todos os arquivos importantes, pois tudo nas partições de destino será destruído.

Configure conjuntos de RAID

Atenção: Se suas unidades ainda não estiverem configuradas como RAID e o Windows já estiver instalado, alternar para "RAID" pode fazer com que o Windows fique em tela azul durante a inicialização.[1]
  • Entre na configuração do BIOS e ative o controlador RAID.
    • O BIOS pode conter uma opção para configurar unidades SATA como "IDE", "AHCI" ou "RAID"; certifique-se de que "RAID" esteja selecionado.
  • Salve e saia da configuração do BIOS. Durante a inicialização, entre no utilitário de configuração RAID.
    • O utilitário RAID geralmente é acessível através do menu de inicialização (geralmente F8, F10 ou CTRL+I) ou enquanto o controlador RAID está inicializando.
  • Use o utilitário de configuração RAID para criar conjuntos de faixas/espelhos (stripe/mirror) preferidos.
Dica: Consulte a documentação da sua placa-mãe para obter detalhes. O procedimento exato pode variar.

Inicialize o instalador

Consulte Guia de instalação#Pré-instalação para obter detalhes.

Exemplo de instalação do MBR usando mdadm e Intel FakeRAID

Tango-edit-clear.pngThis article or section needs language, wiki syntax or style improvements. See Help:Style for reference.Tango-edit-clear.png

Isso aqui porque passei horas fazendo isso funcionar, porque há muita informação por aí sobre diferentes maneiras de fazê-lo, além de informações desatualizadas. Ele pode precisar ser integrado a esta página melhor, com mais explicações e sintaxe da wiki do Arch, mas estou encerrando isso neste momento. Este é um dump de linha de comando básico que mostra uma configuração RAID bem-sucedida usando a estrutura de partição MBR.

Parece que, uma vez que você cria o array no Intel util, ele grava os metadados do raid. Portanto, a montagem/criação de um array não precisa acontecer. Chamei meu array de ZERO no Intel util e você pode vê-lo neste exemplo.

Estou deixando todo o exemplo de instalação, pois mostra quando configurar as coisas durante a instalação. Você vai ter que modificar algumas coisas para que funcionem, não copie e cole!

ls /dev/md/
parted /dev/md/ZERO_0
mklabel msdos
mkpart primary ext4 1MiB 100MiB
set 1 boot on
mkpart primary ext4 100MiB 16.5GiB
mkpart primary linux-swap 16.5GiB 100%

Só para ver as mudanças:

fdisk -l /dev/md/ZERO_0

Crie o sistema de arquivos, o swap e ative-o

mkfs.ext4 /dev/md/ZERO_0p1
mkfs.ext4 /dev/md/ZERO_0p2
mkswap /dev/md/ZERO_0p3
swapon /dev/md/ZERO_0p3
mount /dev/md/ZERO_0p2 /mnt
mkdir -p /mnt/boot
mount /dev/md/ZERO_0p1 /mnt/boot/
nano /etc/pacman.conf

Descomente multilib em x64 (por que não) (faça depois do chroot também)

pacstrap -i /mnt base base-devel
genfstab -U /mnt > /mnt/etc/fstab
cat /mnt/etc/fstab
nano /mnt/etc/fstab

Substitua UUIDs por (isso pode ser opcional):

/dev/md/ZERO_0p1
/dev/md/ZERO_0p2
/dev/md/ZERO_0p3
mdadm --detail --scan >> /mnt/etc/mdadm.conf

Entre em chroot para configuração

arch-chroot /mnt /bin/bash
nano /etc/locale.gen

pt_BR.UTF-8 UTF-8

nano /etc/locale.conf

LANG=pt_BR.UTF-8

locale-gen pt-BR pt_BR.UTF-8
tzselect
ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime

Trabalhe em algumas coisas do GRUB

pacman -Sv grub
nano /etc/default/grub 
  • Descomente GRUB_DISABLE_LINUX_UUID=true

Coisas do RAID

cat /etc/mdadm.conf
nano /etc/mkinitcpio.conf

Adicione mdadm_udev em HOOKS

HOOKS="base udev autodetect modconf block mdadm_udev filesystems keyboard fsck"

Adicione /sbin/mdmon em BINARIES<ref>https://bbs.archlinux.org/viewtopic.php?id=137058</ref>

BINARIES="/sbin/mdmon"

Regenere-o

mkinitcpio -p linux
grub-install --recheck /dev/md/ZERO_0
grub-mkconfig -o /boot/grub/grub.cfg
cat /boot/grub/grub.cfg
echo seu_hostname > /etc/hostname
nano /etc/hosts
systemctl enable dhcpcd@enp13s0.service
exit
umount -R /mnt
reboot

Remova o CD live

Inicie o dmraid

Inicie o "device-mapper" e procure os arranjos RAID:

# modprobe dm_mod
# dmraid -ay
# ls -la /dev/mapper/

Exemplo de saída:

/dev/mapper/control            <- Criado pelo device-mapper; se presente, o mapeador de dispositivo provavelmente está funcionando
/dev/mapper/sil_aiageicechah   <- O arranjo RAID na controladora Silicon Image
/dev/mapper/sil_aiageicechah1  <- Primeira partição nesse arranjo RAID

Se houver apenas um arquivo (/dev/mapper/control), verifique se o módulo do seu chipset está carregado com lsmod. Se estiver carregado, então o dmraid não suporta essa controladora, ou não existem arranjos RAID no sistema (verifique a BIOS RAID novamente). Se tudo estiver correto, então você será forçado a utilizar Software RAID (não será possível fazer Dual Boot com essa controladora).

Se o módulo do seu chipset não foi carregado, faça-o agora. Como no exemplo:

# modprobe sata_sil

Veja /lib/modules/`uname -r`/kernel/drivers/ata/ para os drivers disponíveis.

Para testar os arranjos raid:

# dmraid -tay

GRUB2

Consulte GRUB2 para obter detalhes sobre como configurar o GRUB2. grub-bios funciona fora da caixa com partições dm-raid:

$ grub-install --target=i386-pc --recheck --debug /dev/mapper/sil_aiageicechah
Nota: Se GRUB_DISABLE_LINUX_UUID=true não estiver definido, GRUB2 irá gerar linhas com root=UUID=... resultando na montagem de um lado de um array RAID 1 espelhado.

(Opcional) Instale o os-prober se você tiver outro sistema operacional como o Windows.

$ grub-mkconfig -o /boot/grub/grub.cfg

Isso é tudo, grub-mkconfig irá gerar o configure automaticamente. Você pode editar /etc/default/grub para modificar a configuração (tempo limite, cor, etc) antes do grub-mkconfig.

Solução de problemas

Iniciando com um arranjo corrompido

Uma desvantagem do uso de Fake RAID no GNU/Linux é que o dmraid é, atualmente, incapaz de lidar com arranjos degradados e se recusa a ativar. Nesse cenário, é preciso resolver o problema através de outro sistema operacional (por exemplo o Windows) ou através do utilitário do chipset RAID.

Como alternativa, se estiver usando um array espelhado (RAID 1), os usuários podem ignorar temporariamente o dmraid durante o processo de inicialização e inicializar a partir de uma única unidade:

  1. Edite a linhe kernel no menu do GRUB
    1. Remova as referencias aos dispositivos dmriad (exemplo mude /dev/mapper/raidSet1 para /dev/sda1)
    2. Acrescente disablehooks=dmraid para prevenir um kernel panic se o dmraid descobrir o arranjo degradado
  2. Inicie o sistema

Erro: Não foi possível determinar o número principal/menor do dispositivo raiz

Se ocorrer uma falha de inicialização após a atualização do kernel, onde o processo de inicialização não consegue determinar o número principal/menor do dispositivo raiz, isso pode ser apenas um problema de tempo (ou seja, dmraid -ay pode ser chamado antes de /dev/sd* estar totalmente configurado e detectado). Isso pode afetar as imagens de kernel normal e LTS. A inicialização da imagem do kernel 'Fallback' deve funcionar. O erro será algo assim:

Activating dmraid arrays...
no block devices found
Waiting 10 seconds for device /dev/mapper/nvidia_baaccajap5
Root device '/dev/mapper/nvidia_baaccajap5' doesn't exist attempting to create it.
Error: Unable to determine major/minor number of root device '/dev/mapper/nvidia_baaccajap5'

Para contornar este problema:

  • inicialize o kernel Fallback
  • insira o hook sleep na linha HOOKS de /etc/mkinitcpio.conf após o hook udev, assim:
HOOKS="base udev sleep autodetect block dmraid filesystems"
  • reconstrua a imagem do kernel e reinicie.

Espelho dmraid falha ao ativar

Tudo acima funciona corretamente na primeira vez, mas quando você reinicia o dmraid não consegue encontrar o array?

Isso ocorre porque o software raid do Linux (mdadm) já tentou montar o array fake RAID durante a inicialização do sistema e o deixou em um estado desmontável. Para evitar que mdadm seja executado, remova a regra do udev responsável:

# cd /lib/udev/rules.d
# mkdir disabled
# mv 64-md-raid.rules disabled/
# reboot

Nenhum dispositivo de bloco para partições na matriz RAID existente

Se o seu array existente, configurado antes de tentar instalar o Arch, aparece em /dev/mapper/nome_do_raid, mas não tem partições (nome_do_raid1, etc) verifique novamente o status de suas partições RAID.

O Arch pode não criar dispositivos de bloco para partições que funcionem em outro sistema operacional se houver certos problemas, mesmo pequenos.

gparted é útil para diagnosticar e reparar a maioria dos problemas. Infelizmente, você pode ter que reparticionar do zero.

Veja também