Chinaunix

标题: 远程主机多系统启动切换方法 [打印本页]

作者: kkkggg    时间: 2013-05-08 23:13
标题: 远程主机多系统启动切换方法
本帖最后由 kkkggg 于 2013-05-09 12:16 编辑

在本机上安装多个操作系统,在启动时使用多系统启动菜单来切换,这个用的比较多,网上有很多详尽的资料。
今天来说下如何通过网络操作远程主机的多系统切换。

我的远程主机上装了centos、ubuntu、freebsd、windows server 2012四个操作系统。

进入哪一个系统是由启动引导程序来控制的,所以我们要控制引导程序来指定引导哪一个系统。我们无法像操作本机一样,在远程主机还未启动操作系统前通过键盘进行启动菜单的选择。好在很多引导程序留给用户一个控制启动菜单的配置文件,可以通过修改这个配置文件来指定启动哪个系统。所以我们就用修改启动菜单配置文件的办法来指定系统的启动。要实现这个方法有两个关键点,一是引导程序要给出一个能修改的配置文件;二是各个操作系统都能读写这个配置文件。

centos、ubuntu用的引导程序是grub;freebsd用的是freebsd boot manager;windows用的是windows boot manager。windows的启动菜单配置文件是二进制的,而且只能用专用的windows程序来修改;freebsd和linux的启动菜单文件是文本格式的,修改起来比较方便。而且存放配置文件的ufs和ext分区都可以通过安装软件在各个系统下挂载、读写。由于freebsd的使用者比较少,不具普遍性,所以这里我们就选择修改linux下的启动菜单的方法来实现远程多系统切换。

首先安装windows、freebsd等其它操作系统,最后安装linux系统,我这里最后安装的是ubuntu。开机后使用ubuntu的多系统启动菜单来切换其它系统。安装ubuntu的时候,单独分一个几百MB的ext2分区挂到/boot上。使grub的启动菜单配置文件存放在这个ext2分区上。这个分区等会儿会被所有其它系统挂载、读写。之所以分成ext2分区,是因为ext2分区是非日志型分区,而ext3、4则是日志型分区。在其它系统下如果挂载一个日志型分区,而没有正常卸载或异常退出,可能会产生一些麻烦的问题。

现在进入各个操作系统进行设置、安装使它们能挂载ubuntu的/boot分区,并能修改grub/grub.cfg文件。找到set default="0"这一行,把其中的数字改成启动菜单中你要启动的操作系统所在行的行数-1。因为这个启动菜单把第一行编号定义为0。比如windows在菜单第5行,要启动windows就把这行改为set default="4"。

进入centos,mount那个ext2分区,找到grub目录下的grub.cfg文件进行修改。如果不想每次手动挂载,就修改/etc/fstab文件,自动挂载这个分区。

进入freebsd,跟在linux下的方法差不多。在freebsd的挂载参数中分区类型ext2要变成ext2fs。新版freebsd默认支持ext2分区,不用编译内核了。

进入windows,windows下读写ext2分区要安装第三方软件。
在网上搜索可以在windows系统下挂载ext2文件系统的软件有很多。很多文章介绍ext2ifs,我搜索了一下,有两个ext2ifs,一个主页写了不支持写操作,一个主页写了不支持inode大于128的格式。现在的ubuntu建立的ext2,inode size是256的,所以用不了。后来我又找到一个ext2fsd,看起来能用。
从sourceforge.net上下载这个软件。如果你是用的windows8或者windows server 2012系统,就不要下载那个.exe安装文件了,会提示不支持这个nt版本。实际上这个软件是可以在windows8或windows server 2012中使用的。得要下载压缩包版本的文件,用cmd命令行模式安装。下载压缩包文件,解压,把Ext2Fsd文件夹放到你想要作为软件安装目录的地方。
然后打开cmd窗口。如果是在windows 8里,先从资源管理器里进入到windows\system32目录,找到cmd.exe,在上面点右键,选择“以管理员身份运行”。
在cmd窗口中运行ext2fsd\setup目录下的setup并加上参数。运行没有参数的单独的setup,会有说明提示。如果是32位系统就运行
setup wlh i386
如果是64位系统就运行
setup wlh amd64
wlh是指定安装windows7版的驱动,不是winddows7及以上系统就要换成另外的。
提示服务启动成功后,就可以通过运行ext2fsd\setup下的Ext2Mgr图形管理界面来设置挂载参数了。选择启动引导程序所在的ext2分区,右键点“配置Ext2卷属性”,去掉只读选项的勾。勾上固定盘符的选项。盘符除了选择e: f: g: ...等字母盘符外还可以选择0: 1: 2: xxx等数字盘符。而且数字盘符在资源管理器里看不到。我选择了数字盘符,避免被自己或什么软件误操作。而且windows有时会自动在目录中产生图像缩略文件之类的系统文件。所以选择数字盘符会保险一点。在cmd窗口中输入数字盘符,你就可以看到ext2分区已经被windows挂载了。
修改grub目录下的grub.cfg文件。最好不要用windows自带的记事本打开grub.cfg文件,windows对某些unix下的字符显示会有些不一样。可以使用gvim之类的能识别unix文本格式的编辑器。
至些,操作完成。

作者: chenyx    时间: 2013-05-09 07:59
这个还是第一次看到,一般谁也不会在服务器上安装多系统.
作者: yizuwei520    时间: 2013-05-09 10:56
安装这么多系统主要为了学习下.
作者: lbseraph    时间: 2013-05-09 11:35
谢谢分享~虚拟机中切换的话要快一些吧?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2