Como habilitar o boot do Ubuntu Wubi?

3

Eu quero usar o Ubuntu Wubi 11.04 e o Ubuntu Wubi 12.04 para que o menu de inicialização exiba 3 opções: Windows, Ubuntu 11.04 & Ubuntu 12.04. Minha abordagem atual é usar apenas um deles e desativar o outro. Existe alguma maneira de fazer isso?

    
por Duc Tran 01.05.2012 / 09:41

1 resposta

5

Você não pode fazê-lo através do gerenciador de inicialização do Windows. Você só pode fazê-lo com a troca manual (como você está aparentemente fazendo) ou através de uma entrada personalizada no grub.

Passo a passo:

  1. instale o primeiro release (11,10 ou 12,04)
  2. copie o diretório \ubuntu para \ubuntufirst (ou, para ser mais rápido, renomeie para \ubuntufirst e crie um novo diretório \ubuntu com uninstall-ubuntu.exe , que é necessário para desinstalar a primeira versão)
  3. instale a segunda versão
  4. inicialize o Ubuntu e adicione uma entrada personalizada no grub para inicializar o primeiro lançamento. Você editaria /etc/grub.d/40_custom e, em seguida, executaria sudo update-grub . Você pode copiar a entrada do /boot/grub/grub.cfg na instalação que você deseja inicializar. Um exemplo da entrada seria algo como o seguinte:

    menuentry 'Ubuntu, Other Wubi' --class ubuntu --class gnu-linux --class gnu --class os {
            set gfxpayload=$linux_gfx_mode
            insmod part_msdos
            insmod ntfs
            set root='(hd0,msdos3)'
            search --no-floppy --fs-uuid --set=root YOUR-UUID-HERE
            loopback loop1 /ubuntufirst/disks/root.disk
            set root=(loop1)
            linux    /vmlinuz root=UUID=YOUR-UUID-HERE loop=/ubuntufirst/disks/root.disk ro   quiet splash vt.handoff=7
            initrd    /initrd.img
     }
    

Algumas coisas a serem observadas ... você altera loop0 para loop1 porque loop0 já estará em uso (com sua instalação original). Além disso, use /vmlinuz em vez de /boot/vmlinuz-3.x.x-x-generic , porque você não precisa continuar atualizando-o ( /vmlinuz aponta para o mais recente). O mesmo se aplica a /initrd.img

Aqui está o meu exemplo de trabalho (neste caso, a cópia está na mesma pasta \ubuntu\disks ):

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

    menuentry 'Ubuntu - backup precisenew.disk' --class ubuntu --class gnu-linux --class gnu --class os {
            set gfxpayload=$linux_gfx_mode
            insmod part_msdos
            insmod ntfs
            set root='(hd0,msdos3)'
            search --no-floppy --fs-uuid --set=root 18B4B7BBB4B799A8
            loopback loop1 /ubuntu/disks/precisenew.disk
            set root=(loop1)
            linux   /vmlinuz root=UUID=18B4B7BBB4B799A8 loop=/ubuntu/disks/precisenew.disk ro   quiet splash vt.handoff=7
            initrd  /initrd.img
    }

Isto é o que parece quando inicializado

bcbc@arcturus:~$ mount | grep ' / '
/dev/loop0 on / type ext4 (rw,errors=remount-ro)
bcbc@arcturus:~$ sudo losetup /dev/loop0
/dev/loop0: [0803]:34470 (/host/ubuntu/disks/precisenew.disk)
bcbc@arcturus:~$ 

Se você usar essa técnica, provavelmente deverá atualizar /etc/fstab para refletir os locais atualizados. Não afetará / , mas se você tiver um /home separado ou se desejar usar o swap.disk correto.

Na minha opinião, esta não é uma solução útil para a maioria das pessoas. Wubi é projetado para ser simples para iniciantes. Mas se você estiver usando para testar versões diferentes, não há muitas opções para inicializá-las, além de renomear o diretório \ubuntu e atualizar C:\wubildr de cada vez.

NOTA : Quando o Grub é atualizado em uma instalação do Wubi, ele irá reconstruir o arquivo /wubildr e isso apontará para qualquer que seja o disco virtual atual. No exemplo acima, ele apontará para precisenew.disk . Isso é provavelmente indesejável, já que é mais simples ter uma instalação master . Para evitar que isso aconteça, você pode manter backups do seu arquivo C:\wubildr ou editar /usr/share/lupin-support/grub-mkimage na instalação secundária (não a principal):

--- /mnt/usr/share/lupin-support/grub-mkimage 2011-09-20 03:44:44.000000000 -0700
+++ /usr/share/lupin-support/grub-mkimage 2012-10-29 22:02:55.784517389 -0700
@@ -112,7 +112,7 @@
         exit 1
     fi
 fi
-
+exit 0 # for non-primary install, bypass creation of wubildr
 wubildr_partitions="$(find_wubildr)"

 if [ ! -f "$target" ] && [ -z "$wubildr_partitions" ]; then
    
por bcbc 01.05.2012 / 20:02