Tag Archives: Mac OS

Mac下Virtualbox使用小结

作者: dplord, 访问量 2385





因为工作原因,使用Mac机器。但是以前一直用linux,熟悉上面的各种开发环境。Mac由于是Unix系列,挺多开发环境挺好的。但是还是蛮多库、项目、编译没有那么方便。自己在virtualbox下改了一个opensuse text mode虚拟机,并设置了share folders, 可以在mac下的IDE下编辑建立在mac跟virtualbox的linux虚拟机的share dir的项目,然后在terminal下进入linux虚拟机,命令行编译跟处理。这样可以一个机器,无缝使用多个环境。下面讲解下virtualbox的几个要设置的地方。

1、安装virtualbox以及准备几个需要用的文件

要下当前最新的同一版本、最新的软件。

我下载的为

  • VirtualBox-5.0.14-105127-OSX.dmg
  • Oracle_VM_VirtualBox_Extension_Pack-5.0.14-105127.vbox-extpack
  • VBoxGuestAdditions_5.0.14.iso

2、设置正确的网络链接方式

默认的网络连接方式是『网络地址转换(NAT)』, 我需要的是内部linux guest主机,需要既能连接外网,同时也可以在外部mac host机器上,ssh通过内网连接linux guest。默认网络如图

QQ20160310-0@2x内部网络如图

QQ20160310-1@2xip是nat出来的网址10.0.2.15, 跟我的mac host不在一个网段,无法ssh连接。

需要创建一个处于同一网段的网络,因此做了如下操作

① 在virtualbox偏好设置里面添加一个host-only网卡,名字为vboxnet0

② 给该linux host的第二网卡上,绑定刚创建的vboxnet0 的 host-only 网卡

③ 在linux-guest里面,ifconfig查看还是一个网卡,手动编辑

touch /etc/sysconfig/network/ifcfg-eth1

写入以下内容

BOOTPROTO='dhcp'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR=''
MTU=''
NAME=''
NETMASK=''
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'
DHCLIENT_SET_DEFAULT_ROUTE='yes'

然后reboot,查看后就可以看到有eth1的网卡了, ip是192.168.56.101,可以在mac host用ssh连接。因为这个网络是dhcp分配的ip的,为了方便把vboxnet0网络,dhcp ip地址段设置为一个固定ip, 如图:

QQ20160310-4@2x以后在mac host, 每次ssh dengpan@192.168.56.101, 即可连接该机器。可以在bashrc做一个alias。

3、设置共享文件夹

① 挂载VBoxGuestAdditions_5.0.14.iso 到linux guest

② mount /dev/cdrom /mnt

③ cd /mnt  && ./VBoxLinuxAdditions.run –nox11 (因为我的是opensuse text mode,没有图形界面的)

④ 在virtualbox的设置界面设置share dir并设置自动挂载, 然后reboot, 就可以再/media 看到你的文件夹了。

4、virtualbox的备份、恢复

virtualbox比较好用的一点是,可以备份整个硬盘,然后把几十G的「虚拟硬盘.vdi 」拷贝到移动硬盘留着,在任何系统安装完了virtualbox挂载该「虚拟硬盘.vdi 」即可开始使用了。后面可以开virtualbox-linux, 开始无缝使用自己要用的工具了。在MAC下的IDE编辑项目,ssh连接到linux shell下编译、处理,网络都是共享的。使用比较便捷,而且不卡,符合我的预期。

 

macbook pro安装archlinux + mac os双系统

作者: dplord, 访问量 2727





入职时候公司发了一个macbook pro 15寸的机器,其实要不是公司发的我是很不喜欢apple系列的。就把我以前上学时候用的lenovo Y470上的archlinux想原封不动迁移过来。很多人说mac跟linux差距不大, 其实差距大太多了。mac在对command line友好上也就仅仅比windows好一点,加上homebrew还是不能符合我的要求。而mac os惊艳的图形界面、一系列apple服务、软件,我是用不上的。

开始我的做法打算
在我的os x yosemite 10.10里面通过mac自带的磁盘工具, 分一个区,我的硬盘是256G SSD, 本想给mac分区压缩出150G 出来给我迁移archlinux。本来说直接要删除mac的,但我一个对我很重要的一个朋友,她用mac机器,偶尔会问我一些关于电脑的问题,前不久还问我mac下代理上网的问题, 要是手头没机器,我怕是不好回答或者截图一一详细说明。

然后我想出的做法是

  1. 先在OS X里面分150G分区
  2. 刻录一个ubuntu启动U盘
  3. 用ubuntu启动盘进入我原来archlinux的电脑,用tar打包我原来整个archlinux分区到我的2T移动硬盘里面为一个arch-whole.tar 文件。
  4. 用ubuntu启动盘插入mac, 开机按option进入选择项,手动启动ubuntu, 安装ubuntu到mac的150G分区, grub安装在当前分区/dev/sda3
  5. 再次用ubuntu启动盘插入mac进入”try ubuntu”模式在shell下,删除已经安装的ubuntu所有文件,解压archlinux的arch-whole.tar文件到/dev/sda3
  6. grub页面,手动用kernel指定vmlinuz引导进archlinux, 在archlinux里面修复grub

其实这样是可行的,但是我的OS X,分磁盘的时候, 由于我的笔记本是公司2015-07-10发的新的15寸mbp分区的时候, 我是按照标准mac磁盘工具分区的,结果分区失败,无法急救,导致系统崩溃了。

后面就需要我自己下载一个mac镜像了,由于我的本子是2015-07-10的,搭载的系统比较新,所以我只能在最新的mac下下载最新的镜像刻录成安装U盘,才能装进去,不然的话,如果装旧于我机器的系统,会显示一个大大的圆圈+禁止斜杠,像这样:

1-1

其实也可以网络安装的,但是鉴于国内的网络,动辄几十小时或者100+小时的,中途只要出现问题就要重走一边,而且动不动报 apple.com/support -4403f  或者 apple.com/support -2203f 错误的,我是不会用这种方式的。

下载镜像的时候,是先离线到百度云,然后在我的服务器上百度云下载,axel -n 10 “百度云mac os下载地址”  -o 2.dmg 下载,大概2M/s的速度,下载了50min,服务器sha1sum得到sha1校验码为47c7d9c1c510b2cb74bae4c560c2553bcb12897f, 然后我在服务器用

7za  a 2.dmg.7z -v1800m -mx0 2.dmg

分卷压缩为3个文件, 其中-mx0指定只存储不压缩,等于文件拷贝把。 然后在我的pc 、我的macbook、我的nexus 6手机分别下载2.dmg.7z.001、2.dmg.7z.002、2.dmg.7z.003, 这样下载比较快,下载完了之后文件拷贝到一起,解压即可得到2.dmg, 本地检验校验码为

47c7d9c1c510b2cb74bae4c560c2553bcb12897f , 文件未损坏。开始刻盘装了。
先准备一个 已经格式化为mac os扩展日志式、GUID分区表的8G的U盘。

 

然后Mac下先挂载2.dmg

cd /Volumes/{2.dmg所在的盘符}

sudo /Volumes/{2.dmg所在的盘符}/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia – -volume /Volumes/{你的8G U盘的盘符} – -applicationpath /Volumes/{2.dmg所在的盘符}/Install\ OS\ X\ Yosemite.app – -nointeraction

大概20min,不报错的话,就刻录好了。用刻录好的U盘mac安装盘,开机option键,安装mac,安装过程跟window安装类似,很简单。

安装好了进mac, 用自带的磁盘工具,我是划分150G分区,格式化为exFat给我装linux的。我这个分区是/dev/sda4。

用我的2T wd的移动硬盘。打包我的整个pc上的用了一年的archlinux, 打包为一个tar包,打包过程在ubuntu live cd 进去打包,/dev /tmp /proc 等等不要打包。打包为arch-whole.tar

进ubuntu live cd, 安装ubuntu 15.04 到 /dev/sda4,grub 安装在/dev/sda4 上面。

然后装好了再进ubuntu live cd模式,挂载/dev/sda4,  删除/dev/sda4里面的全部东西。把我的arch-whole.tar全部解压到该盘。最后进入系统。在grub菜单里面,按e编辑grub,把set root=(hd1,msdos6) 修改为set root=(hd1,gpt4) , 因为mac是gpt 格式的。其他的也做对应的修改。最后大概改成如下的样子。

2-1

最后按F10引导进archlinux, 在arch下,grub-mkconfig -o /boot/grub/grub.cfg更新grub就好了。后面进入系统,修改下/etc/fastab  等等文件就好了。整个archlinux 原封不动的被我挪过来了。背光键盘、亮度调节、触摸板、网卡等等都支持良好。放几张图炸一炸跟我一样的inux死忠。

16G内存一般只用4G以下, CPU使用一般5%不到,编译速度非常快。

4722bd15bd3f62c7e2862c67e3ad286a

分辨率在1920*1200 其实可以调到2880*1800的,不过我不喜欢。

3-1

大屏看代码还是很爽很爽,加上mac的电池,带出去玩儿一天也不怕了。

23d35f87ef37a654542d2edc6be63758

 

对了要进mac系统的话,开机按option选择mac磁盘即可了。