web-dev-qa-db-fra.com

Comment activer le démarrage de plusieurs Ubuntu Wubi?

Je veux utiliser Ubuntu Wubi 11.04 et Ubuntu Wubi 12.04 afin que le menu de démarrage affiche 3 options: Windows, Ubuntu 11.04 et Ubuntu 12.04. Mon approche actuelle consiste à utiliser uniquement l'un d'eux et à désactiver l'autre. Y a-t-il un moyen de le faire?

3
Duc Tran

Vous ne pouvez pas le faire via le gestionnaire de démarrage Windows. Vous ne pouvez le faire qu'avec la commutation manuelle (comme vous le faites apparemment) ou via une entrée grub personnalisée.

Pas à pas:

  1. installer la première version (11.10 ou 12.04)
  2. copie \ubuntu répertoire vers \ubuntufirst (ou pour être plus rapide, renommer \ubuntufirst, puis créez un nouveau \ubuntu répertoire avec uninstall-ubuntu.exe, qui est nécessaire pour désinstaller la première version)
  3. installer la deuxième version
  4. démarrez Ubuntu et ajoutez une entrée grub personnalisée pour démarrer la première version. Vous éditez /etc/grub.d/40_custom puis exécutez Sudo update-grub. Vous pouvez copier l'entrée à partir du /boot/grub/grub.cfg sur l'installation que vous souhaitez démarrer. Un exemple d'entrée serait quelque chose comme ceci:

    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
     }
    

Quelques choses à noter ... vous changez loop0 à loop1 car loop0 sera déjà utilisé (avec votre installation d'origine). Utiliser aussi /vmlinuz au lieu de /boot/vmlinuz-3.x.x-x-generic parce que vous n'avez pas besoin de continuer à le mettre à jour (/vmlinuz pointe vers la dernière). De même pour /initrd.img

Voici mon exemple de travail (dans ce cas, la copie est dans le même \ubuntu\disks dossier):

#!/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
    }

Voici à quoi il ressemble au démarrage

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:~$ 

Si vous utilisez cette technique, vous devriez probablement mettre à jour /etc/fstab pour refléter les emplacements mis à jour. Cela n'affectera pas / mais si vous avez un /home ou vous souhaitez utiliser le bon swap.disk.

À mon avis, ce n'est pas une solution utile pour la plupart des gens. Wubi est conçu pour être simple pour les débutants. Mais si vous l'utilisez pour tester différentes versions, il n'y a pas beaucoup d'options pour les démarrer, à part renommer le \ubuntu répertoire et mise à jour C:\wubildr chaque fois.

NOTE : Lorsque Grub est mis à jour sur une installation Wubi, il reconstruit le /wubildr fichier et cela pointera vers le disque virtuel actuel. Dans l'exemple ci-dessus, il pointera sur precisenew.disk. Ceci n'est probablement pas souhaitable car il est plus simple d'avoir une installation maître . Pour éviter cela, vous pouvez soit conserver des sauvegardes de votre C:\wubildr fichier ou modifier /usr/share/lupin-support/grub-mkimage sur l'installation secondaire (pas la principale):

--- /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
5
bcbc