重装系统
note:备份数据,重装系统后home下的文件会丢失,所以先备份一下home的数据到其他的盘/mnt/下里。记住之前系统的DNS,IP和掩码。
先在Ubuntu官网下载22.04桌面版(种子链接要用迅雷下载)。但是版本还是有点高,所以在这个链接里下载。
这个是做系统盘的文件,下载下来直接在自己电脑上安装,安装一路默认下一步。
打开这个做系统盘的软件,点击左上角文件-打开-打开下载的镜像系统文件-打开.
选择启动-写入硬盘,看下是不是自己的u盘的名字和大小,如果是的话直接点写入,等待进度条走完。
写完之后u盘会变成如下这样:
服务器是关闭状态,插入U盘,开机,不停的按F11(没用,需要不停的按delete),就会到BIOS界面。一直往右有个boot,选择boot option 1回车,选择第二个选项就是u盘,然后回车。按F10保存yes。然后会重启,等待。
选第一个进入系统。然后选择install ubuntu-continue-normal installation。
选这个第三个,install now-continue。直到填用户名和密码的时候,用户名主机名啥的都填super,然后填入密码。continue之后会出来一个进度条,一直等待到进度条完成,然后点击restart。
restart之后是这个界面。
然后按回车,到了如下图界面的时候就拔掉u盘:
然后就正常登录就可以进去系统了。
设置静态ip+联网
点击右上角的网络设置,选到ipv4,手动,填入静态ip地址,网关和子网掩码。如果ip地址是158.132.150.249/23,那么就在netmask里填23.DNS如果有两个的话就也按照逗号和空格分成两个,最后写完是这样的:
然后重启一下网络,把按钮关闭再打开。
再在netplan中设置静态ip,设置教程在这:https://www.cnblogs.com/liujiaxin2018/p/16287463.html,https://zhuanlan.zhihu.com/p/613283478。注意,netplan中的ip要必须和GUI中写的ip一模一样,还有要知道网线插得是哪个口,netplan中设置就写哪个口。
问题1:右上角的网络图标有个问号
解决办法:GUI中选择设置,点击privacy,把connectivity check关闭就可以了。
问题2:设置完毕后无法连网,ping内网可以,外网不行。
解决办法:交换机上可能设置的防火墙,换一个交换机的网口也不行的话就直接换个其他的交换机,总之检查了设置之后还不行的话就是硬件问题,多试一试。
设置
安装完系统,设置完网络之后:
sudo apt update # 更新
sudo reboot # 更新完重启
# 再安装ssh 就可以远程操作了
挂载硬盘(硬盘中有原始数据)
sudo fdisk -l # 查看硬盘内容,按照大小可以找到已经插入的四个硬盘,记住名字
lsblk # 查看硬盘内容,按照大小可以找到已经插入的四个硬盘,记住名字
sudo blkid #查看硬盘的UUID
sudo mkdir /mnt/nvme1 #创建要挂载到的文件夹sudo nano /etc/fstab #打开文件,写入UUID=xxx /mnt/nvme1 ext4 defaults 0 0
sudo mount -a #执行挂载,没错就是成功
sudo reboot #重启,看开机是否自动挂载
增加用户
sh add.sh
add.sh内容如下:
#!/bin/bashadd_user(){sudo useradd -m -d /home/$1 -s /bin/bash $1sudo passwd $1sudo mkdir -p /mnt/nvme1/$1sudo mkdir -p /home/$1sudo chown $1 /mnt/nvme1/$1sudo chown $1 /home/$1sudo chmod 740 /mnt/nvme1/$1sudo chmod 740 /home/$1
}add_user "xxxx"
add_user "xxxx"
删除用户
sh del.sh
del.sh内容:
#!/bin/bashdel_user(){sudo userdel -r $1sudo rm -rf /mnt/nvme1/$1
}del_user "xxxx"
del_user "xxxx"
安装驱动
ubuntu-drivers devices #查看推荐的驱动版本
sudo apt install nvidia-driver-535-open -y #由于系统重装的是桌面版,因此不能装-server版本的
sudo reboot
sudo dpkg-reconfigre unattended-upgrades #关闭自动更新
安装完驱动出错:No devices were found
先卸载安装好的驱动:
sudo apt-get --purge remove "*nvidia*" #卸载软件包sudo /usr/bin/nvidia-uninstallsudo apt purge nvidia-* #卸载并清除软件包的配置sudo apt autoremove #卸载所有自动安装且不再使用的软件包,这个最好少用
再安装不带open的版本参考资料:
sudo apt install nvidia-driver-535 -ysudo reboot
成功。
关闭自动更新
sudo nano /etc/apt/apt.conf.d/10periodic # 把APT::Periodic::Update-Package-Lists改为 "0"
sudo dpkg-reconfigure unattended-upgrades #选NO关闭自动更新
记得在GUI上也关闭自动更新,参考资料
安装CUDA
nvidia-smi显示的是最高cuda版本。打开官网:https://developer.nvidia.com/cuda-toolkit-archive,选择CUDA 11.7,runfile(local),按照官网给的指令来。
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
sudo sh cuda_11.7.0_515.43.04_linux.run #(continue-accept-取消勾选driver-install)
打开bashrc文件配置,在最后写入:
export PATH=$PATH:/usr/local/cuda-11.7/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.7/lib64
source .bashrc
nvcc -V #查看此时cuda版本为11.7
安装了cuda但是其他非root账户不显示
在他们的.bashrc文件中添加:
# cuda
export PATH=/usr/bin:$PATH
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}source .bashrc
安装cudnn
官网:https://developer.nvidia.com/rdp/cudnn-archive#a-collapse805-111
下载符合要求的版本。按照这里的教程安装https://docs.nvidia.com/deeplearning/cudnn/latest/installation/linux.html, https://blog.csdn.net/takedachia/article/details/130375718。
sudo apt-get install zlib1g #先安装这个
sudo dpkg -i cudnn-local-repo-$distro-9.x.y_1.0-1_$architecture.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.7.29/cudnn-local-8AE81B24-keyring.gpg /usr/share/keyrings/
sudo apt-get update
apt-cache policy libcudnn8 # 查看版本
sudo apt-get install libcudnn8=8.9.0.131-1+cuda11.8 #上面查看到的版本替换
sudo apt-get install libcudnn8-dev=8.9.0.131-1+cuda11.8 #版本替换
sudo apt-get install libcudnn8-samples=8.9.0.131-1+cuda11.8 #版本替换
#验证是否安装成功
cp -r /usr/src/cudnn_samples_v8/ $HOME
cd $HOME/cudnn_samples_v8/mnistCUDNN
sudo apt-get install libfreeimage3 libfreeimage-dev
make clean && make
./mnistCUDNN #提示test passed就是安装成功了
安装docker
教程:https://cloud.tencent.com/developer/article/2309562
安装nvidia-docker-runtime
教程:https://blog.csdn.net/boon_228/article/details/131823459
安装anaconda
在 https://www.anaconda.com/products/distribution#Downloads 上下载anaconda,然后:
bash Anaconda.xxxxx.sh #一路回车+yesnano .bashrc #写入下面
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/suyuejiao/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; theneval "$__conda_setup"
elseif [ -f "/home/suyuejiao/anaconda3/etc/profile.d/conda.sh" ]; then. "/home/suyuejiao/anaconda3/etc/profile.d/conda.sh"elseexport PATH="/home/suyuejiao/anaconda3/bin:$PATH"fi
fi
unset __conda_setup
# <<< conda initialize <<<source .bashrc
安装mmsegmentation
conda create --name mmseg python=3.8 -y
conda activate mmseg
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
pip install -U openmim
mim install mmengine
mim install "mmcv==2.0.0rc4"
问题1: 发生AttributeError: module ‘pkgutil’ has no attribute ‘ImpImporter’. Did you mean: ‘zipimporter’
查询之后发现python3.12版本会出现这样的问题,降版本到3.8就可以了。但是进一步发现,conda list里面的python版本是3.8,而python --version输出的则是3.12,这是bashrc的问题。将bashrc的内容修改为如下:
# cuda
export PATH=/usr/bin:$PATH
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
# conda
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/suyuejiao/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; theneval "$__conda_setup"
elseif [ -f "/home/suyuejiao/anaconda3/etc/profile.d/conda.sh" ]; then. "/home/suyuejiao/anaconda3/etc/profile.d/conda.sh"elseexport PATH="/home/suyuejiao/anaconda3/bin:$PATH"fi
fi
unset __conda_setup
# <<< conda initialize <<<
关掉窗口新开一个,发现python --version的版本和conda list里面一样了,可以用mim下载mmengine 和mmcv了。
问题2: AssertionError: MMCV==2.2.0 is used but incompatible. Please install mmcv>=2.0.0rc4
先按照mim install "mmcv>=2.0.0"下载了mmcv之后跑测试代码的时候,出现这个问题,直接下载:
mim install mmcv==2.0.0rc4
重新测试,发现问题已经解决了。