Por que o Mint não pode inicializar minha partição clonada do Ubuntu? (Problema UUID)

4

Eu tenho rodado o Ubuntu 10.04 e acabei de instalar o Linux Mint 13. Eu posso usar o Linux Mint em tempo integral, mas por enquanto eu queria instalá-lo na primeira partição, mas manter o Ubuntu inicializável.

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    58593279    29295616   83  Linux
/dev/sda2        58595326   976768064   459086369+   5  Extended
/dev/sda5       959980140   976768064     8393962+  82  Linux swap / Solaris
/dev/sda6        58595328   898696186   420050429+  83  Linux
/dev/sda7       898697216   959963135    30632960   83  Linux

sda6 é uma partição de dados com todos os meus documentos. sda7 foi adicionado novo para criar a configuração de inicialização dupla. Eu clonei sda1 para sda7 com

 dd if=/dev/sda1 of=/dev/sda7

Claro que isso também clonou o UUID, então eu criei um novo UUID para sda7 com

tune2fs /dev/sda7 -U random

Quando eu listo UUIDs com blkid , ele realmente mudou. Eu então instalei o Linux Mint para sda1. Eu também tenho fstab setup para montar sda7 para que eu possa copiar arquivos de configuração para o novo sistema operacional. Eu inicio no Linux Mint bem, mas quando eu tento inicializar no Ubuntu, eu recebo uma mensagem (da memória, pode estar incompleta) que o carregador não consegue encontrar /dev/disk/by-uuid/<old UUID> .

Neste ponto, olhei no grub.cfg e, com certeza, o antigo UUID está listado, junto com o novo:

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Ubuntu, with Linux 2.6.32-41-generic (on /dev/sda7)" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set=root 3869f8c2-dcf8-4522-bc8b-91b0ce0040fa #This is the new UUID
    linux /boot/vmlinuz-2.6.32-41-generic root=UUID=72a5e117-9a39-4de1-9d28-53791d055ff5 ro quiet splash #This is the old UUID
    initrd /boot/initrd.img-2.6.32-41-generic
}

Tentei corrigir isso com sudo update-grub , mas ainda recebo a mesma entrada com a combinação de UUIDs novos e antigos. Eu também tentei editar manualmente o grub.cfg para substituir o antigo pelo novo UUID, mas ainda recebo a mesma mensagem, que o carregador não consegue encontrar um dispositivo com o antigo UUID.

Então, de onde update-grub está lendo o antigo UUID? E como eu corrijo o grub para que ele possa inicializar a partição clonada?

    
por Lee Hachadoorian 26.06.2012 / 06:26

3 respostas

5

Meu palpite é que você não está visualizando / editando o mesmo grub.cfg que o gerenciador de inicialização está olhando. Lembre-se, você tem dois diretórios /boot/grub diferentes agora, e o gerenciador de inicialização precisa saber qual deles procurar. update-grub está atualizando o grub.cfg no /boot/grub/grub.cfg atualmente montado. Eu estou supondo que o bootloader está olhando na outra partição. Depois que eu terminar minha primeira xícara de café, eu posso confirmar isso seguindo o seu post e talvez fazendo anotações, mas agora deve ser um palpite.

Acredito que o que você precisa fazer é executar sudo grub-install --root-directory=/ /dev/sda . Estou dando a versão completa para informações extras - o parâmetro --root-directory é padronizado como / .

Este comando irá reinstalar o gerenciador de partida em / dev / sda, informando para procurar no parâmetro "root-directory" (/ boot / grub) para o grub.cfg. Se você quiser que seu grub.cfg esteja em uma distro diferente, você pode montá-lo e especificar um "diretório-raiz" diferente, como, por exemplo, /mnt/my_other_distro/ se ele foi montado em /mnt/my_other_distro .

Deixe-me saber se você tiver problemas enquanto eu bebo meu café. :)

Editar: ( depois do café ) Eu vejo agora um problema importante ... você deveria ter mudado o UUID para sda1, não sda7. Então, quando você instalou o Mint no sda1, ele mudaria de qualquer forma se você reformatasse, mas se você não o alterasse, poderia ficar confuso. Ao mudar o UUID para a antiga instalação do Ubuntu, você invalidou todas as configurações de montagem em seu / etc / fstab, junto com o menu GRUB. Presumo que o Mint não regenere o menu, mas copie apenas as entradas, por isso não importa se está correto ou não.

Executar o update-grub corrige o grub.cfg, mas não o código do grub no MBR; isso só é alterado usando o grub-install.

E o Linux Mint não sabe o que as entradas no grub.cfg realmente significam, pois pode se referir a uma unidade que não está presente até então. Ele simplesmente adiciona a nova entrada ao topo das existentes, eu acho.

    
por Marty Fried 26.06.2012 / 17:35
2

OK, eu descobri uma solução, que é provavelmente o que eu deveria (ou não deveria) ter feito em primeiro lugar.

Depois de dd clonar a partição do Ubuntu, antes de instalar o Linux Mint, eu iniciei no Ubuntu. Foi quando percebi (olhando para a tabela de partições) que o UUID tinha sido duplicado, então gerou um novo UUID. Mas quando eu instalei o Linux Mint, ele formatou a partição original e gerou um novo UUID. Basicamente, eu corri

sudo tune2fs /dev/sda7 -U <old UUID>
sudo grub-update

e redefinir fstabs adequadamente, e tudo funcionou. Nunca deveria ter alterado o UUID da partição clonada em primeiro lugar.

Ainda assim, pode ser útil saber como alterar o UUID de uma partição e ainda ter o bootloader para encontrá-lo, então Marty agradece pela sua resposta acima.

    
por Lee Hachadoorian 26.06.2012 / 18:44
0

Isso continuará sendo útil para os outros e para mim também.

editar # 1 --------------------

link

apenas um trilho que encontrei enquanto procurava ..... e logo após sair daqui depois de adicionar isto abaixo .....

--------------- final da edição 1

E eu tenho que adicionar isso:

O UUID permanecerá sempre o mesmo, independentemente da formatação. Ele pode mudar, se necessário, apenas quando usar Dban ou SecureDelete (que todos podem encontrar usando HaremsBootCD para todos os sistemas operacionais ou UltimateBootCD para Windows) (porque ele faz log-out / off do sistema operacional para executar esses programas) Apenas o SecureDelete pode falar diretamente com o HDD. Nenhum formato feito através do / qualquer sistema operacional pode apagar o UUID, nem mesmo através de um liveCD comum (como explicado / dito acima).

Então, sim, assim como eu teria imaginado, se a partição clonada clonou o uuid (o que é uma idéia MUITO má e a má administração do software dev partiu ...) seria seguro manter o registro e a nota do uuid de ambas as unidades e tabela de partições, a fim de corrigir o futuro fstab (usando qualquer CD ao vivo para editá-lo como root ofcourse) para o Linux inicializar. Mas eu não penso ou vejo como o clonado teria qualquer parte da tabela de partição raiz. Partição e tabela de partição são duas coisas diferentes, uma vai em cima da outra como uma camada sobre a mesa. Assim, o UUID deve permanecer o mesmo ..... a menos que haja uma nova partição adicionada nessa tabela (éter primário, lógico ou estendido)

Então, fora de discussão aqui agora ... O Linux é divertido porque nós podemos fazer isso, mas também, o Linux é uma dor, porque temos que saber que temos que fazer e devemos fazer todas essas coisas "complicadas".

E eu GOSTO / AMO os fóruns do Ubuntu / Mint / Debian / CrunchBang / Slackware porque podemos trocar a antiga e a nova solução. Não como (não gostei / amei a maioria e eu) nos fóruns do Arch onde qualquer "resolvido" é muito desatualizado depois de apenas 12 dias ou pior, e / ou qualquer usuário até é repreendido por tentar dizer "obrigado" (mesmo depois de ler arch-manuals) (talvez eu deva começar a fazer meu próprio sistema operacional a partir do LFS --linux-from-scratch;) pode ser mais fácil de construir do que perguntar a outros como está funcionando, quem sabe (?)

De qualquer forma, eu cheguei aqui fora de uma pesquisa no google por / se uma maneira de clonar uma instalação do Linux. Não só eu achei que pode ser feito, mas que eu vou ter que ter certeza de que tem o UUID correto, que eu não tinha pensado ao lado de apenas cloná-lo e arrancar.

    
por Ghis1964 27.04.2013 / 09:03