虚拟机运行 OpenWrt 的方法 (VMware Workstation)

by cokebar

飞羽博客 / 2018-12-09 22:06

原文链接:虚拟机运行 OpenWrt 的方法 (VMware Workstation) 作者:cokebar 发表于:飞羽博客

有时候为了折腾,在PC的虚拟机上跑 OpenWrt 有着很多优势。这里介绍一下使用 Vmware 运行 OpenWrt 的方法。

1. 准备一个Linux发行版的虚拟机系统,这里使用Ubuntu 18.04
2. 进入Ubuntu系统,打开终端,下载系统镜像:

mkdir temp     cd temp     wget https://downloads.openwrt.org/releases/18.06.1/targets/x86/64/openwrt-18.06.1-x86-64-combined-ext4.img.gz     gunzip openwrt*.img.gz     sudo apt install qemu-utils     qemu-img convert -f raw -O vmdk openwrt-18.06.1-x86-64-combined-ext4.img openwrt-18.06.1-x86-64-combined-ext4.vmdk

然后把转好的vmdk文件拷贝到宿主机上,记得备份一份以免后续重新分区时候操作失误是还得重新下。
3. 扩展磁盘大小,首先将vmdk挂载到vmware,在Ubuntu虚拟机的设置里,点击添加硬盘(需要先把虚拟机关机)

调整最大磁盘大小,酌情设置。

4. 调整分区

开机,进终端,sudo -s提权为root,并确定新挂上去的磁盘文件对应的设备名是什么,可以用fdisk -l 查看所有设备,找到挂载的磁盘名字,一般来说是/dev/sda,接着:
fdisk /dev/sda
然后输入p,回车

记住第二个分区的起点数字(33792),然后按:
d[Enter] 2[Enter] 删除第二个分区

然后重新分区,并应用
n [enter] p [enter] 2 [enter] 33792 [enter] [enter] w [enter]

然后先卸载/dev/sda2分区(也可以使用umount /dev/sda2)

然后在终端依次执行(如果提示确认执行时候按y),
e2fsck -f /dev/sda2
resize2fs /dev/sda2

PS:下面这张图是我后截的,里面的信息可能和上面的截图不一致

完成!
然后将Ubuntu关机,移除openwrt的磁盘。

5. 创建openwrt虚拟机,需要注意的截屏了,其他的按需设置:

创建好以后可以把USB的支持改成3.0

6. 设置网络

OpenWrt至少需要两张网卡,一个作为WAN口一个作为LAN口,WAN口使用NAT方式连接宿主机网络用于访问互联网,LAN口要模拟一个交换机出来,所以这里使用“仅主机”模式。设置步骤如下。

点击VMware软件菜单的“编辑”-“虚拟网络编辑器”,弹出的虚拟网络编辑器窗口,UAC打开时,默认没有管理员权限,各个项目是灰色无法更改,此时点击右下角的“更改设置”即可。

然后点击“添加网络”,添加一个VMnet2网络,并按照下图设置。

设置完毕后,点击确定。然后打开OpenWrt虚拟机的设置,为虚拟机添加第二张网卡(点击添加,然后选择网络适配器,确定)。

然后将两张虚拟网卡的连接方式按下图配置,网卡1连接到刚才建立的VMnet2,网卡2直接选NAT模式。

这里要提一下,VMware的网卡到了OpenWrt里头,网卡1对应eth0,网卡2对应eth1,而默认OpenWrt将eth0连到LAN口,因此这里将网卡一配置为VMnet2,方面接下来从宿主机连接到OpenWrt。

接下来开机,等待大概二十秒就启动起来了,不过大概到一分钟左右,出现random字样的log后算是完全启动完毕,此时按一下回车,命令行就出来了。不过一般也不在VMware这里操作,因为不太方便,通常还是通过luci/SCP/SSH来操作。

OpenWrt的LAN口默认是192.168.1.1的IP,这个考虑到这个IP可能和宿主机网络冲突,最好换掉;这里先断开宿主机的物理网卡连接防止IP冲突,然后修改VMnet2的虚拟网卡,手工指定IP为192.168.1.2

然后应该就可以通过浏览器访问192.168.1.1进入luci了。修改LAN口的网段:

然后重新将VMnet2网卡设置为IP自动获取,确认其获取到192.168.126.x的IP后,使用192.168.126.1重新访问luci,并添加WAN口:

看到WAN口正确的获取到了VMware分配的IP即告成功。此后使用SSH连接后,尝试opkg update获取软件列表,使用opkg install安装软件,如果没问题,则网络配置完成!剩下的就随便搞了和路由器上用一个样。

PS:由于VMnet2网卡上,不配置VMware的DHCP服务,而是由OpenWrt的DHCP分配IP,因此,OpenWrt开机后,可能VMnet2并未正确获取到OpenWrt分配的IP,此时禁用并重新启用即可,此种情况经常出现在宿主机重启过后。

Shared via Inoreader