出于种种原因,最近感觉还是在自己机器上装个linux写程序靠谱些,毕竟总是VPN到公司内网速度也太慢了。
本文最终实现了:

1.在windows下用virtualbox安装了ubuntu7.04命令行版
2.ubuntu能够与主机(即windows)共享网络
3.在windows下可以直接ssh到ubuntu上

遗留问题(详见文末):

1.ubuntu与主机共享文件夹失败
2.rz/sz命令安装失败

先截图如下(putty中的截图):

putty

OK,我们一步步来说:
一.VirtualBox安装
    1.到http://www.virtualbox.org/wiki/Downloads下载windows版本
    2.一路点击next,出现不兼容提示框,直接继续即可。
二.Ubuntu安装
    1.选择安装命令行的版本,安装即可
    2.设置root密码。ubuntu的root默认居然是不启用的,需要在启动的时候,按ESC进入recovery模式,会自动以root权限登录。然后执行passwd root即可修改密码。
在前两步做完之后,我们的linux就已经能够正常启动了,并ubuntu默认与主机共享了网络,测试如下:

ping vimer.cn

 ping

ifconfig

ifconfig

三.设置ssh登录(VirtualBox默认的终端页面也太丑了)
    1.由于默认ubuntu是没有安装ssh server的,所以需要先以root执行:

apt-get install openssh-server

    执行完后,看一下端口监听状况:

    netstat -lpnt

netstat

    2.关闭ubuntu,在windows下,将 C:\Program Files\Oracle\VirtualBox 加入到path中,并执行:
    VBoxManage modifyvm "u82" –natpf1 "guestssh,tcp,,2222,,22"
    vboxmanage 修改vm配置 虚拟机名(Ubuntu) nat_port_forwarding(第1个网卡) "端口转发名(guestssh),tcp,宿主机IP(略),宿主机端口2222,虚拟机IP(略),虚拟机端口22"
    这里的u82是指我的虚拟机的名字,整条命令的意思是在windows是发往localhost:2222的命令,会转发给ubuntu的22端口(22是sshserver的端口)

    在cmd中netstat –a 查看,其中的两条长连接是我的2个终端:

2222
    参考链接:
    http://www.felix021.com/blog/read.php?1889
    http://mydebian.blogdns.org/?p=148
    3.重新启动ubuntu
    4.在putty中做如下设置:

putty2
    5.登录即可进入文章开头的图片。

总体来说效果还是不错的,就是折腾了一下午有点浪费啊,特此记录~~
对于还没解决的两个问题,说明如下:
1.共享文件夹设置失败
这里第一次安装的时候,是提示no device错误,现在根本就加载不了光盘了,等以后再研究吧。
2.rz/sz命令安装失败
执行 apt-get install lrzsz 报错:

lrzsz

附设置共享文件夹的几篇文章:
http://www.javaeye.com/topic/325946
http://www.linuxidc.com/Linux/2009-01/18147.htm
http://www.linuxidc.com/Linux/2008-06/13582.htm

———————-我是无奈的分割线—————
后记:
又折腾了半天,rz/sz用apt-get update,apt-get upgrade还是安装不上。
cdrom为空的问题倒是找到了,需要先执行一下:mount /dev/cdrom
但是最终还是安装不上,所以最终也就放弃了。
考虑了一个折中的方法,就是用SVN来进行同步,具体点就是google code。
不过还是出了点问题,就是在svn ci的时候,svn 默认是用我的ubuntu的登录用户名去验证的,结果总是返回错误。后来发现用 svn ci —-username=realname 即可。

—————-欢快的分割线—————–
后记2:
感觉用SVN来同步还是不靠谱,之前一直受限于VirtualBox共享文件夹的概念,总是在想怎么让ubuntu访问到windows的文件夹。但是忽略了一个问题,我们完全可以让windows去访问linux的文件夹!
由于网络是互通的,所以完全可行,其中一种方法就是samba。但是samba还是要再启动一个服务,太麻烦。再想一下,我们已经实现了ssh的功能,那么其实只需要一个支持可视化登录的终端的就可以啦:
winscp
OK,完全解决!截图如下:

1

 Snap3

暂无相关产品

28则回应给“在windows下用virtualbox虚拟ubuntu,并通过ssh登录”

  1. test说道:

    ubuntu 里面用的什么字体?

    [回复]

  2. GlacJAY说道:

    那个错误,是要你改软件包的源啊。

    [回复]

    Dante 回复:

    以前都是用suse的,第一次用ubuntu。。。
    怎么改呢?我试过 apt-get update,貌似没用。

    [回复]

    GlacJAY 回复:

    嗯?我这边试装了一下 lrzsz 这个包,没提示错误啊?我用新立得软件包管理器装的,就是 apt-get 的 GUI 版本。

    [回复]

    Dante 回复:

    奇怪了。。。我这里安装一直失败。。。不过我这里安装的是命令行的版本,不知道有没有影响。

    [回复]

  3. zwws说道:

    虚拟机使用NAT共享宿主机的网络的话, 宿主机也可以直接通过虚拟机的IP地址直接SSH的, 为什么还要做端口映射?

    [回复]

    Dante 回复:

    NAT方式是主机是访问不到虚拟机IP的,你可以试一下,要换网络共享方式~

    [回复]

    依云 回复:

    Host only 或者 bridged 才可以的。所以我现在的虚拟机统一两个网卡:host only + nat

    [回复]

    Terrence 回复:

    用端口映射也挺方便的,帮助文档里面都有例子~

    [回复]

    Dante 回复:

    是呢,就一句就行,哈~

    [回复]

  4. Terrence说道:

    共享文件夹是要安装Guest Additions的,安装不上的话就用源文件编译一个。
    毕竟共享文件夹比通过网络方式传文件速度要快很多。

    [回复]

    Dante 回复:

    我当时共享文件夹用不了,根本就上传不了源代码到虚拟机上去。。。。
    先有鸡呢,还有蛋呢。。。。哈哈

    [回复]

    Terrence 回复:

    不对呀,Guest Additions里面包含有源代码的呀,cdrom挂载上去就行了呀。

    [回复]

  5. 依云说道:

    我现在主机(linux)和VBox里的linux都是通过ssh传文件的,直接scp,或者用sshfs挂载。winscp似乎不错,我有机会试下。

    [回复]

  6. yaroot说道:

    既然开了openssh server, 直接sftp://不就好了, git也可以从ssh上走, 何必开ssh写代码呢…

    [回复]

    Dante 回复:

    呵呵,其实我觉得在ssh shell里面写代码更舒服~~在公司习惯了~~

    [回复]

    yaroot 回复:

    shell的话….我是装了个cygwin用zsh…

    [回复]

    依云 回复:

    终于又看到了个 zsh 用户~~

    [回复]

  7. 六翼拉菲尔说道:

    我穿越了?你在2010年9月份还用7.04? 8.04LTS都过期了,你可以用10.04,也是一个长期支持版本,如果只是用控制台的话也可以考虑server版本。

    安装软件的问题,首先要搞定软件源,这个一搜一大把,不行就去ubuntu的论坛看看,forum.ubuntu.org.cn

    [回复]

    Dante 回复:

    呃,7.04是我在大学的时候下载的。。。。
    装虚拟机那天家里电脑没空间下载新版本了。。suse10的盘不在,家里只有一张ubuntu7的盘。。。杯具。。

    [回复]

    zhanglistar 回复:

    哈哈 lz可以下iso的啊。
    我前几天把ubuntu 8.04升级到了10.10

    学校的网速真给力啊

    [回复]

    Dante 回复:

    哈,我后来也换成10啦,rz/sz就可以安装啦~

    [回复]

  8. zhanglistar说道:

    关于主机和虚拟机共享文件的问题,我想跟lz分享下我的做法。
    虚拟机采用bridged adapter的方式 然后使用主机网卡。
    这样如果主机可以上网的话 虚拟机基本是可以上网的了。

    然后主机共享文件夹,虚拟机mount就ok了。

    [回复]

    Dante 回复:

    记得之前用vmware的时候,用这种方式总是没法共享上网,所以这次就没敢乱动,抽时间试一下~不过现在用rz/sz也算够用了~

    [回复]

  9. 说道:

    写了这么多啊,lz辛苦了…,至今还没有写博客的习惯,总觉得没时间…

    [回复]

    Dante 回复:

    哈,其实感觉写博更多是在整理沉淀,而且可以和志同道合的人一起讨论问题。
    很多之前困惑的问题都在这个过程中解决掉了。

    [回复]

  10. Jack Chiu说道:

    如果宿主环境还是基于Windows的话,最好还是用Cygwin,你可以用Linux的方式工作在Windows下。用虚拟机工作有很多问题都需要解决,文件的共享、网络等等。

    我就是一个曾经梦想工作机上装虚拟机即可变成一个Linux,但后来我发现宿主变成Linux,装个vbox玩Windows更靠谱点。

    [回复]

    Dante 回复:

    我电脑系统性能不行。。。,所以迫不得已才用虚拟机,而且纯字符界面。。。

    [回复]

发表评论