虚拟机安装OpenWrt X86(硬盘镜像img文件)

前言

最近手痒又开始玩OpenWrt,干脆在虚拟机上装了一个。在虚拟机上装OpenWrt有很多方法,官方网站甚至给出了WMware的虚拟机的硬盘文件,我选择原始的硬盘镜像img文件入手,感觉还是很方便的。

准备

  1. 虚拟机

    我用的是免费的WMware Player,基本够用了,注意要注册后下载。

  2. Linux发布版LiveCD

    这个有很多选择,比如Ubuntu的LiveCD等。我这里用的是比较小巧的基于Ubuntu的Lucid Puppy,整个LiveCD才100多M。这个主要用作启动盘,方便烧写OpenWrt镜像文件到虚拟机硬盘。

  3. OpenWrt X86硬盘镜像文件

    这个直接从官网上下载,解压后得到img文件就是要安装的硬盘镜像文件。

  4. 一个U盘

    这个主要用来给虚拟机拷贝OpenWrt X86的硬盘镜像文件的。

开始

首先新建个空的Linux虚拟机,硬盘大小为100M左右(OpenWrt的硬盘镜像才50多M,够用了),注意要保留USB接口。

WMware 设置

在虚拟机CDROM上设置ISO镜像文件为Puppy Linux的iso文件,然后启动虚拟机进入Puppy Linux界面。

Puppy Linux

在Windows上用U盘拷贝OpenWrt X86硬盘镜像文件(openwrt-x86-generic-combined-ext2.img),然后拔下U盘。

为了能在虚拟机Puppy Linux中识别U盘,接下来要先点鼠标进入虚拟机里面,再插上U盘,这样WMware才能检测到是虚拟机需要U盘而不会被外边的Windows抢走U盘:)。

最重要的一步来到了,从U盘把OpenWrt的镜像文件拷贝到系统根目录(root)后,开始真正的安装了。其实安装就一条命令:

dd if=openwrt-x86-generic-combined-ext2.img of=/dev/sda

用来强大的dd命令直接拷贝镜像文件覆盖硬盘,因为img文件原本对应一个硬盘的镜像嘛。因为OpenWrt本身的硬盘空间只有50多M,空余的硬盘空间也就无所谓了。

最后重启虚拟机,选择从硬盘启动后OpenWrt也就装好了:

Openwrt

二手路由器上玩OpenWrt

在淘宝上淘到一个二手家用路由器RG100A-AA,让老板预刷了OpenWrt,这下有的玩了:)。

OpenWrt基于嵌入式Linux,适合于路由器等嵌入式设备,最早源于LinkSys公司WRT54G系列路由器产品的开源代码。话说LinkSys一开始是美国的两个台湾移民开的,早期主要生产交换机、路由器刚好赶上上世纪90年代的网络化浪潮,直到2007年被思科收购(思科不愧为收购狂人)。LinkSys在美国还是有一定名气的,思科也不敢贸然把LinkSys出厂商标都换成Cisco。扯远了,就是基于WRT54G系列路由器的开源代码,孵化出一连串开源系统,比较有名的是OpenWrt、DD-WRTTomato

至于OpenWrt的功能可以用强大形容,一般路由器有的它有、没有的它也有,wiki上有列出一长串功能,我最感兴趣的功能是:

  1. 支持文件系统,任意安装软件,有的折腾。
  2. 支持SSH端口转发和VPN,这个具体用来干什么,我就不说了。
  3. 支持一个USB接口,接个外接硬盘,运行个BT什么的,可以脱机下东西了。
  4. 也用USB接个摄像头,搞个在线监控也不错,一起一直想在Linux下做的。

废话少说,我用电脑接RG100A-AA的LAN口,WAN口(OpenWrt默认RG100A-AA的LAN4为WAN口)接家里的路由器就算搭好了。赶忙登陆OpenWrt的Web界面,界面很华丽,功能很强大,貌似用Lua写的。不过悲催的是设置WAN口时老是掉线,居然连Ping都没反应,只能冒险爆路由器菊花复位了,还好救活了。全部设置好后体验了下还不错,除了启动有点慢和有点发热。

接下来就慢慢享受OpenWrt的乐趣了。