当通过Wubi安装了Ubuntu系统的电脑需要升级更换硬盘,或者同一台Windows电脑希望同时安装32位和64位的Ubuntu时,直接迁移Ubuntu无疑是比较好的方法,它既不用重装系统也不用一个个重置大量的应用程序,省时省力。本文即为大家介绍,不同情况下Ubuntu的迁移方法。

Wubi安装的Ubuntu迁移原理

Linux有许多发行版本,Ubuntu便是其中之一,相比其他版本的Linux,Ubuntu更加易用,即便是Windows用户也能快速上手使用。Wubi则是指Windows下的Ubuntu安装程序(Ubuntu Installer for Windows),它让Ubuntu就好像是普通的Windows程序一样,可以简单地进行安装、删除或卸载等操作。

通过Wubi安装的Ubuntu系统实际存于X:\ubuntu\disks(此处X为Wubi安装的Ubuntu系统所在分区)文件夹下的Root.disk镜像文件中,Root.disk也是Linux的ext3文件系统的虚拟磁盘。打包拷贝X:\ubuntu\文件夹,复制到任何一台Windows电脑上,略加配置,不用重装便可以使用Ubuntu系统了。

单个Ubuntu的迁移

首先拷贝X:\ubuntu\文件夹到Windows电脑上的一个NTFS分区中,再拷贝X:\ubuntu\winboot\文件夹下的Wubildr和Wubildr.mbr引导文件到Windows系统所在的盘(假设为C盘)。

修改Windows引导菜单,如果是XP系统,则修改文件C:\boot.ini(系统默认是隐含和只读的,需要修改其属性才能编辑),在其最后加上一行代码:C:\Wubildr.mbr=”Ubuntu”(图1)。

图1 编辑Windows XP的Boot.ini文件

如果用户使用的是Windows 7系统,则需要以管理员身份执行一个相应的BAT批处理脚本(图2、图3)。

图2 Windows 7下的启动脚本代码

图3 Windows 7启动脚本的运行

重启系统后,启动菜单中将多出“Ubuntu”选项,选择它启动电脑(图4、图5)。

图4 为Windows添加的启动菜单项

图5 选择Ubuntu进行启动

迁移的电脑硬盘分区与原安装电脑根本不同,引导Ubuntu就会出现uuid错误并进入Initramfs系统。可以键入“ls -l /dev/disk/by-uuid”命令,得到分区和uuid信息,记住这些信息后,键入“reboot”重启电脑(图6)。

图6 获取分区和uuid信息

电脑再次启动,选择Ubuntu的同时键入“e”,修改硬盘分区和uuid信息,按Ctrl+X或者F10键进入Ubuntu系统(图7)。

图7 修改硬盘分区和uuid信息

进入Ubuntu系统后,为保证下次正常引导,修改“/boot/grub/grub.cfg”配置文件完成迁移最后工作,修改的内容就是硬盘分区与uuid信息(图8)。

图8 修改“/boot/grub/grub.cfg”配置文件

多个Ubuntu的迁移

当一台电脑希望有两个Ubuntu系统(32位和64位系统)迁移并共存时,有两种方法实现。一种方法是拷贝并公用一套引导文件Wubildr和Wubildr.mbr,引导菜单中保持一项“Ubuntu”,每次引导系统前,将引导的X:\ubuntu\文件夹保留,另外一个重命名为X:\ubuntuxxx。按上面单个Ubuntu系统迁移方法分别引导并修改硬盘分区和uuid信息。

第二种方法是使用两套引导文件Wubildr和Wubildr.mbr,引导菜单中建立两项“Ubuntu”和“Ubuntu32”,两个系统文件夹X:\ubuntu\和X:\ubuntu32\。为区分两套引导文件Wubildr和Wubildr.mbr,必须构建新引导文件并命名为Wubil32和Wubildr32.mbr,同时拷贝到Windows系统盘,然后按上面单个Ubuntu系统迁移的方法,分别引导修改硬盘分区和uuid信息。

构建新Wubildr和Wubildr.mbr引导文件

Wubi安装的Ubuntu成功后会自动生成Winboot文件夹及Wubildr、Wubildr-bootstrap.cfg、Wubildr.cfg、Wubildr.mbr和Wubildr.tar文件。

构建新Wubildr.mbr为Wubildr32.mbr,新Wubildr为Wubil32,需要Wubildr.cfg和Wubildr-bootstrap.cfg文件。如果新引导文件引导的Ubuntu系统存放于X:\ubuntu32\文件夹,需要修改Wubildr.cfg文件,将Wubildr.cfg文件中所有的“/ubuntu/”替换为“/ubuntu32/”,然后执行下面的Shell脚本即可构建新的引导文件Wubildr32.mbr和Wubil32了(图9)。

图9 构建新引导文件的Shell脚本种建议形式)