如何在云主机上安装任意Linux镜像

双十一促销期间,在某云买了一台便宜的云主机,包括一个20G的系统盘,可以安装linux和windows系统。

问题出在安装了Windows系统之后,就无法再想换装Linux了。当然不是不可以,需要加钱。 原因是在安装Windows时,系统就自动扩容为50G。虽然这是免费的,可是Windows Server那个难用啊,还是不要的好。

可是某云的主机配置一旦升级之后,就不允许降了。难道只能将就使用Windows系统了么?

转念一想,为什么不自己重装系统呢? 这样不就可以免费多得了30G空间么? 但是,事情没有这么简单。

平时我们安装Linux都是通过插U盘的方式来完成的,可是

1. 平台并不提供加载ISO的功能,只能使用标准镜像或者以前的备份镜像。如果换用Linux镜像,就要按扩容后的配置加钱,但如果是Windows就不用。

2. 平台不能选择启动硬盘,也就是说自己制作启动盘(云硬盘)的方式也不可行。

那么有没有不使用U盘,而直接在Windows上进行Linux安装的呢?对,wubi就可以做到这点,可以把Linux安装到一个目录下,还可以使用双启动。如果想保留Windows,这是一个很好的方案了。不足之处是Windows占用的空间无法使用,另外读写性能估计也有影响。

看wubi的文档,可以在安装完成之后,把系统转移到整个分区。看来这是一个可行的方案。 这样的话,我们首先需要一个新的空闲分区来安装这个临时的系统。这就需要临时挂载一个数据云盘,安装完成后卸载硬盘即可,貌似很简单,可以试一下。

在wubi的安装过程中发现可以选择硬盘分区,既然这样为什么不直接一步到位安装到Windows分区上呢?!

于是又试了一下,安装完成了,但是系统启动不了!问题出在Boot Loader的安装位置。如果选择把GRUB直接安装在系统盘的MPR位置,无法启动直接黑屏了(云平台可能做了限制)!

实际上,在这个系统盘上有两个分区,一个500M的系统恢复分区,另一个是4.5G的Windows分区。恢复分区有激活标志,上面有NTLDR,可以进入系统恢复或者正常启动。

GRUB既然不能安装在MPR上,就只能安装分区上,现在有两个解决办法,

一,Linux安装到Windows分区,同时保留恢复分区,然后修改其上NTLDR的BCD(boot configuation data),就像wubi做的一样的,添加一个启动项,指向Windows分区的GRUB。

这个方法比较保守,也更复杂,虽然windows自带了bcdedit.exe程序,可以修改BCD,但是并没有找到可以加载GRUB2的办法。最后找到的办法是借用一个叫做EasyBCD的工具,不仅可以修改BCD,还自带了GRUB2的加载器。

二,删除两个分区而重建一个完整的分区。

这个办法最完美,还可以完整使用整个系统盘不浪费一点空间!

后来发现UNetbooin比Wubi更好用,可以任意指定ISO,还可以在Linux运行。
但是需要带参数运行,以强制指定D盘(否则D盘不可选)
unetbootin installtype=HDD targetdrive=D:\