O Linux na unidade USB externa não inicializa em outros computadores

3

Eu tenho GNU / Linux (atualmente Fedora 26, mas anteriormente Linux Mint 18.2 Sonya) instalado em um disco rígido externo ao lado de uma partição NTFS que eu uso para armazenamento - e inicializa perfeitamente no computador que eu usei para instalá-lo. No entanto, quando eu tento inicializar em um computador diferente com uma configuração de disco rígido diferente, ele não consegue encontrar as partições do sistema operacional e me envia para o GRUB Rescue com a mensagem de erro error: unknown filesystem .

Suspeito que isso aconteça porque o GRUB pesquisa as partições usando marcadores como hdX,msdosY ( X e Y sendo números inteiros aparentemente correspondentes a sXY labels como sda1 com X sendo uma letra e Y sendo um inteiro), como o menuentry s no meu grub.cfg usa-os ao definir a variável root - assumindo que grub.cfg é a origem do que é colocado no MBR. Meu /etc/default/grub não contém GRUB_DISABLE_LINUX_UUID=true .

A solução para o meu problema poderia estar fazendo o GRUB procurar as partições usando o UUID - e em caso afirmativo: como eu faria para fazer isso?

EDIT: Aqui está o menuentry completo para inicializar o Fedora do meu grub.cfg :

menuentry 'Fedora (4.11.8-300.fc26.x86_64) 26 (Twenty Six)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.11.8-300.fc26.x86_64-advanced-c1bcc95a-66a8-4bd3-ae64-42be8d83137e' {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd1,msdos2'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd3,msdos2 --hint-efi=hd3,msdos2 --hint-baremetal=ahci3,msdos2 --hint='hd1,msdos2'  3483e8e8-38ab-4b47-aec4-1cb475c285d8
    else
      search --no-floppy --fs-uuid --set=root 3483e8e8-38ab-4b47-aec4-1cb475c285d8
    fi
    linux16 /vmlinuz-4.11.8-300.fc26.x86_64 root=UUID=c1bcc95a-66a8-4bd3-ae64-42be8d83137e ro rhgb quiet LANG=en_GB.UTF-8
    initrd16 /initramfs-4.11.8-300.fc26.x86_64.img
}

Eu também preferiria que qualquer solução que não envolvesse a edição manual de grub.cfg como qualquer alteração feita fosse sobrescrita ao atualizar o GRUB.

EDIT 2: Depois que eu comecei a trabalhar com o GPT e o Fedora 26, eu decidi voltar para o Linux Mint, já que era a minha distro original de escolha. Isso, no entanto, acabou por não funcionar. Depois de testar com várias distros diferentes (Debian, Ubuntu, CentOS e openSUSE). Todas as distribuições baseadas em RPM funcionavam, enquanto nenhuma das baseadas em Debain funcionava. O openSUSE oferece uma opção para habilitar / desabilitar o suporte ao SecureBoot, e quando ele foi instalado com este desabilitado, obtive os mesmos resultados que fiz com as distribuições baseadas no Debian.

Isso não faz sentido para mim, pois posso verificar que pelo menos dois dos computadores que testei tinham o SecureBoot explicitamente desativado, mas eu não consegui inicializar nem as distribuições baseadas no Debain nem o openSUSE sem o suporte do SecureBoot. / p>

(Para esclarecer: as distribuições de RPM não inicializaram antes de eu mudar meu disco rígido para usar uma GPT.)

    
por Jaxon 25.08.2017 / 22:35

2 respostas

1

error: unknown filesystem.

Funcionou em um sistema, não no outro, isso significa que seu grub provavelmente não procura partições pelo uuid.

I suspect this is because GRUB searches for the partitions using labels such as hd0,msdos5, as the menu entries in my grub.cfg uses them – assuming that grub.cfg is the source for what's put in the MBR. My /etc/default/grub does not contain GRUB_DISABLE_LINUX_UUID=true.

Isso confirma minha primeira impressão. BTW, hd0, msdos5 não é uma etiqueta, mas uma especificação de disco que está desatualizado, agora ... dependendo de muitos fatores, hd0 poderia ser qualquer unidade em seu sistema ... mais ainda, quando você alterna computadores.

Eu tenho o seguinte:

linux   /boot/vmlinuz-3.16.0-4-amd64 root=UUID=<someUUID> ro  quiet nomodeset

Eu uso nomodeset porque algumas placas-mães não gostam dos modos de troca do Linux.

Verifique se a partição raiz tem uuid e use isso no grub, como mencionado acima.

    
por 26.08.2017 / 01:08
0

Graças a @TomYan, ao trazer as partições da EFI à minha atenção, uma solução relativamente simples tornou-se aparente.

Primeiro, fiz um backup de todos os dados do meu disco rígido externo antes de reformá-lo completamente e fazer um GPT com fdisk em vez de um MBR que ele tinha anteriormente. Depois de fazer isso, tudo o que restou foi reinstalar a distro no modo UEFI. Agora funciona perfeitamente em todos os computadores que experimentei até agora.

EDIT: Isso só resolve o problema ao inicializar distros baseadas em RPM.

    
por 27.08.2017 / 18:16