如何拥有 Linux Mint 17 Cinnamon/Ubuntu 14.04/Windows 8 三重启动?

如何拥有 Linux Mint 17 Cinnamon/Ubuntu 14.04/Windows 8 三重启动?

我已经安装了 Ubuntu 14.04 和 Windows 8 作为双启动系统,现在我想安装 Linux Mint 17 并拥有三启动系统。如何在我的三重启动中安装 Mint 17?如何对硬盘进行分区?我想使用 USB 来安装它,而不是使用 Windows 安装程序。

答案1

正常安装就可以了。您可以从 USB 启动并按照安装程序的步骤进行操作。您可以在安装前手动创建分区,也可以在安装过程中使用 Mint 安装程序提供的工具进行分区。

您真正需要担心的唯一事情是安装程序询问您是否安装引导加载程序 (GRUB)。那么,你有2个选择。由于您已经通过 Ubuntu 安装了 GRUB,因此您可以选择不从 mint 安装新的 GRUB 并使用 Ubuntu 的,也可以安装 Mint 的并覆盖 Ubuntu 的。

  1. 使用现有的 GRUB。

    当安装程序询问您是否安装引导加载程序时,请说“不”。安装完成后,重新启动并加载 Ubuntu(Mint 将不会出现在可用操作系统列表中)。在 Ubuntu 中,刷新 GRUB,以便它将检测您的新 Mint 安装:

    sudo update-grub
    
  2. 使用 Mint 的 GRUB。

    当安装程序询问您是否安装引导加载程序时,请说“是”。确保将其安装在 Ubuntu GRUB 的安装位置。这可能是主硬盘驱动器的主引导记录 (MBR)。重新启动,您现在应该已经安装了 Mint 的 GRUB,并且可以选择 Mint、Ubuntu 或 Windows。

答案2

大多数系统支持从不同分区引导不同的安装。我发现,如果每个安装都有自己的 GRUB 副本,则多重 Linux 安装的多重引导效果最佳。

如果您使用的是最新版本的 GRUB,则从 GRUB 中加载 GRUB 非常简单。

这个/etc/grub.d/40_custom文件允许我在不同版本的 Ubuntu 之间进行多重引导。它在其他发行版上看起来应该类似,尽管配置文件可能具有不同的名称,并且显然每种情况下的路径core.img都会不同。

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

set timeout=25
set timeout_style=menu

menuentry 'Raring' { multiboot /raring/boot/grub/i386-pc/core.img }
menuentry 'Saucy' { multiboot /saucy/boot/grub/i386-pc/core.img }
menuentry 'Trusty' { multiboot /trusty/boot/grub/i386-pc/core.img }

可以从单个分区引导多个 Linux 发行版。我不知道有哪个发行版支持这种开箱即用的功能,但大多数发行版只需稍作更改即可做到这一点。我一直使用这个/usr/share/initramfs-tools/hooks/rootdir文件从子目录而不是分区的根目录启动 Ubuntu 和 Debian:

#!/bin/sh
# /usr/share/initramfs-tools/hooks/rootdir

set -e

if [ "$1" = prereqs ]; then
    exit 0
fi

. /usr/share/initramfs-tools/hook-functions

DEFAULT_DIR="$(/usr/bin/grub-mkrelpath /)"

mkdir -p "$DESTDIR"/scripts/local-bottom
cat >"$DESTDIR"/scripts/local-bottom/rootdir <<EOF
#!/bin/sh

PREREQ=""
prereqs()
{
     echo "\$PREREQ"
}

case \$1 in
prereqs)
     prereqs
     exit 0
     ;;
esac

ROOTDIR="$DEFAULT_DIR"

for x in \$(cat /proc/cmdline); do
    case \${x} in
    rootdir=*)
        ROOTDIR="\${x#rootdir=}"
        ;;
    esac
done

if [ -n "\${ROOTDIR#/}" ] && [ -d "/root/\${ROOTDIR}" ]
then
    [ -d /rootfs ] || mkdir -m 0700 /rootfs
    mount --move "/root" "/rootfs"
    mount --bind "/rootfs/\${ROOTDIR}" "/root"
    umount "/rootfs"
fi

EOF

chmod 0755 "$DESTDIR"/scripts/local-bottom/rootdir

相关内容