将3060独显笔记本升级为windows +Ubuntu AI工作站
背景:我搞AI的,手头有一个笔记本,显卡Nvidia3060 6G显存,磁盘和内存较低。固态硬盘只有128G,我安装了windows+ubuntu双系统,windows 80G,ubuntu 40G,用下来感觉很好,我有空的时候也在ubuntu下面部署些AI的程序,跑的很欢,用的是越来越顺手,很是欢喜。
接着唯一问题来了:ubuntu系统磁盘空间较小,docker拉了几个镜像后(你知道,yolo AI docker一个镜像基本都是10G以上),磁盘空间很窘迫了。
解决方案是:来把一个只有8G内存+128G固态的双系统升级为高级AI工作站,目标是能够在笔记本上进行主流AI应用,包括模型训练等。
硬件升级
打开笔记本后盖,看到有两个M2固态硬盘插槽(已经用了一个接128G固态硬盘),一个笔记本2.5英寸sata机械硬盘插槽(空的),内存条有两个插槽(已经用了1个插槽8G)
弄来一个1T的M2固态硬盘,价格约八百元,再买一个8G笔记本内存,百元级搞定。
拆开后盖装上,现在的笔记本配置是16G 内存+1128G固态硬盘(128G+1000G)+3060独显+CPU
下次目标:再配一个2T/4T的笔记本sata机械盘
磁盘识别
windows开机,非常顺利,内存正常。
用windows自带的“磁盘管理工具:完成 1T固态硬盘格式化NTFS格式(这个格式windows和linux双系统都可以识别,还能在两个系统之间切换时共享数据)
接着启动ubuntu,fdisk 中不显示1T固态硬盘,搜了网上各种资料,排查后定位为bios设置问题。 解决方案
进入bios将磁盘模式设置为AHCI模式,重新启动,先在windows正常,再进入ubuntu,1T盘能够识别啦。
特别注意:
设置为AHCI模式ubuntu正常工作,windows启动会蓝屏进不了。
设置为Intel RST Premium With… ubuntu 启动检测不到固态硬盘(如果做了后文的自动挂载启动会报异常)
磁盘分区
对1T固态硬盘分了两个分区700G+300G,300Gwindow主用,700G ubuntu主用,双系统之间也可以正常看到对方的数据。
window磁盘管理和ubuntu 自带的disks 都可以。
磁盘ubuntu 开机自动挂载
查询挂载硬盘UUID
sudo blkid /dev/sda2
返回信息为
/dev/sda2: LABEL="Data" UUID="88069947069936E2" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="7170f9a7-9c9f-43d8-9916-da47aa9101f7"
则能够从返回信息中获取UUID=”88069947069936E2”.
修改文件
打开文件/etc/fstab文件。
sudo gedit /etc/fstab
在文档末尾添加裹在磁盘的信息。
格式为:
[UUID=************] [挂载磁盘分区] [挂载磁盘格式] 0 2UUID=88069947069936E2 /data ntfs defaults 0 2#第一个数字:0表示开机不检查磁盘,1表示开机检查磁盘;
#第二个数字:0表示交换分区,1代表启动分区(Linux),2表示普通分区
## 我挂载的分区是在WIn系统下创建的分区,磁盘格式为ntfs
docker迁移步骤
docker已经耗尽了40G ubuntu系统盘剩余空间,现在docker可以移到数据盘上了。
于是问题变成将 /var/lib/docker 移动到 /data/docker ,并且是docker可用。
1.停止docker
service docker stop 2.移动docker数据文件夹## 使用 mv命令
cd /data ## 我的新数据盘挂载位置
mkdir docker
cd /var/lib/
mv docker /data/3. 配置docker存储位置此处也有两种方法:
方法一:编辑/etc/default/docker,增加DOCKER_OPTS="-g /opt/docker"
方法二:建软连接
ln -s /data/docker/ /var/lib/docker
## 我使用的是方法二,方法一没有实践过。
4. 启动docker服务和容器
serice docker start
5 . 验证docker中可以使用nvidia-smidocker run -it --rm --gpus all ubuntu nvidia-smi发现不行,报异常docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].解决方法:sudo apt install nvidia-container-runtimereboot再次运行,验证可用docker run -it --rm --gpus all ubuntu nvidia-smi
6.最后查看下原有的docker数据是否还在,再df -h 查看磁盘数据状况。700G数据盘正常挂载,系统盘也有空间了,满意。
结论:增加硬件,配置docker 和nvidia-container-runtime 。双系统中ubuntu运行AI容器就毫无障碍,一台普通的3060独显笔记本现在就是一台高级AI工作站,号称干AI的,除了公司的平台,还拥有自己的高级AI工作站,真香。