有时候为了折腾,在PC的虚拟机上跑 OpenWrt 有着很多优势。这里介绍一下使用 Vmware 运行 OpenWrt 的方法。
1. 准备一个Linux发行版的虚拟机系统,这里使用Ubuntu 18.04
2. 进入Ubuntu系统,打开终端,下载系统镜像并转换为vmdk:
1 2 3 4 5 6 |
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),
resize2fs /dev/sda2
e2fsck -f /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,此时禁用并重新启用即可,此种情况经常出现在宿主机重启过后。
引用: 虚拟机运行 OpenWrt 的方法 (VMware Workstation) – Log@X.X.B
引用: OpenWRT for x86 | Venhow's Blog