总结一句:生命在于折腾 

1、首先为什么要用虚拟机

因为公司服务器上的python版本太高,linux版本也不合适,自己没有权限退版本,环境要求特定版本python  + ubuntu 16.04 

2、为什么要扩容?

还不是创建虚拟机时想当然觉得用不到太多空间,分配空间小了,结果安装的库越多,空间爆了

3、为什么要将anaconda环境迁移?

和问题2是连带的,安装anaconda后 ,需安装大量的库,而anaconda安装时默认装在 根目录了,最后导致没空间了

即使扩容,也只是增加分区,并未解决根目录空间不足的问题,所以还需将anaconda环境迁移到新建分区中。

 

一、首先安装虚拟机及系统镜像 

viualbox虚拟机开源的,比较方便(没有版权风险),下载后新建一个虚拟机即可

在此之前,先下载一个自己需要的镜像版本(https://mirrors.ustc.edu.cn/ubuntu-releases/

虚拟机Ubuntu bios 虚拟机Ubuntu安装_python

 

 

选择第一个磁盘映像

 

虚拟机Ubuntu bios 虚拟机Ubuntu安装_虚拟机Ubuntu bios_02

 

 

选择动态分配

 

虚拟机Ubuntu bios 虚拟机Ubuntu安装_虚拟环境_03

 

安装时选择自己下载好的镜像即可进入安装过程。具体安装过程略过,可参考之前的博文 安装ROS (双系统方案)

 

 

其他虚拟机配置项

选择双向拖放

虚拟机Ubuntu bios 虚拟机Ubuntu安装_虚拟环境_04

 

安装增加模块

点击上图中的  安装增强功能

需重启生效 ,这样就能实现主机和虚拟机之间的文件互相拖拽,方便文件传输

 

二、安装 tensorflow , 之前写过一篇关于windows上安装环境的,可参考Windows安装tensorflow经验总结  ,那篇总结了如何在windows下安装适合自己电脑的GPU版本的tensorflow ,所有有cuda的相关安装介绍,本篇是介绍在linux环境下安装cpu 版本的tensorflow,可依据自己实际情况参考看看。

 

两篇都是通过安装anaconda来实现环境的安装,所以首先下载anaconda3 ,可到清华镜像网站下载Index of /anaconda/archive/    ,文件类型别下载错了

虚拟机Ubuntu bios 虚拟机Ubuntu安装_虚拟环境_05

linux下安装比较方便

(注意这里在安装时会有弹出选择安装目录的选项,本人当时没注意,导致安装都在默认根目录下,导致后面的空间不足问题,具体可以安装时敲回车别太快,看清楚选项就行,当然空间足够的就当我没说)

运行:

bash Anaconda3-5.3.1-Linux-x86_64.sh   

 等待安装ok 

 

 

添加环境变量 

vi  ~/.bashrc

在最后添加

export PATH=~/anaconda3/bin:$PATH

 

然后

source ~/.bashrc  生效配置

测试安装是否成功 anaconda -V

虚拟机Ubuntu bios 虚拟机Ubuntu安装_虚拟环境_06

conda list  可以查看已经安装的模块list

虚拟机Ubuntu bios 虚拟机Ubuntu安装_虚拟机Ubuntu bios_07

 

创建名字为

conda create -n tensorflow python=3.6  

 

激活虚拟环境,出现前面的名字就是激活了(你的名字可以自己随便取)

source activate tensorflow / conda activate tensorflow

 

虚拟机Ubuntu bios 虚拟机Ubuntu安装_虚拟环境_08

 

例如再创建一个python 3.7的

conda create -n py37 python=3.7

虚拟机Ubuntu bios 虚拟机Ubuntu安装_虚拟机Ubuntu bios_09

 

安装tensorflow 

进入到虚拟环境中:conda activate py37

pip install tensorflow==版本号

 

 测试tensorflow ,首先再终端输入python ,进入python ,按如下测试打印hello world! , 成功则说明安装OK

虚拟机Ubuntu bios 虚拟机Ubuntu安装_虚拟机Ubuntu bios_10

 

 

三、 linux 虚拟机扩容,配置linux新分区挂载

当用到一半忽然提示空间不够了,虚拟机只能进行扩容了

首先到虚拟机设置中找到 管理-> 虚拟介质管理

虚拟机Ubuntu bios 虚拟机Ubuntu安装_tensorflow_11

 

 

然后拖到滑块,设置自己总的虚拟介质大小(需关闭虚拟机运行,否则会如同图中一样时灰色的无法拖到)

虚拟机Ubuntu bios 虚拟机Ubuntu安装_python_12

 

 

设置后重启,就这样就OK了????

当然不会就这样可以,开机后,查看磁盘列表

分区sudo fdisk -l /dev/sda

已经显示有33G多出来的空间了,但是,系统还是会弹出来空间不够的提示,只是因为空间未挂载,无法被系统识别到,分区列表中自然也无法找到改部分多出来的空间

虚拟机Ubuntu bios 虚拟机Ubuntu安装_tensorflow_13

 

运行   sudo fdisk /dev/sda 可以查看命令列表提示

按下n,选择新建一个分区

虚拟机Ubuntu bios 虚拟机Ubuntu安装_python_14

 

然后按下w  写入分区  (红色提示可不管)

虚拟机Ubuntu bios 虚拟机Ubuntu安装_虚拟环境_15

 

重启

格式化分区

sudo mkfs -t ext4 /dev/sda4

 

挂载分区

创建目录 /home/renwnag/sda4

sudo mkdir sda4

 

挂载分区到/home/renwang/sda4

sudo mount /dev/sda4 /home/renwang/sda4

 

设置开机自动挂载

修改/etc/fstab文件

sudo vi /etc/fstab

添加如下行:

/dev/sda4 /home/renwang/sda4/ ext4 defaults 0 1

 

然后再查看分区列表,接口看到分配的新分区sda4 ,空间大小36.7G

虚拟机Ubuntu bios 虚拟机Ubuntu安装_python_16

 

四、迁移anaconda3

分区建立好后好,还是会出现空间不够的系统提示,因为根目录下空间被占满了,新建分区,并没法缓解根目录空间不够的问题,当然可以把能挪动的文件尽量移到新分区,来释放部分的根目录空间,但是对于已经安装的软件,比如anaconda3这种,按照经验,这个软件所占空间10来个G是比较常见的,安装的库越多,所占空间越可怕

之前再windows上也干过迁移 anaconda环境的事情,这次在linux下再整了一遍,做个笔记

 

修改bashrc文件 ,改以下路径为自己的目标路径  (vi 不行就用gedit file_name)

vi

虚拟机Ubuntu bios 虚拟机Ubuntu安装_tensorflow_17

 

修改anaconda3/bin/conda 文件

vi anaconda3/bin/conda

如下,改路径为自己对应的

虚拟机Ubuntu bios 虚拟机Ubuntu安装_虚拟环境_18

 

运行conda 提示

conda command 没有

虚拟机Ubuntu bios 虚拟机Ubuntu安装_虚拟环境_19

 

打开一个新终端,重新测试,可以看到用法提示就ok了

 

虚拟机Ubuntu bios 虚拟机Ubuntu安装_虚拟环境_20

 

还有问题是pip找不到

 

虚拟机Ubuntu bios 虚拟机Ubuntu安装_虚拟环境_21

 

需要修改配置路径 pip 和pip3都改

vi /home/renwang/sda4/anaconda3/bin/pip

虚拟机Ubuntu bios 虚拟机Ubuntu安装_虚拟机Ubuntu bios_22

vi /home/renwang/sda4/anaconda3/bin/pip3

虚拟机Ubuntu bios 虚拟机Ubuntu安装_tensorflow_23

 

出现正常版本打印就ok了

虚拟机Ubuntu bios 虚拟机Ubuntu安装_tensorflow_24

 

 

此时进入到自己迁移前建立的某个虚拟环境中运行pip3,pip还是会有以上问题

需在各自的环境中再修改以上文件

虚拟机Ubuntu bios 虚拟机Ubuntu安装_tensorflow_25

 

如下:修改内容同上

vi sda4/anaconda3/envs/py35/bin/pip3

vi sda4/anaconda3/envs/py35/bin/pip3

  

最后看一下迁移后内存sda1空出来一半了(由使用99%->使用55%),sda4中内存被使用了36%

 

虚拟机Ubuntu bios 虚拟机Ubuntu安装_tensorflow_26

 

 

 至此,一顿折腾结束,终于没有提示空间不足了