请教VBOX网络桥接之后虚拟xp无法启动如何解决

Kvm、VMware、Virtualbox、Xen、Qemu 等
回复
heroreno
帖子: 38
注册时间: 2006-10-26 17:09
送出感谢: 0
接收感谢: 0
联系:

请教VBOX网络桥接之后虚拟xp无法启动如何解决

#1

帖子 heroreno » 2007-10-17 16:53

网络为静态IP地址,地址为192.168.0.128。按照以下步骤设置host:
1.sudo tunctl -t tap0 -u fenglei
2. sudo brctl addbr br0
3. sudo ifconfig eth0 0.0.0.0 promisc
4. sudo brctl addif br0 eth0
5. sudo ifconfig br0 192.168.0.128 up
sudo route del default
sudo route add default gw 192.168.0.128 dev br0
6.sudo brctl addif br0 tap0
7.sudo ifconfig tap0 up

设置以后,虚拟xp无法启动,在innotek画面出现之前,弹出窗口,内容为:

Unknown error creating VM (VERR_HOSTIF_INIT_FAILED).
VBox status code: -3100 (VERR_HOSTIF_INIT_FAILED).

Result Code:
0x80004005
Component:
Console
Interface:
IConsole {1dea5c4b-0753-4193-b909-22330f64ec45}

另外,vbox已经安装虚拟机工具。
我还是ubuntu的初学者,对这个问题有点一头雾水。请教高手该如何解决。谢谢。
heroreno
帖子: 38
注册时间: 2006-10-26 17:09
送出感谢: 0
接收感谢: 0
联系:

#2

帖子 heroreno » 2007-10-17 22:53

顶起来。
头像
windwiny
帖子: 2254
注册时间: 2007-03-13 17:26
送出感谢: 0
接收感谢: 1 次

#3

帖子 windwiny » 2007-10-17 22:59

代码: 全选

#!/bin/sh
# vim:set ft=sh:

## 2007-09 windwiny.ubt@gmail.com  vboxbridgedrun.sh
## 使用前自行修改  id,ip,gw,eth?,br?,tap?  等相关参数,

# VirtualBox Bridging VirtualBox 实现桥接模式
## 参考 http://www.oceanboo.cn/read.php?55

#  Ubuntu 里安装软件包
## sudo apt-get install uml-utilities bridge-utils
## ---------------------------------------------------------------------

function usage() {
    echo -e  "$RED Usage:
    $GREEN sudo `basename "$0"` {start|stop}  $WHITE\n"
}

if [ `id -u` -ne 0 ]; then
    echo " must root can run this "
    usage
    exit 1
fi


function start() {
	echo -e "$GREEN  `basename "$0"` START  $WHITE"

	# Create a tap device with permission for the user running vbox
	# 建立一个使用者(user)有权限的设备tap?,-u 参数为自己用户名 或 id
	tunctl -t tap0 -u n1 # 不能用 `id -u`,因为使用sudo 执行时id为0
	tunctl -t tap1 -u n1
	tunctl -t tap2 -u n1
	tunctl -t tap3 -u n1
	chmod 0666 /dev/net/tun

	# Bring up eth? and tap? in promiscuous mode
	# 将eth?和tap?网卡界面设为混杂模式(Promiscuous)
	ifconfig eth0 0.0.0.0 promisc
	ifconfig tap0 0.0.0.0 promisc
	ifconfig tap1 0.0.0.0 promisc
	ifconfig tap2 0.0.0.0 promisc
	ifconfig tap3 0.0.0.0 promisc

	# Create a new bridge and add the interfaces to the bridge.
	# 建立新的桥接界面(bridge),並把 eth?, tap? 加入bridge
	brctl addbr br0
	brctl addif br0 eth0
	brctl addif br0 tap0
	brctl addif br0 tap1
	brctl addif br0 tap2
	brctl addif br0 tap3

	# 下面是两种获取IP的方式,可以自由选择,把不需要的注释掉就好了。
	# 将bridge设成静态IP。XXX都分别对应IP、子网掩码、网关。
	ifconfig br0 192.168.1.243 netmask 255.255.255.0 up
	route add default gw 192.168.1.1
	# 将bridge设成动态DHCP分配IP。
	# dhclient br0
}


function stop() {
	echo -e "$GREEN  `basename "$0"` STOP  $WHITE"

	## 刪除 tap?
	tunctl -d tap0
	tunctl -d tap1
	tunctl -d tap2
	tunctl -d tap3
	##
	## 停止 br?
	ifconfig br0 down
	## 将 tap?, eth? 移出bridge
	brctl delif br0 eth0
	brctl delif br0 tap0
	brctl delif br0 tap1
	brctl delif br0 tap2
	brctl delif br0 tap3
	## 刪除 br?
	brctl delbr br0
	##

	## 自定义恢复IP地址,默认网关
	ifconfig eth0 192.168.1.243 netmask 255.255.255.0 up
	route add default gw 192.168.1.1
}

case "$1" in
    start)
	start
	;;
    stop)
	stop
	;;
    restart)
	stop
	start
	;;
    *)
	usage
	exit 1
	;;
esac

exit 0

## ============================================================================
## Vbox 使用 USB 设备
# sudo addgroup usbfs     # 添加组
# sudo adduser n1 usbfs   # 添加用户到组
# grep 'usbfs' /etc/group # 查看组ID
# Add /etc/fstab liked:   # 添加如下行到/etc/fstab里,替换devgid 
#   none /proc/bus/usb usbfs devgid=1005,devmode=664 0 0
# vbox guest OS setting.  # 在Vbox里设置使用USB

## ============================================================================
## VBox 使用外接磁盘并在同时运行的系统中共享。  
##     创建类似于两台物理主机共享的磁盘阵列,用于双机集群测试   windwiny
sudo modprobe loop		# 加载 loop 模块,创建 /dev/loop{1-7}
sudo chmod a+rwx /dev/loop*	# 所有用户可读写
cd ~/.VirtualBox/
dd if=/dev/zero of=disk1 bs=10M count=10
losetup /dev/loop0 disk1	# 挂载文件成块设备
fdisk /dev/loop0		# 分区
VBoxManage internalcommands createrawvmdk -filename sdh.vmdk -rawdisk /dev/loop0  -relative -register  # 不加 -partitions ? 分区参数,使用整个磁盘
cp sdh.vmdk sdi.vmdk		# 复制一份
vim sdi.vmdk			# 修改其中一个文件中的 ddb.uuid.image= 行,将 uuid 改变一个字母
 ## 在 Vbox 里 sdh.vmdk 在创建时自动加到存储管理器里了,手工加入复制出的 sdi.vmdk.
 ## 将 sdh.vmdk sdi.vmdk 磁盘加到两个系统上启动运行。  >>> 运行中的系统不能同时使用磁盘分区 <<<
 ##   (即同一时间Linux只能由一个系统 mount 。  或win XP里系统属性|管理|磁盘管理里,
 ##     只能由一个系统分配驱动器号。)

## ==================
## VBox 使用物理磁盘
sudo umount /dev/sda8
sudo chmod 666 /dev/sda8
cd ~/.VirtualBox/
VBoxManage internalcommands createrawvmdk -filename sda8.vmdk -rawdisk /dev/sda -partitions 8 -relative -register
## ============================================================================

heroreno
帖子: 38
注册时间: 2006-10-26 17:09
送出感谢: 0
接收感谢: 0
联系:

#4

帖子 heroreno » 2007-11-06 16:44

像上面这样做了,但是问题依旧。
aBiNg
帖子: 1331
注册时间: 2006-07-09 12:22
来自: 南京
送出感谢: 0
接收感谢: 2 次

#5

帖子 aBiNg » 2007-12-16 22:23

host里运行:

代码: 全选

sudo dpkg-reconfigure network-manager
然后在vbox的xp设置里,network连接方式改为NAT。

-3100的错误,是bridge没有建立正确导致的。
头像
gdzhljw
帖子: 314
注册时间: 2007-05-19 23:18
来自: 广东珠海
送出感谢: 0
接收感谢: 0
联系:

#6

帖子 gdzhljw » 2008-08-05 11:23

做个记号试试
凡事都可行.但不都有益处。凡事都可行.但不都造就人。(哥林多前10:23)

my blog : http://gdzhljw.blog.163.com/
http://gdzhljw.blog.ubuntu.org.cn/
回复

回到 “虚拟机和虚拟化”