校内服务器重装系统经验记录

07-13 1589阅读

背景

实验室的服务器被劫持了,重装了系统。中间探索了很多东西,记录一下。

题目中校内的主要限制在于:

  1. 镜像网站的选择,用的浙江大学镜像站
  2. 系统重装操作依赖管设备的老师
  3. 可能存在联网权限问题
  4. 需要装 zjunet 来联外网

文章目录

  • 背景
  • 1. 备份
  • 2. 启动盘制作
  • 3. 重装系统
  • 4 启用root用户
  • 5 修改ssh服务默认端口
  • 6. 联网
    • Step1:配置dns。
    • Step2:修改镜像源
    • Step3: 更新系统
    • Step4: 下载安装xl2tpd
    • Step5: 下载安装zjunet
    • 7 安装nvidia driver和cuda toolkit
      • 7.1 安装nvidia driver
        • 绕路 1:确定驱动版本
        • 7.2 安装cuda toolkit
          • 安装步骤:
          • 绕路1:默认的apt install
          • 绕路2:确定版本
          • 总结一些版本不匹配的情况
          • 8 挂载数据盘
            • 8.1 mount
            • 8.2 conda环境恢复
            • 8.3 新建user并绑定原有用户文件夹
            • 9 附带解决的其他问题

              1. 备份

              重装时只需要重写系统盘,也就是本身硬盘上的系统分区。不会动数据盘。

              师姐先见之明,conda环境全部安装在挂载的数据盘上,实验数据最后也全部挪过去了。

              这里需要查看数据盘叫什么,挂载到哪。

              # 查看硬盘详情,可以看到数据盘叫什么
              $ fdisk -l
              # 可以查看挂载情况,比如我的数据盘/dev/sdb1挂载在/data文件夹下
              $ df -h
              

              校内服务器重装系统经验记录

              备注:这里本应该把数据盘unmount一下,但我忘了,后续倒也没影响。注意重装的时候别把系统装到数据盘(交给有经验的设备老师或前辈就没事)。

              ChatGPT建议我备份一大堆东西,后来发现倒也不需要。备份好数据就可以去找管设备的老师重装了。

              2. 启动盘制作

              系统架构是4张3090,x86_64。所选是Ubuntu 22.04系统。

              这里可能需要考虑和CUDA Toolkit的适配。比如我之前需要用CUDA Toolkit 11.6,但没有Ubuntu 22.04的CUDA Toolkit 11.6,只有Ubuntu 20.04的,后来解决方法是硬装,也能跑,但应该不建议。

              下载地址:Ubuntu官网,下载下来的文件名是ubuntu-22.04.4-live-server-amd64.iso

              启动盘制作工具:rufus,这个是按手头电脑的操作系统选的,我在win系统制作启动盘,推荐的多的是这个。不用安装,即开即用。

              我使用的是4.5版本,参数配置如图:

              • 设备选择的是插入的U盘
              • 引导类型选“镜像文件”,然后选择前面下下来的ubuntu iso
              • 其他设置保持默认
              • 点击开始。

                校内服务器重装系统经验记录

                制作完成后,状态条会全绿,字样仍然是“准备就绪”没改,没事的。

                拿着启动盘去找管设备老师吧。

                3. 重装系统

                设备老师带着去机房,找到要重装的一组卡,插入启动盘(U盘),关机,从启动盘启动…所有都等着老师操作就好。下面只记一点学到的东西。

                过程中需要配置服务器ip、子网、服务器名、用户和密码。设置ssh登录(启用)和公钥登录(关闭)。用户只是个新user不是root,root要后期启用。老师建议不要开启ssh连接root的权限,要用root就从普通用户su过去,避免被攻击。

                至此结束,其他都回去自己捣鼓。

                4 启用root用户

                参考:新安装的linux/ubuntu,root用户的设置步骤

                5 修改ssh服务默认端口

                参考:linux下ssh使用除了22的其它端口来连接远程服务器

                6. 联网

                Step1:配置dns。

                参考Ubuntu20.04 系统中设置dns并生效

                • 配置dns:修改/etc/systemd/resolved.conf文件,DNS=写入老师给的dns地址。
                • 重启服务:
                  systemctl restart systemd-resolved
                  systemctl enable systemd-resolved
                  

                  注意不需要修改/etc/resolv.conf的nameserver

                  Step2:修改镜像源

                  按照浙大镜像站的指导进行:ZJU Mirror Ubuntu

                  这里提到需要选择Ubuntu版本,可以执行lsb_release -a查看。这里可以确认我装的是22.04 jammy。

                  $ lsb_release -a
                  Output: 
                  	No LSB modules are available.
                  	Distributor ID: Ubuntu
                  	Description:    Ubuntu 22.04.4 LTS
                  	Release:        22.04
                  	Codename:       jammy
                  

                  Step3: 更新系统

                  至此,应该可以正常执行

                  sudo apt update && sudo apt upgrade
                  

                  如果仍然报错如图所示Failed to fetch,那么询问设备老师打开联网权限。有可能老师设置连校网都连不上。

                  校内服务器重装系统经验记录

                  如果提示“Pending kernel upgrade… Newer kernel available… Restarting the system to load the new kerne will not be handled automatically, so you should consider rebooting.”,那就reboot一下。重启快则3分钟慢则一小时,可以通过ssh连接试探是否重启完毕。

                  Step4: 下载安装xl2tpd

                  $ apt-get install xl2tpd
                  

                  如果提示“E:Unable to Locate Package ”,说明前面某一步没配好。

                  Step5: 下载安装zjunet

                  参考 浙江大学校园网 Ubuntu有线网上网详解 和 Github: QSCTech/zjunet

                  7 安装nvidia driver和cuda toolkit

                  这一块我研究了很多,先说最终方案,再说中间绕了哪些路。

                  总共要安装三个东西:Nvidia driver,CUDA,CUDA toolkit。

                  • 其中,在安装Nvidia driver时,CUDA已经捆绑安装,也就是nvidia-smi查询到的CUDA显示。
                  • CUDA toolkit是运行时环境,可以安装很多版本,通过修改环境变量来选取当前项目适用的运行时环境,通过nvcc -V查询是哪个版本。此外,在安装CUDA Toolkit时,还可以选择是否捆绑安装NVIDIA Graphics Drivers显卡驱动。我这里建议不捆绑,因为会修改之前装好的driver。
                    • 在只使用torch的情况下,不需要安装CUDA Toolkit和cuDNN,只需要显卡驱动,conda或者pip会为我们安排好一切。但如果要加入一些第三方依赖,还是要额外装个CUDA Toolkit的。(参考:【PyTorch】n卡驱动、CUDA Toolkit、cuDNN全解安装教程)

                      7.1 安装nvidia driver

                      一行命令直接安装默认适合的驱动,至此结束。

                      # 安装
                      $ sudo ubuntu-drivers autoinstall
                      # 重启
                      $ sudo reboot
                      # 查看driver是否正常安装
                      $ nvidia-smi
                      

                      此时安装的版本和ubuntu-drivers devices查询的推荐版本是一致的。

                      绕路 1:确定驱动版本

                      网上教程有两种说法,一是去nvidia官网查找适合的驱动,二是通过ubuntu-drivers devices命令,查询推荐版本。我的两个版本不一致。

                      • nvidia官网查找如图所示,我查到的是2024/04/25新发布的550.78版本。

                        校内服务器重装系统经验记录

                        校内服务器重装系统经验记录

                      • 通过ubuntu-drivers devices命令,查询输出如下。查询得到的最高版本也就只有535。
                        $ ubuntu-drivers devices
                        ERROR:root:aplay command not found
                        == /sys/devices/xxxxxxxxxxx ==
                        modalias : xxxxxxxx
                        vendor   : NVIDIA Corporation
                        model    : xxxxxxxx [GeForce RTX 3090]
                        driver   : nvidia-driver-535-server - distro non-free
                        driver   : nvidia-driver-545-open - distro non-free
                        driver   : nvidia-driver-470 - distro non-free
                        driver   : nvidia-driver-545 - distro non-free
                        driver   : nvidia-driver-535 - distro non-free recommended
                        driver   : nvidia-driver-535-open - distro non-free
                        driver   : nvidia-driver-535-server-open - distro non-free
                        driver   : nvidia-driver-470-server - distro non-free
                        driver   : xserver-xorg-video-nouveau - distro free builtin
                        

                        最终选择系统默认,也就是535。

                        这里不用手动指定版本,sudo ubuntu-drivers autoinstall的默认安装就是recommended的版本。

                        7.2 安装cuda toolkit

                        跟随nvidia官方教程的指令,每个CUDA版本都有自己对应的安装指南。

                        CUDA Toolkit版本的选择,在我看来有2个关键因素:

                        1. 不能高于nvidia-smi的查询结果,比如我的查出来是CUDA 12.2,那么我的CUDA toolkit不能高于12.2。

                          校内服务器重装系统经验记录

                        2. 和pytorch版本相关。比如,服务器重装前用的是11.6,那我现在还得装11.6,不然可能不支持之前配好的conda环境里的pytorch。11.6

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]