是否可以从 Windows 运行当前安装的 Ubuntu?

Am1*_*3zA 9 boot windows system-installation

我在不同的分区上安装了 Windows XP 和 Ubuntu。

是否可以从 Windows 中“引导”我的 Ubuntu 安装?我正在寻找类似于虚拟机的东西,但它将运行已安装在我的硬盘上的 Ubuntu 副本。我希望能够双启动 Ubuntu 和 Windows,但也能够从 Windows 中访问我的 Ubuntu 安装而无需重新启动。

Saj*_*ani 10

您可以使用 coLinux 并使用 colinux 运行您的 Ubuntu 内核:

  1. 我在单独的分区上正常​​安装了 Ubuntu,并将计算机配置为在 Ubuntu/XP 之间进行双启动。

  2. 我在 Debian 上安装了 coLinux 和 coLinux 网站上提供的 backports 映像。

  3. 配置 coLinux 以便它可以挂载 Ubuntu 分区,这里的技巧是找出正确的分区号。coLinux 中的分区号似乎比使用 Ubuntu 启动计算机时使用的分区号要小。就我而言,我必须设置:

    <block_device index="1" path="\Device\Harddisk0\Partition5" enabled="true" alias="hda7"/>
    
    Run Code Online (Sandbox Code Playgroud)
  4. 使用带有 backports 映像的 Debian 启动 coLinux,在我的情况下启动后挂载 ubuntu 分区 /dev/hda7

  5. 为了能够在 coLinux 中启动 ubuntu,您需要关闭一些在启动时自动启动的服务,其中大部分与硬件相关,并且在 coLinux 中不受支持。当不在 colinux 中运行 ubuntu 时,您仍然希望运行这些服务。我首先根据http://wiki.colinux.org/cgi-bin/DualBootSystem创建了一个 /etc/inid.d/colinux 脚本,
    这个脚本当然应该在/etc/init.dubuntu 分区的目录中创建,而不是在“debian with backports”图像。
    创建此脚本后,您还需要编辑该default.colinux.xml文件,使其包含COLINUX=1引导参数,在我的情况下:

    <bootparams>root=/dev/hda8 COLINUX=1</bootparams>
    
    Run Code Online (Sandbox Code Playgroud)

    这个脚本现在可以在 coLinux 中启动时关闭一些自动启动的服务,但在使用 ubuntu 双重引导计算机时仍然运行这些服务。您还必须确保在引导时通过在/etc/rcS.d目录中插入链接来运行此脚本。

  6. 下一步是通过在服务脚本中插入 if 语句来关闭服务/etc/init.d(在 ubuntu 分区上)。

    if [ -f /var/local/colinux ] ; then
    exit 0
    fi
    
    Run Code Online (Sandbox Code Playgroud)


    在 coLinux 中启动时,我不得不关闭以下服务以使其启动,当这些服务中的任何一个运行时,coLinux 在启动过程中崩溃:

    /etc/init.d/gdm 
    /etc/init.d/powernowd 
    /etc/init.d/hotkey-setup 
    /etc/init.d/pcmcia 
    /etc/init.d/vbesave
    
    Run Code Online (Sandbox Code Playgroud)
  7. 创建一些其他文件的 colinux 定制版本,上面提到的 init.d 中的 colinux 脚本使得可以有一些不同文件的 colinux 版本和非 colinux 版本。就我而言,我有以下文件的特殊版本:

    /etc/fstab(coLinux 使用 smbfs 而不是 ntfs 只读挂载来挂载 ntfs 分区)
    /etc/network/interfaces(我没有让 colinux 使用 DHCP 工作,因此它具有硬编码的 IP 号码)
    /etc/gdm/gdm.conf(我是不太确定是否使用了这个,因为 gdm 不能在启动时启动,但我有一个 coLinux 的特殊版本,所有 [servers] 都被禁用。使用 vnc 时可能会使用它,但我不确定是否需要它)

    以这种方式设置这些文件时,请务必记住编辑正确的文件,因为在每次启动时,普通文件将被 *-colinux 或 *-non-colinux 版本覆盖。可能可以设置符号链接而不是覆盖文件,但我尚未对此进行测试。

  8. 最后,您必须设置 coLinux,以便它使用 Ubuntu 分区而不是“debian with backports”映像启动,这是通过在 default.colinux.xml 文件中设置启动分区来完成的,在我的情况下它指向 /dev/hda8
    <bootparams>root=/dev/hda8 COLINUX=1< /bootparams>

  9. 现在应该可以通过在启动计算机时在双引导(grub)菜单中选择它来启动 Ubuntu,或者通过启动 XP 并启动 coLinux。请注意,在 coLinux 内部运行时,实际上并未使用 Ubuntu 内核,而是使用了 coLinux 内核。例如,如果您需要重新编译内核和内核模块,那么考虑这一点很重要。

最后,不要犯和我一样的错误。如该线程中所述,我将 XP/coLinux 置于休眠模式下进入睡眠状态,然后双引导进入 Ubuntu。我的 Ubuntu 文件系统在下次启动 XP 时损坏了,我决定完全重新安装 Ubuntu。

  • 如果你只是想复制和粘贴别人的作品,[你应该给他们功劳](http://ubuntuforums.org/showthread.php?t=81444#post439988)。 (5认同)
  • 这是个好主意,我想我的朋友也这样做,因为我也从他那里听说了 Colinux。 (2认同)