引言
记录了一次完整的系统安装与环境配置过程,包括启动盘制作、安装引导、镜像源替换、中文输入法配置、驱动和CUDA安装、docker安装和完整配置过程、SSH配置、软件安装(App Store软件安装与其他软件安装,以VScode和Mathlab为例),包含过程中遇到的错误和修正方法,供参考,有错误的地方欢迎指正。
目录
Ubuntu启动盘制作
Windows系统分区格式化步骤
如果是电脑本身就安装了Windows系统,并且想要双系统,需要合理分区。
如果本身安装了Windows系统,之后只要Linux系统,建议先把C盘以外的所有硬盘格式化。C盘在后续Ubuntu安装过程的分区步骤中也要格式化掉。(之前没有格式化D盘,每次分区的时候格式化D盘都失败了,暂时不知道原因)
本身没有安装Windows系统直接跳过就可以。
在Windows系统中找到计算机管理-存储-磁盘管理,选择要用于Linux系统的分区,鼠标右键菜单选择格式化即可。
制作启动盘
制作启动盘可以参考以下文章,非常详细,没有什么雷点,在此不赘述。
参考:Ubuntu系统U盘启动盘的制作(UltralSO) - 知乎
Ubuntu下载:Ubuntu系统下载 | Ubuntu
软碟通下载:最新UltraISO官方免费下载 - UltraISO软碟通中文官方网站
Ubuntu安装与磁盘分区
安装过程
插入启动盘,开机时狂按Esc/Del/F2键(取决于主板型号),进入UEFI/BIOS菜单,将启动项的顺序改为启动盘为第一,即可进入安装程序。
语言选择,可选中文。这里为了后续文件夹管理方便选择的英文。后续可以更改,不用担心。
辅助功能选择,没有特殊需求直接Next。
选择键盘类型,之后可以改,后续会有添加拼音输入法的步骤:
是否联网安装,这里两个都可以选,不联网安装会快一些。
选择安装Ubuntu
可用更新直接跳过
选择自定义安装:
选择默认配置,这样安装会快一些,扩展程序可以以后自己安装
是否安装推荐软件,这一步可以什么都不选,后续再安装就可以。我这里选了第一项,如果没选第一项后续手动安装NVIDIA驱动即可。
选择手动安装
接下来就是硬盘分区
分区参考
基础分区方案(软件、包较少,不用docker/MySQL,不跑模型可以使用这个方案):
挂载点 | 大小 | 类型 | 备注 |
/ | 100GB | ext4 | 系统根目录 |
/home | 剩余 | ext4 | 用户数据 |
swap | 内存2倍(4G/8G) | swap | 休眠需要 |
/boot/efi | 512MB | EFI | UEFI必选 |
发行版提供的程序会下载到/usr中(如果不单独分区,会在根目录中),Docker 容器存储在 /var/lib/docker
,MySQL 数据默认在 /var/lib/mysql。同时,
Debian 系的软件包数据库和APT 的元数据缓存都会存在这里。因此,如果需要使用Docker和MySQL,建议这两个区单独分区,否则根目录(/)(相当于Windows的C盘)很容易爆满。
我的分区方案(1TB硬盘):
挂载点 | 大小 | 类型 | 备注 |
/ | 100GB | ext4 | 系统根目录 |
/home | 剩余 | ext4 | 用户数据,如果使用conda,环境会存在这里 |
swap | 8G | swap | 休眠需要 |
/boot/efi | 1.13GB | FAT32 | UEFI必选,自动生成 |
/var | 300GB | ext4 | Docker 容器、MySQL 数据 |
/usr | 250GB | ext4 | 发行版提供程序下载位置 |
左下角 - 号删除分区, + 号增加分区。
如果原来安装了Windows,后续不需要Windows系统,直接用 - 号删除原Windows的分区就可以了。注意,如果之后不需要Windows系统,并且Windows的分区(比如C盘)没有格式化的话,直接用 - 号把原来的C盘删掉就可以了。如果后续还需要用Windows系统,那么分给Windows的分区不要动。
/boot/efi会自动挂载在左下角"Device for boot loader installation"选中的磁盘中。
如果不小心删错了分区,右下角Revert一键还原。
(这里截图没有改,后来/var改成了300GB)
设置用户名和密码
选择时区,选择不正确的时区可能会导致后续包安装的认证错误等问题(忘记截图了QAQ)
确认信息:
点击Install开始安装。安装完成后按提示重启,拔出启动盘,按下Enter键,安装成功!
镜像源替换
国内有时候网络不好,这里添加清华镜像源。官方网站有引导:ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
Ubuntu 24.04已经把源的位置改到/etc/apt/sources.list.d/ubuntu.sources中(旧版本在/etc/apt/sources.list,使用vim修改
),使用nano修改镜像源文件:
sudo nano /etc/apt/sources.list.d/ubuntu.sources
(如果没有安装nano,用以下指令安装即可)
sudo apt install nano
打开文件后,将网站中生成对应版本号的镜像源粘贴到文件中。按ctrl+X退出,Y保存。更新镜像源:
sudo apt update
检查镜像源是否变化:
sudo apt-cache policy vim
看到有来自tsinghua的镜像,说明成功添加镜像源。
根用户设置
Ubuntu默认没有开启root登录,如果有需求,按以下方法配置root用户:
sudo passwd root
按照提示设置密码。
验证:
su root
可以使用密码登入即成功。
中文输入法配置
只有如果开头选择的是英文,进入后要添加中文输入法才能打中文。
先在右上角设置中找到"Region & Languague"
添加语言,找到中文,然后安装语言包(可能需要注销或重启才能生效,如果在这里把Chinese拖到English前面,整个系统都会变成中文的)。
选择"Keyborad"一项,点击添加键盘源。
找到中文,进入选择“Chinese(Intellengent Pinyin)”。右上角显示现在使用的输入法。shift键快速切换。
如果这一步找不到这一项,可以使用命令下载拼音包。
sudo apt update
sudo apt install fcitx fcitx-pinyin fcitx-config-gtk
NVIDIA GPU驱动安装
安装方法
查看显卡型号,确定可以检测到显卡:
lspci | grep -i nvidia # 查看显卡型号
安装推荐驱动(如果前面安装Ubuntu时勾选了自动安装驱动,这一步可以不做)
sudo ubuntu-drivers autoinstall # 自动安装推荐驱动
sudo reboot # 重启生效
测试安装:
nvidia-smi
成功输出示例:
无法成功输出/因版本更新导致驱动不匹配的解决方法
Tips:我安装完第二天Ubuntu自动更新,驱动不匹配。
解决方案
先检查是否是大版本有误。在Ubuntu桌面找到"Softare & Update"应用,选择Additional Drivers,查看选择的驱动是否匹配。
我这里大版本没有错误,是微版本不匹配。
卸载现有的驱动:
sudo apt purge nvidia* libnvidia*
sudo apt autoremove -y
sudo apt update
查看推荐驱动:
sudo ubuntu-drivers devices
输出:
我这里还是选择之前安装的550。
如果想要具体到微版本号的,查询方法(以550为例):
sudo apt search nvidia-driver-550
安装对应版本驱动:
sudo apt install nvidia-driver-550
#或者具体到微版本号:
sudo apt install nvidia-driver-550 = 550.144.03-0ubuntu1
我这里安装完之后有了新的错误:
解决方案参考:https://zhuanlan.zhihu.com/p/7299923217
重新启动,按Esc或F2或Del(取决于主板类型)进入UEFI/BIOS,在菜单中禁用Secure Boot。
我的选项中没有禁用这一项,只有Standard/Custom,方法是将Secure Boot Mode改为Custom,然后选择Key Management,再选择Clear Secure Boot Keys,删除所有密钥,保存并退出。
测试安装:
nvidia-smi
成功调取:
为了防止再出现这种情况,可以锁定版本,禁止自动更新:
sudo systemctl stop unattended-upgrades
sudo systemctl disable unattended-upgrades
CUDA安装
网站:CUDA Toolkit 12.8 Update 1 Downloads | NVIDIA Developer
在网站上选择对应版本:
按照网站所给的代码进行安装:
安装验证:
nvcc --version
输出:
Docker安装和配置
安装依赖工具
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
添加 Docker 官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
设置 Docker 仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装 Docker 引擎
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
验证安装
sudo docker run hello-world
连接报错问题
验证安装时出现了报错:
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded
Run 'docker run --help' for more information
这里应该是因为校园网,无法连接docker hub。
使用阿里云或华为云的镜像验证:
#阿里云,似乎还需要登陆,不推荐:
sudo docker run registry.cn-hangzhou.aliyuncs.com/library/hello-world
#华为云:
docker run swr.cn-east-3.myhuaweicloud.com/library/hello-world
输出:
说明Docker安装成功。(如果后续不需要拉取Docker仓库的其他镜像,这样就可以了,不用管。如果项目需要拉取仓库其他镜像,建议添加镜像源)
添加docker hub镜像源:
sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json
填写以下内容:
{
"registry-mirrors": [
"https://docker.m.daocloud.io"#或者可以改成、添加其他镜像源
]
}
重启docker服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
验证修改成功:
docker info
权限修改
此时发现只有root用户有使用docker的权限。使用命令:
sudo usermod -aG docker $USER
$USER替换为自己的用户名,将自己添加到docker用户组中,重启即可不加sudo也能使用docker。
镜像查看和容器运行状态查看
查看本地镜像:
docker images
这里可以看到之前拉取的hello-world镜像
查看容器运行状态:
docker ps -a
这里可以看到我们之前运行的hello world的容器
容器中使用Nvidia驱动配置
此时,我们还不能直接在容器中使用GPU驱动来加速模型训练。这一步我折腾了很久,尝试了很多方法更换容器仓库。网上攻略很乱,最后发现采用官方手册的方法就可以了。
官网:Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit
附上代码:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
安装完成之后,尝试拉取镜像:
docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
出现:
GPU可用。
使用Tensorflow镜像
拉取Tensorflow镜像:
docker pull tensorflow/tensorflow:latest-py3#或改成自己需要的版本
使用docker images查看镜像:
建议使用以下方法运行容器,方便管理:
docker run --gpus '"device=0,1"' -dit --privileged --pid=host --name <user>-<info> \
-v /home/<user>/docker_share:/home/<user>/docker_share \
-w /home/<user>/docker_share \
<docker image>:<tag>
“device=0,1” 是GPU序号,在“docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi”命令中可以看到对应的序号,我这里只有一个GPU,填写0就可以,如果有多块GPU,可以在这里进行设置;
<user>-<info>是容器名,为方便管理建议这样命名,尤其在多人一起使用一个工作站的情况下
-v是挂载目录路径
-w是工作目录路径
<docker image>:<tag>两个变量前者对应docker images中的第一列,后者对应第二列,按需求填写即可。
运行示例:
docker run --gpus device=0 -dit --privileged --pid=host --name lyq-dcase2023 \
-v /home/lyq/docker_share:/home/lyq/docker_share \
-w /home/lyq/docker_share \
tensorflow/tensorflow:2.5.1-gpu
运行后可以在镜像运行状态中看到:
进入容器:
docker exec -it <name> /bin/bash
使用ctrl + D退出容器。
Anaconda安装
按自己的需求选择anaconda或miniconda。
在终端导航到下载目录,并运行安装脚本。
注,Conda安装的默认路径通常为/home/<用户名>/anaconda3,环境会存储在/home/<用户名>/anaconda3/.conda/envs,环境会存储在/home/<用户名>/anaconda3/conda/pkgs中。如果安装到根目录中,普通用户将没有使用权限。因此,推荐不要修改默认安装路径,不要改到根目录中,这样也方便版本管理。
安装命令如下,$PATH改为脚本所在路径即可,后续依照指令安装。
bash $PATH/Anaconda3-2024.10-1-Linux-x86_64.sh
添加到系统变量:
echo 'export PATH="$HOME/anaconda3/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
一般只要出现(base)就说明以及安装好了,也可以验证安装:
conda list
SSH配置
SSH配置可以方便远程使用GPU,只要和Work Station连在一个局域网下,就可以使用笔记本电脑或者其他设备登入工作站进行训练等操作。如果觉得有需要可以进行配置。
工作站SSH服务器开启和配置
在终端安装ssh服务器、客户端:
sudo apt update
sudo apt install openssh-server openssh-client
开启ssh服务器和开机自启:
sudo systemctl start ssh
sudo systemctl enable ssh
配置服务器(可选):
sudo nano /etc/ssh/sshd_config
这里我只改了两个地方:
禁止根用户登录:
允许密码登录:
Ctrl+X,Y,回车保存后重启ssh服务:
sudo systemctl restart sshd
查看地址:
ifconfig
#或
ip a
远程连接SSH客户端连接方案
可以使用VScode/MobaXterm进行远程登录,临时传文件用终端也可以连接。这里演示MobaXterm的连接方法。注意,如果没有云服务器或公网IP,需要和服务器在同一个局域网下才可以连接成功。
在左上角找到Session
输入服务器地址:
会显示“login as”,按提示输入用户名和密码即可(和服务器上的用户名密码相同)
登录成功:
软件安装
从商店中安装软件(以安装VSCode为例)
在桌面上找到App Center,找到自己想要的软件进行安装即可。这里安装路径默认位于\usr\local文件夹。
网站下载软件(以安装Matlab为例)
安装过程
先下载Linux 版安装包,Matlab下载地址:https://www.mathworks.com/downloads/
解压下载的压缩包,在终端机中运行:
cd $PATH #Matlab解压路径
sudo ./install
然后按照提示激活许可证,安装需要的工具即可。
安装完成后在终端机中输入指令运行:
cd /usr/local/MATLAB/R20XXx/bin #进入安装路径
./matlab
添加图标
想要使用桌面图标,需要手动添加。
创建快捷方式文件:
sudo gedit /usr/share/applications/matlab.desktop
文件内容:
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/usr/local/MATLAB/R2024b/bin/matlab -desktop #记得改成对应的安装位置,如果是默认安装只需要版本号对应
Name=MATLAB
Icon=/usr/local/MATLAB/R2024b/toolbox/shared/dastudio/resources/MatlabIcon.png #这里的图标可以在usr/local/MATLAB/R2024b/文件夹中搜索MatlabIcon,在提供的几个图标里找到自己喜欢的那个。把路径复制上来就可以了
Categories=Math;Science
Comment=Scientific computing environment
StartupNotify=true
StartupWMClass=com-mathworks-util-PostVMInit
重启即可通过桌面图标进入Matlab
DEB格式软件安装
从网上下载安装包,在终端中输入:
sudo apt install $PATH/XXXXX.deb # 从Path安装