当前位置导航:炫浪网>>网络学院>>操作系统>>Linux教程

在双引导Linux系统上实现OS自动切换

    利用本文中介绍的这些技巧,我们可以在一个双引导的机器上自动从一个操作系统切换到另外一个操作系统,无需任何人工干预。您可以使用本文提供的脚本在自己的机器上复制这种同时运行 Linux? 和 Windows? 的设置。

    既然我们可以非常简单地直接手工实现这种操作系统的切换,为什么还希望自动化此操作呢?简单的答案是自动化过程可以让使用多个操作系统变得容易得多。例如您要在多个操作系统平台上测试软件,那么这种功能就会特别有用。

    本文在介绍这些技巧时假设您已经安装好了操作系统,并使用 GRUB 配置了多重引导。GRUB 是 GRand Unified Bootloader 的简称,它在机器启动时加载,然后机器的控制权被转交给 OS 内核软件。有关部署 GRUB 的帮助信息,请参阅本文后面的 参考资料 一节。

    本文介绍的技巧可以适用于:

    Microsoft? Windows XP Professional Microsoft Windows Server 2003 Debian Linux 3.1(Sarge)

    Red Hat Enterprise Server(RHES) 3 GRUB 0.97;虽然使用这个版本的 GRUB 成功了,但不保证使用其他 bootloader 也会获得成功步骤 1. 设置磁盘分区

    在开始配置系统之前,确保有一个最新的系统备份,并且手头有一张援助用的 CD.如果在执行这些步骤时出现了问题,那么机器可能无法启动。如果发现自己面临的风险是无法接受的,那么最好不要继续执行以下步骤。

    创建 Bootcontrol 分区

    在一块硬盘上创建一个小分区。在这个分区上必须创建这样一个文件系统:要切换的所有操作系统都能够加载这个文件系统,并可以对这个文件执行写入操作。我们选择使用 FAT32.尽管整个 Bootcontrol 系统只需要不到 1MB 的磁盘空间,但是 FAT32 默认最小限制为 256MB,因此这会浪费一些空间。

    如果没有足够的未分配空间,可以通过缩小或删除现有分区来创建这部分空间。 在 Linux 中可以使用 GNU parted 命令来实现这项功能。如果在执行 parted 操作之后,现有分区的次序发生了变化,那么可能还需要更新 /etc/fstab 文件。有关的更多信息,请参阅 parted 的文档。

    当使用 parted 在测试机器上创建所需的分区时,会看到如清单 1 中所示的结果:

    清单 1. 创建必需的分区

repton:~# cat /etc/fstab
# /etc/fstab: static file system information.
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/hda2 / ext3 defaults 0 1
/dev/hda6 /home ext3 defaults 0 2
/dev/hda7 /opt ext3 defaults 0 2
/dev/hda5 none swap sw 0 0
/dev/hdc /media/cdrom0 iso9660 ro,user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
repton:~# umount /home
repton:~# parted
Using /dev/hda
(parted) print
Disk geometry for /dev/hda: 0.000-57231.562 megabytes
Disk label type: msdos
Minor Start End Type Filesystem Flags
1 0.031 18412.734 primary ntfs boot
2 18418.271 25085.874 primary ext3
3 25085.874 57231.562 extended
5 25085.905 26458.615 logical linux-swap
6 26458.646 49999.174 logical ext3
7 49999.206 57231.562 logical ext3
(parted) resize 6 26458 49739
(parted) mkpartfs logical fat32 49739 49999
(parted) print
Disk geometry for /dev/hda: 0.000-57231.562 megabytes
Disk label type: msdos
Minor Start End Type Filesystem Flags
1 0.031 18412.734 primary ntfs boot
2 18418.271 25085.874 primary ext3
3 25085.874 57231.562 extended
5 25085.905 26458.615 logical linux-swap
6 26458.646 49740.314 logical ext3
8 49740.346 49999.174 logical fat32
7 49999.206 57231.562 logical ext3
(parted) q
repton:~# mount /home
    挂载 Linux 分区

    在为控制分区创建好空间之后,需要将其挂载到 Linux 中,这样就可以在 Linux 中看到这个分区。在本例中,我们将以下内容添加到了 /etc/fstab 中:

    # <file system> <mount point> <type> <options> <dump> <pass> /dev/hda8 /boot/control vfat umask=022,dmask=022,fmask=022 0 2然后使用下面的命令来创建挂载点并挂载这个文件系统:

    mkdir /boot/control mount /boot/control

    还需要更新 GRUB 在分区结果上维护的信息。在这个测试系统上,我们使用下面的命令:grub-install /dev/hda.

    挂载 Windows 分区

    通过(手工)重新启动到 Windows,验证上面的分区编辑步骤不会破坏 Windows 的引导过程。 然后为刚才创建的 Bootcontrol 卷分配一个驱动器字符。在现代版的 Windows 上,可以使用 Computer Management MMC snap-in(右键点击 My Computer,然后选择 Manage)。在以前的版本上,可以选择 Start > Administrative Tools.

[1] [2] 下一页  

相关内容
赞助商链接