出于种种原因,最近感觉还是在自己机器上装个linux写程序靠谱些,毕竟总是VPN到公司内网速度也太慢了。
本文最终实现了:
1.在windows下用virtualbox安装了ubuntu7.04命令行版
2.ubuntu能够与主机(即windows)共享网络
3.在windows下可以直接ssh到ubuntu上
遗留问题(详见文末):
1.ubuntu与主机共享文件夹失败
2.rz/sz命令安装失败
先截图如下(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
ifconfig
三.设置ssh登录(VirtualBox默认的终端页面也太丑了)
1.由于默认ubuntu是没有安装ssh server的,所以需要先以root执行:
apt-get install openssh-server
执行完后,看一下端口监听状况:
netstat -lpnt
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个终端:
参考链接:
http://www.felix021.com/blog/read.php?1889
http://mydebian.blogdns.org/?p=148
3.重新启动ubuntu
4.在putty中做如下设置:
5.登录即可进入文章开头的图片。
总体来说效果还是不错的,就是折腾了一下午有点浪费啊,特此记录~~
对于还没解决的两个问题,说明如下:
1.共享文件夹设置失败
这里第一次安装的时候,是提示no device错误,现在根本就加载不了光盘了,等以后再研究吧。
2.rz/sz命令安装失败
执行 apt-get install 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,完全解决!截图如下:
test on #
ubuntu 里面用的什么字体?
Reply
GlacJAY on #
那个错误,是要你改软件包的源啊。
Reply
Dante on #
以前都是用suse的,第一次用ubuntu。。。
怎么改呢?我试过 apt-get update,貌似没用。
Reply
GlacJAY on #
嗯?我这边试装了一下 lrzsz 这个包,没提示错误啊?我用新立得软件包管理器装的,就是 apt-get 的 GUI 版本。
Reply
Dante on #
奇怪了。。。我这里安装一直失败。。。不过我这里安装的是命令行的版本,不知道有没有影响。
Reply
zwws on #
虚拟机使用NAT共享宿主机的网络的话, 宿主机也可以直接通过虚拟机的IP地址直接SSH的, 为什么还要做端口映射?
Reply
Dante on #
NAT方式是主机是访问不到虚拟机IP的,你可以试一下,要换网络共享方式~
Reply
依云 on #
Host only 或者 bridged 才可以的。所以我现在的虚拟机统一两个网卡:host only + nat
Reply
Terrence on #
用端口映射也挺方便的,帮助文档里面都有例子~
Reply
Dante on #
是呢,就一句就行,哈~
Reply
Terrence on #
共享文件夹是要安装Guest Additions的,安装不上的话就用源文件编译一个。
毕竟共享文件夹比通过网络方式传文件速度要快很多。
Reply
Dante on #
我当时共享文件夹用不了,根本就上传不了源代码到虚拟机上去。。。。
先有鸡呢,还有蛋呢。。。。哈哈
Reply
Terrence on #
不对呀,Guest Additions里面包含有源代码的呀,cdrom挂载上去就行了呀。
Reply
依云 on #
我现在主机(linux)和VBox里的linux都是通过ssh传文件的,直接scp,或者用sshfs挂载。winscp似乎不错,我有机会试下。
Reply
yaroot on #
既然开了openssh server, 直接sftp://不就好了, git也可以从ssh上走, 何必开ssh写代码呢...
Reply
Dante on #
呵呵,其实我觉得在ssh shell里面写代码更舒服~~在公司习惯了~~
Reply
yaroot on #
shell的话....我是装了个cygwin用zsh...
Reply
依云 on #
终于又看到了个 zsh 用户~~
Reply
六翼拉菲尔 on #
我穿越了?你在2010年9月份还用7.04? 8.04LTS都过期了,你可以用10.04,也是一个长期支持版本,如果只是用控制台的话也可以考虑server版本。
安装软件的问题,首先要搞定软件源,这个一搜一大把,不行就去ubuntu的论坛看看,forum.ubuntu.org.cn
Reply
Dante on #
呃,7.04是我在大学的时候下载的。。。。
装虚拟机那天家里电脑没空间下载新版本了。。suse10的盘不在,家里只有一张ubuntu7的盘。。。杯具。。
Reply
zhanglistar on #
哈哈 lz可以下iso的啊。
我前几天把ubuntu 8.04升级到了10.10
学校的网速真给力啊
Reply
Dante on #
哈,我后来也换成10啦,rz/sz就可以安装啦~
Reply
zhanglistar on #
关于主机和虚拟机共享文件的问题,我想跟lz分享下我的做法。
虚拟机采用bridged adapter的方式 然后使用主机网卡。
这样如果主机可以上网的话 虚拟机基本是可以上网的了。
然后主机共享文件夹,虚拟机mount就ok了。
Reply
Dante on #
记得之前用vmware的时候,用这种方式总是没法共享上网,所以这次就没敢乱动,抽时间试一下~不过现在用rz/sz也算够用了~
Reply
阅 on #
写了这么多啊,lz辛苦了...,至今还没有写博客的习惯,总觉得没时间...
Reply
Dante on #
哈,其实感觉写博更多是在整理沉淀,而且可以和志同道合的人一起讨论问题。
很多之前困惑的问题都在这个过程中解决掉了。
Reply
Jack Chiu on #
如果宿主环境还是基于Windows的话,最好还是用Cygwin,你可以用Linux的方式工作在Windows下。用虚拟机工作有很多问题都需要解决,文件的共享、网络等等。
我就是一个曾经梦想工作机上装虚拟机即可变成一个Linux,但后来我发现宿主变成Linux,装个vbox玩Windows更靠谱点。
Reply
Dante on #
我电脑系统性能不行。。。,所以迫不得已才用虚拟机,而且纯字符界面。。。
Reply