Linux相关配置+双系统安装记录

Linux Config

本来想在 leetcode 上一展宏图,没想到被拉去做服务器运维去了 😭 记录一下今天踩的坑 :pig_face:

前情提要
在做好一切 ssh 配置后,进行最后的维护检查,htop 时发现了 64 核 cpu 全部 100% 占用。第一反应是查看运行进程,发现是大量不具名的 --bash 进程。
进行断网处理后,发现进程不再继续进行。断开所有 ssh 连接后,重新恢复网络连接,通过 wireshark 发现了一个非常可疑的发往 143.110.58.7 的网络包(实际挖矿 IP 代理有美国,欧洲和中国香港 IP),通过 80 端口发出,随后进行三次握手后,所有 cpu 开始饱满。通过sudo ufw deny 80/tcp后杀死进程不会再重启。否则会在一段时间后重启。立刻怀疑服务器已经被植入挖矿脚本。随后证实了如下情况。
通过日志得知该进程在嗅探过程中发现本机 22 端口完全不设防并且密码极其简单,采用暴力方式破解后通过 ssh 植入了后门。只可惜没有做的太干净,还是被我发现了 😅

服务器的密码设置的太简单,又通过内网穿透暴露到了外网,被端口扫描发现并植入了恶意挖矿脚本,进行全天候 24 小时挖矿,并且夺取了系统的 root 权限。于是我们只得重新安装 bios 和操作系统。

今天师傅重新安装了 BIOS。于是我们重新安装 ubuntu22.04 到服务器上。我们的服务器共两台,每台是 64 核 CPU,x86_64 架构,CPU 是很不错的 AMD Ryzen Threadripper PRO 7975WX 32-Cores,是很先进的 cpu~,cpu 支持 52 位实地址,57 位虚地址。感兴趣的小伙伴可以看看,偷偷打印了一份 CPU 的报告 :face_savoring_food:

cpu.txt|attachment (3.6 KB)

然后 GPU 是 L40,两机各两台。通过 nvidia 的 bluefield 的 DPU,支持 InfiniBand,RocE 两种 RDMA 协议,可以让两卡通信数据绕过 cpu 内核直接写入内存。之前还出现过高温的情况(DPU 烧到了接近 100 度 😭),不过后面还是通过加装更多的风扇解决了。

开始处理。首先基本的系统安装完成后,开始装载我们的 7.3T 的硬盘和 NvMe 硬盘。担心原先的硬盘也被动了手脚,于是我重新进行了分区,格式化硬盘里的所有数据,在 root 路径下创建一个新的文件夹,并将其挂载。

mklabel gpt
mkpart primary 1 -1
p # output
sudo mkfs.ext4 /dev/sda  # 格式化硬盘

手动挂载会导致服务器重新上电后不自动挂载。因此我们将挂载规则写入 etc/fstab

img

/dev/sda /disk1 ext4 defaults 0 0

这样每次都会将我们的硬盘以 ext4 格式挂载到/disk1 路径下。
接下来还需要扩展系统盘。默认的系统盘安装在 NvMe 后,只会分配 100GB 的空间。我们将 NvMe 硬盘分成了 3 个分区,前两个分区用于

  • /boot(目录用于存储启动 Linux 系统所需的核心文件,包括内核文件(如 vmlinuz),初始 RAM 磁盘映像(如 initrd 或 initramfs),以及用于启动加载程序(如 GRUB)的配置文件);
  • /boot/efi(一个可扩展固件接口,用于efi启动器的挂载点,包含了efi版本的grub);

最后一个分区被用来整个作为系统盘。我们于是:

sudo vgdisplay  # 查看各个盘,分区和大小
lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv  # 记不清名字啦
resize2fs dev/mapper/ubuntu--vg-ubuntu--lv  # 重新调整大小进行扩容

这样就成功扩容系统盘大小。效果图如下:

img

接下来解决启动过程中等待时间过长问题,经过排查得知是强行等待网络连接直至 2min30s 超时导致,于是手动修改 systemd-networkd-wait-online.service 规则。

cd /etc/systemd/system/network-online.target.wants/
sudo vim systemd-networkd-wait-online.service

在 [Services] 一栏添加 TimeoutSec=5,强制超时 5s 后立刻启动。

img

这样无需等待启动。
此时另一位同学加入战场,于是失去了学习配置 ssh 公钥私钥的机会,去安装相关 nvidia 驱动,cuda 编译相关工具。
首先安装 C/C++ 相关编译工具链。

sudo apt update && sudo apt install build-essentials

安装 gcc-11 和 g++-11 版本适配 Ubuntu22.04. 接下来安装 nvidia 相关驱动,nvidia-smi 显示相关驱动为 570 版本。

sudo ubuntu-drivers devices
sudo ubuntu-drivers autoinstall

成功安装 nvidia 相关驱动。接着安装相关工具链,这也很简单,也就是sudo apt install nvidia-cuda-toolkit
很顺利,和第一次一样成功安装。

img

接下来进行 gpu 压力测试,我们采用最经典的 gpu-burn。

wget https://codeload.github.com/wilicc/gpu-burn/zip/master # 下载
unzip gpu-burn-master.zip # 解压缩
cd gpu-burn-master
make

形成 gpu-burn 可执行文件。基于之前的经验,采用 double 运算无法让 GPU 达到功率墙,因为 GPU 最擅长的不是双精度浮点运算,而是单精度 float。因此进行压测,采用 90% 的 memory 占用,压测 5 分钟。五分钟满载测试,GPU 温度不超过 75 度。成功。

./gpu-burn -tc -m 90% 300  # tc 启用 tensorCore

img

接下来检查 cpu 是否在上次的挖矿中受损。因此采用 stress --cpu 64 对全部 cpu 进行压测。温度在 85 摄氏度左右,表现正常。

img

此时同学已经将公,私钥配好并进行分发。于是在配置好中央 windows 跳板机后,利用跳板机配置代理转发功能,实现跳板机登录服务器。首先将私钥存入本机中。/User/xxx/.ssh/id_jump 中。随后在 vscode 内写入规则。

Host 这里是服务器名
  HostName 这里是 IP
  User 这里是用户名
  Port 这里是 ssh 端口
  ProxyJump 这里是跳板机
  IdentityFile /Users/xxx/.ssh/id_jump // 私钥地址

Host 跳板机名
  HostName IP
  User 用户名
  Port 端口
  IdentityFile /Users/xxx/.ssh/id_jump // 私钥地址

这样就实现了一键无密钥登录服务器。

双系统安装 (Windows 10 + ubuntu 18.04)

  1. 下载 easy UEFI,准备好一个空的 U 盘,下载 ubuntu 18.04 amd64 iso 文件
  2. 通过 easy UEFI 制作好了一个启动盘。启动盘制作时,选择 U 盘作为 disk 分区,选择 EFI/bootx64.EFI 作为引导项。
  3. 对磁盘进行分区。对于磁盘 1,我们需要借助他的 EFI 启动分区来帮助启动我们的 ubuntu。因此我们将其划出 1GB 的分区空间作为/boot 挂载点。efi 分区将自动扫描检测得到。接着将磁盘 2 划分出 600GB 作为根目录挂载空间。
  4. 随后选择我们的启动盘启动,进入 grub 引导。随后按照我们划分的分区来格式化成 ext4 文件格式提供给 ubuntu18.04(注意!千万不能将整个盘作为 ubuntu 系统的启动盘,不然数据都没了不就寄了)
  5. 进入 ubuntu,仅安装 openssh,剩下的到时候再说吧。

ubuntu 配置

1.没有网络怎么办?先以太网连接,再配置无线网络。
2.ifconfig -a 找到无线网卡,这里我们的无线网卡是 wlp4s0,也可以通过 iw dev 来显示。
3.接下来进入到 /etc/netplan 中进行编辑 00-installer-config.yaml。我们主要编辑如下:

network:
    ethernets:
        enp3s0:
            dhcp4: true
    wifis:
        wlp4s0:
        dhcp4: true
        access-points:
            "<WIFI-SSID>":
                password: "password"
    version: 2

最后执行:

apt install wpasupplicant
apt install network-manager
netplan generate
netplan apply

拔掉物理网线即可。

4.配置超时策略

同上。

5.从疑难杂项中选择从其他镜像启动,选择 ubuntu 即可。

posted @ 2025-06-19 10:56  木木ちゃん  阅读(55)  评论(0)    收藏  举报