如何启用启动多个 Ubuntu 五笔?

Duc*_*ran 3 dual-boot wubi

我想同时使用 Ubuntu Wubi 11.04 和 Ubuntu Wubi 12.04,以便启动菜单将显示 3 个选项:Windows、Ubuntu 11.04 和 Ubuntu 12.04。我目前的方法是只使用其中一个,而禁用另一个。有没有办法做到这一点?

bcb*_*cbc 5

您不能通过 Windows 启动管理器执行此操作。您只能通过手动切换(正如您显然正在做的那样)或通过自定义 grub 条目来完成。

一步步:

  1. 安装第一个版本(11.10 或 12.04)
  2. \ubuntu目录复制到\ubuntufirst(或者更快,重命名为\ubuntufirst,然后使用 新建一个\ubuntu目录uninstall-ubuntu.exe,这是卸载第一个版本所必需的)
  3. 安装第二个版本
  4. 启动 Ubuntu 并添加一个自定义 grub 条目来启动第一个版本。您将编辑/etc/grub.d/40_custom然后运行sudo update-grub. 您可以从/boot/grub/grub.cfg要引导的安装中复制条目。条目的示例如下所示:

    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
     }
    
    Run Code Online (Sandbox Code Playgroud)

需要注意的几件事...您更改loop0loop1因为loop0将已在使用中(使用您的原始安装)。另外,使用/vmlinuz而不是/boot/vmlinuz-3.x.x-x-generic因为这样您就不必继续更新它(/vmlinuz指向最新的)。这同样适用于/initrd.img

这是我的工作示例(在这种情况下,副本位于同一\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
    }
Run Code Online (Sandbox Code Playgroud)

这是启动时的样子

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:~$ 
Run Code Online (Sandbox Code Playgroud)

如果您使用此技术,您可能应该更新/etc/fstab以反映更新的位置。它不会影响/但如果你有一个单独的/home或者你想使用正确的swap.disk.

在我看来,这对大多数人来说不是一个有用的解决方案。五笔是为初学者设计的简单。但是如果你用它来测试不同的版本,除了重命名\ubuntu目录和C:\wubildr每次更新之外,没有很多选项可以引导到它们。

注意:在 Wubi 安装上更新 Grub 时,它将重建/wubildr文件,这将指向当前的虚拟磁盘。在上面的例子中,它将指向precisenew.disk。这可能是不可取的,因为安装更简单。为避免这种情况发生,您可以保留C:\wubildr文件的备份,或/usr/share/lupin-support/grub-mkimage 在辅助安装(不是主要安装)上进行编辑:

--- /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
Run Code Online (Sandbox Code Playgroud)