Corrigindo o grub.cfg manualmente (não recomendado)
Olhando para o seu grub.cfg
a entrada do Ubuntu está quebrada (e algumas das seguintes também)
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-eee18451-b607-4875-8a88-c9cb6c6544c8' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3 6dbb8633-dadd-4b5e-8d85-b0895fde9dfb
else
search --no-floppy --fs-uuid --set=root 6dbb8633-dadd-4b5e-8d85-b0895fde9dfb
fi
linux /vmlinuz-linux root=UUID=eee18451-b607-4875-8a88-c9cb6c6544c8 ro
initrd /initramfs-linux.img
}
As últimas duas linhas são o comando do grub para carregar o kernel e initrd, e atualmente estão procurando pelo kernel ARCH e initiramfs. Além disso, ele os procura sob a partição /
in identificada por uuid=eee18451-b607-4875-8a88-c9cb6c6544c8
, que pode ou não hospedar os arquivos desejados do Ubuntu.
Você pode corrigir isso por:
sudo blkid
para obter o uuid da sua partição raiz do Ubuntu.
Em seguida, substitua as duas últimas linhas pelo simlink para as imagens mais recentes do kernel e do initrd (pois é assim que o Ubuntu espera que seja)
linux /vmlinuz root=UUID=<correct-uuid-ubuntu-partition> ro
initrd /initrd.img
Se isso não corrigir imediatamente, outra correção poderá ser necessária. Você pode encontrá-los "copiando" uma das entradas testadas e de trabalho, e eu recomendo que você use a mais baunilha (por exemplo, nenhum parâmetro de kernel iniciante ou outro, como o nomodeset sendo passado).
Este deve ser um bom candidato:
menuentry 'Ubuntu, with Linux 4.4.0-21-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-21-generic-advanced-eee18451-b607-4875-8a88-c9cb6c6544c8'
A entrada do Arch está similarmente quebrada, pois provavelmente procura Arch initramfs e kernel sob a partição raiz do Ubuntu. A localização padrão deles está em / boot. Ajuste as duas linhas finais da entrada Arch, corrigindo a localização e verificando se o uuid da partição raiz é o que contém a raiz do Arch.
Uma (várias) palavra (s) de aviso:
Geralmente, NÃO é recomendado aos usuários do Ubuntu mexerem com grub.cfg
manualmente. Definitivamente faça uma cópia e tenha cuidado na sua edição. Esteja preparado para a chance de que seu sistema se torne não inicializável (mas você poderá ressuscitá-lo usando o procedimento de inicialização descrito na minha resposta antiga).
Além disso, embora isso possa resolver seu problema desta vez, ele pode voltar a te morder na próxima vez que você tiver que preencher novamente o menu do grub. Por alguma razão, o sistema operacional do grub sob o Ubuntu fica confuso pela presença do kernel do Arch em / boot. Eu diria que um utilitário como o boot-repair deve ser capaz de fazer corretamente todas as suas distros inicializáveis, mas se bem me lembro, não funcionou para você.
Uma correção permanente pode consistir na instalação do kernel do arco e das imagens em um diretório diferente do padrão / boot. Isso é complicado e você deve consultar a entrada do grub do wiki do Arch sobre como fazê-lo corretamente.
OLD ANSWER (recomendado se você planeja mudar para o Arch a longo prazo)
Aqui está o que eu faria, e de alguma forma já faz alguns meses.
Vá para a página wiki grub do arco e leia a seção relevante para a sua tabela de partições (você é provável UEFI, então leia sobre ESP e assim por diante).
Iniciar manualmente no Arch
Esta é uma experiência altamente formativa que recomendo tentar.
Supondo que seu kernel do Arch Linux esteja localizado em algum lugar no seu disco, pressione c
no prompt grub e digite ls para ver uma lista de dispositivos e partições parecendo (hd0,msdos1),(hd1,gpt1),...
. Você pode ls cada um deles para ver o conteúdo.
Você precisa descobrir três coisas:
- Onde está sua partição raiz do Arch
/
- Onde está o seu kernel do Arch
vmlinuz
- Onde está o seu Arch
intiramfs-linux.img
uma vez possuindo esses três, você executará três comandos no grub > pedir algo semelhante a isso.
grub> set root=(hd0,1)
grub> linux /vmlinuz root=/dev/sda1
grub> initrd /intiramfs-linux.img
grub> boot
Observe que o grub pode encontrar, por exemplo,
grub> find /sbin/init
(o que o grub não consegue encontrar automaticamente e dá um pânico ao kernel;))
Tudo isso eu aprendi aqui , uma fonte que eu recomendo. Se você conseguir, pule para consertar o grub! Caso contrário ...
Boot Arch a partir de uma chave ativa!
Obtenha um ambiente do Arch ao vivo e siga o wiki de instalação chroot
no Arch da mesma maneira que você fez na primeira vez.
Corrigir o grub
Do interior do Arch, instale os pacotes do grub relevantes e, em particular, os-prober
para permitir que grub-install
detecte seu outro sistema. Siga atentamente o guia de instalação e você poderá (pelo menos) inicializar o arch e o ubuntu no menu do grub. Instalar comandos acabará ficando assim.
** Atenção ** Não execute estes comandos, eles são exemplos, você precisa descobrir os que são apropriados para o seu sistema
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub --recheck
# grub-mkconfig -o /boot/grub/grub.cfg
** Se tudo mais falhar **
Infelizmente, isso é tão específico quanto possível, dado o número limitado de informações, e o SE não é realmente um fórum para essas questões, por isso minha resposta "genérica" se refere a recursos úteis.
Se você não conseguir descobrir, talvez vá até os fóruns do Arch e, desde que tenha feito o melhor possível e lido os documentos antes, você pode encontrar ajuda.
Fazer tudo isso através do Arch foi uma experiência fundamental de aprendizado para mim.