首页 ›运维› 网络学院 › 查看内容

不用虚拟机也不用 WSL,你还可以这样在 Windows 上跑 Linux

2021-11-23 18:26 3160 0

摘要: 网管小贾的博客 / www.sysadm.cc 正如文章标题所写,既不用虚拟机也不用 WSL ,想要在 Windows 上跑 Linux 可行吗? 早在很久以前(抱歉多久没查到,的确很早就是了),那时在虚拟系统 VMWare 和 VirtualBox 还很小 ...
关键词: CoLinux 系统 我们 可以 Ubuntu 网卡 安装 文件 镜像 配置

网管小贾的博客 / www.sysadm.cc

正如文章标题所写,既不用虚拟机也不用 WSL ,想要在 Windows 上跑 Linux 可行吗?

早在很久以前(抱歉多久没查到,的确很早就是了),那时在虚拟系统 VMWare 和 VirtualBox 还很小的时候,在 WSL 还没出生的时候,江湖中已经出现了一位拥有早期黑科技于一身的大侠。

这位大侠江湖人称 Cooperative Linux ,意为协作 Linux ,人送外号 CoLinux 。


既然是大侠,那他的黑科技有多黑呢?

这么说吧,他可以在 Windows 系统上时不时地抢夺 CPU 资源,以此来模拟运行 Linux 系统,因此可以实现在 Windows 上同时运行 Linux 的效果。

他这招黑就黑在,他不是我们现在所熟知的虚拟机技术,而是和 Windows 一模一样、大模大样地一起向前奔跑,犹如一台机器实际上跑着两个甚至多个系统。

也就是说,他的这个 Linux 是个真的系统,虽然它和虚拟机挺像,也要先开个 Windows 。

好了,说到这儿,我想肯定有小伙伴心里好奇得痒痒了,那我就陪各位走一遭,去拜访拜访这位当年名噪一时的大侠吧!


准备工作

一台安装有 Windows 7 32位 的物理实体机。

当然你用虚拟机也是可以的,这并不会影响 CoLinux 的实现。

为什么要 32 位,后文书会说到,暂时按下不表。

还有最好能上网,好了,就这么多。


下载安装 CoLinux

我们本着能动手绝不BB的原则,直接来到官网,来个先下载为敬。

官网链接:http://www.colinux.org/


打开官网,左上角的 LOGO 震撼到了我,这用的是我中国的太极啊,你中有我、我中有你的阴阳理论,与大侠的风范的确很贴合啊。

找到左侧菜单栏中的 Download 一项,实际上 CoLinux 下载被托管到了 SourceForge.net 上了。

下载链接:
https://sourceforge.net/projects/colinux/files/


最新版本 0.7.9 ,直接点击下载即可。



因为是 Windows 程序,所以安装极为简单。

不过在安装过程中有几处需要言明,比如如下图,你可以不勾选第二行的 Root Filesystem image Download ,这样就可以直接跳过后面的镜像系统的下载过程,避免因镜像系统过大而浪费时间。



还有,如果你需要将 Linux 系统通过桥接方式联网的话,必须要安装 WinPcap ,因为 CoLinux 的网络依赖这个组件。

提示:pcap-bridge 模式需要 WinPcap ,而 ndis-bridge 则不需要,一会再细说。



那么如何安装 WinPcap 呢?

其实一点儿都不难,到它的官网下载安装就是了。

WinPcap 下载链接:
https://www.winpcap.org/install/default.htm

找到如下图中的安装包就可以了。



如果在前面的步骤中你没有去掉 Root Filesystem image Download 的勾也没关系,可以让它保持默认不下载任何镜像即可,直接点下安装继续。

有些镜像系统文件有新版本,我们在后续的步骤中再手动下载即可。



接下来程序会开始安装,如果它弹出一个错误,就像下图那样,那么你应该使用 32 位的系统,原因是 CoLinux 不支持 64 位操作系统。

这是个小小的遗憾,不过官方也说了,以后会更新,毕竟现在都已经是 64 位系统的时代了。



安装过程中会提示你安装一些驱动程序软件,其中包括一块虚拟网卡,这个之后会详细再说。

选择 始终安装此驱动程序软件 后继续。



除 CoLinux 本身程序的安装以外,我们还要下载一个 Linux 系统的镜像文件。

以本文示例,我们选个 Ubuntu 12.04 下载吧。

如下图,也是在 SourceForge 上,找到目录路径 Home / Images 2.6.x Ubuntu / Ubuntu 12.04 。

可以直接下载迷你版:
http://sourceforge.net/projects/speedlinux/files/base-200-10-11-11.7z/download

下载完成后我们得到一个压缩文件 base-200-10-11-11.7z ,大小约 195 MB。



初步使用 CoLinux

将 CoLinux命令路径添加到 Path环境变量中

CoLinux 被安装在了 C:\Program Files\colinux ,然而接下来的操作会涉及到命令行的方式。

因此为了在任意目录下都能直接访问到 CoLinux 命令,那么我们最好将这些命令的路径添加到系统路径 Path 环境变量中。



基本配置

我们先要给我们的系统搭个窝,在这里我新建一个文件夹,用于存放配置文件和镜像文件啥的,比如 C:\colinux 。

将前面下载的镜像压缩文件 base-200-10-11-11.7z 解压后,把 base.vdi 放到 C:\colinux 中。


然后再在 CoLinux 的安装目录 C:\Program Files\colinux 中,找到名称为 example.conf 的这么一个文件。

瞧名字就知道啥意思了哈,将它复制一份出来并重命名,放到我们新建的文件夹中,比如 C:\colinux\base.conf 。

接着我们就要来编辑这个 base.conf ,用记事本打开就行。


那么怎么编辑呢,需要改些什么参数呢?

其实有个现成的参数文件来着,我们可以在 C:\Program Files\colinux 中很容易地找到一份关于如何配置 CoLinux 的文本说明文件 colinux-daemon.txt 。



我们只要照着这个文件描述的设定方法做就是了,实际做测试的话也很简单,没几个参数要改的。

我可以偷偷告诉你,只要改三个就可以了,哪三个,看下面。

# 内核
kernel=

  This specifies the path to the vmlinux file.

  Example:
  kernel=vmlinux

# 初始镜像
initrd=

  This specifies the path to the initrd file.

  Example:
  initrd=initrd.gz


一个是 kernel ,另一个是 initrd ,前者是内核,后者是初始镜像。

这两个东东其实 CoLinux 已经帮我们提供好了,就在安装目录中。

不过需要我们特别注意的是,在参数书写之时务必要加上绝对路径,比如。

kernel="C:\Program Files\coLinux\vmlinux"
initrd="C:\Program Files\coLinux\initrd.gz"



否则可能会导致找不到文件而系统无法正常启动。



前面两个介绍了,还有一个就是镜像系统本身了。

前面我们已经下载好并放到了 C:\colinux 中了,OK,将镜像文件引用到 cobd0 参数。

cobd0="c:\colinux\base.vdi"

这个和虚拟的第一块磁盘那赶脚差不多意思。



好了,说到这儿就已经可以启动我们下载的 Linux 系统了,不过可能有的小伙伴比较疑惑,还有内存、网络啥的呢,不用配置了?

关于内存设定,作为实验,一般不需要特别指定,默认是被注释掉的。

内存默认以 MB 为单位,在未被指定并且你的实际物理内存大于 128MB 的情况下,它会以实际物理内存的四分之一为设定标准,当然你指定一下也是可以的,完全没问题。

mem=

此外关于网络,我们现在还不着急用到,等之后会专门来说的,稍安勿躁哈,我们先来看看系统能不能启动起来。


启动系统

配置完成后就是启动系统了,我们来尝试启动看看。

打开命令控制台,输入以下命令。

colinux-daemon @base.conf

还是要啰嗦一句,注意 colinux-daemon 和 base.conf 的路径正确的问题,如果要写完整,应该是这个样子。

C:\Program files\colinux\colinux-daemon.exe @C:\colinux\base.conf


好了,系统开始启动了,妈耶,这是什么字体啊,造型挺别致啊!



不喜欢,遂修改之,点击上面菜单 Config > Font... 修改字体。



改成什么字体就看各位的喜好了,我先干了,你们随意。



字体改完后看着舒服多了,这个系统挺有意思,登录用户名和密码都明明白白告诉你了。

通常密码是 root ,也有的系统的密码是 colinux 。



输入用户名和密码后登录成功,可是这时候来了一个大坑,当我按下键盘突然发现输出字符错乱,搞了半天它喵的居然是日文键盘布局!



哎?怎么会是日文键盘呢?

我猜测这个 CoLinux 项目是太君们搞起来的,看官网上的示例截图,都用上了日文版的 Knoppix 。

布局错乱,除了标点符号啥的完全不一样外,好像 z 键和 y 键也完全给颠倒了!


对照着日文键盘按,凑合凑合倒是可以,不过不管怎么样这到底还是有些反人类啊!

对于这样变态的用法你能忍吗,反正我是忍不了了,怎么办?

很简单,Ubuntu 里有修改键盘布局的高级工具 dpkg-reconfigure 啊,盘它!

输入以下命令开启变更键盘布局之旅。

$ sudo dpkg-reconfigure keyboard-configuration


注意,在出现的界面中,按上下键做出选择,按 Tab 键移动光标至 处再按回车进入下一步。

第一个画面中,选择 Generic 104-key PC ,当然你看到的是乱码,忍耐一下,一会儿就不疼了。



紧接着选择 Chinese ,这是国家和区域选择。



接下来是选择语言,我猜应该是最上面一行简体中文。



然后应该是键盘布局,选择最上面的默认布局,可以参考第二幅图片。



快了哈,接着是配置组合键,选择第一行没有组合键,同样参考第二幅图,我的眼睛啊!



最后不用我多说,肯定是确认设置,选择 Yes 搞定!



OK,再来试试键盘输入,瞬间舒服多了吧!

珍爱生命,从保护视力开始!


既然系统成功启动了,那么我们可以做些什么呢?

我想到的是,得保证它可以上网啊,没有网心不亮啊!


网络设置

前面留了扣,没有说网络的配置,原因是这玩意搞网络有那么一些些麻烦,需要专门来说一说。

首先我们将 Windows 的防火墙关闭,当然了,如果你可以设定成单独为 CoLinux 关闭也是可以的。

其次我们先来了解一下 CoLinux 网络参数有哪些选项。


网络连接类型

网卡参数支持类型为:slirp ,tuntap ,pcap-bridge ,ndis-bridge ,共四种类型。

  • slirp:最简单模式,仅直接与 Windows 连接。
  • tuntap:连接 CoLinux 虚拟出来的一块网卡 TAP-Win32 Adapter V8 (coLinux) 。
  • pcap-bridge:桥接 Windows 的物理网卡,需要 WinPcap 驱动。
  • ndis-bridge:与 pcap-bridge 相同,区别是不使用 WinPcap 驱动,仅通过 Windows 的 NDIS 接口层模拟网卡。



配置网卡参数

配置文件中网卡参数的书写形式为以下这个样子。

ethX=slirp | tuntap | pcap-bridge | ndis-bridge , 


在这里我用 pcap-bridge 类型方式来做演示,除了桥接其他类型想上网比较困难。

注意,配置文件中最好按以下格式写入网卡配置信息。

本地连接名称就是你在正常使用的网卡的名称,当然你可以重命名为你喜欢的名字。

另外,后面的 mac 地址应该是这块网卡的硬件地址,如果和 Linux 虚拟系统中的 mac 地址不同,那可能会出现问题,最好重新来过。

eth0=pcap-bridge,"本地连接名称",00:11:22:33:44:55


Linux系统中的网络配置

除搞定配置文件外,启动并进入 Linux 系统后,还需要通过以下命令查看系统内部网卡信息,这个有可能不是 eth0 。

以本文为例,从返回的结果看,当前的网卡名称叫作 eth3 而不是 eth0 ,这个要注意了,以实际反馈的信息为准哦。

$ ip address



有了网卡信息,那么我们接下来修改它的IP地址信息吧。

输入以下命令,开始编辑网卡信息。

$ sudo vi /etc/network/interfaces

系统配置中默认 eth3 是被注释掉的,所以我们将它的注释拿掉,再赋予正确的 IP 地址及网关信息即可。

注意,在最上面 auto 一行,别忘记确保有相应编号的 eth (图中没有写 eth3,实际应该加上eth3 )。

举例如下:

auto lo eth3

iface lo inet loopback

iface eth3 inet static
	address 192.168.2.10
	netmask 255.255.255.0
	gateway 192.168.2.1



设定完成,保存退出,然后执行以下命令使网卡配置生效。

# ifdown eth3 && ifup eth3

或者重启服务也是可以的。

# /etc/init.d/networking restart

最后确认网络可 Ping 通。



除了桥接方式,本身它是可以支持本机网络访问的,这种情况下只是 Windows 本机与 Linux 系统连接网络了。

从下图中我们可以看到,在 CoLinux 安装完成后,就会自动生成一个虚拟网卡。



这种情况下,只要将网卡简单配置成 tuntap 参数即可。

eth0=tuntap

当系统启动后,你会发现这块虚拟网卡由断开网络的状态转变成了连接状态。


修改镜像更新源

我们已经成功连上了互联网,但是我发现无法正常下载安装软件,所以我们应该更新一下镜像源。

由于我们用的 Ubuntu

本文出处: https://www.toutiao.com/a7033241651438944805/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部