[实验室运维] 重装Ubuntu系统

因为更新cuda时误删了系统库,导致系统无法启动,需要重装系统。好在系统盘和数据盘时分开的。

第一步:重装系统

  • 安装server镜像(可以选择desktop版本,先上去备份数据,桌面版好操作)
  • 然后进入bios,选择uefi启动模式,启动盘选择usb(我们的server6的bios胸痛有点抽象,等下最后面有描述)
  • 语言选择English
  • IP设置为网线的IP地址,这个根据自己的服务器确定
  • 然后代理使用默认的即可
  • 因为是数据和系统分盘,所以安装的时候需要选择custom
    • 注意先把数据盘取消/拔掉了(如果不能物理拔掉,也可以设置里面卸载的),然后再分区系统盘
    • 系统盘分区设置为: efi分配2GB,/根目录分配200GB,然后剩下的为home目录分配即可
    • 然后选择安装(我记得是这样子的,安装完之后需要重启)

第二步:重新挂载数据盘

因为我们的server-6是有两个机器硬盘作为数据盘的,一共14.5TB,所以需要先连接一下LVM的相关知识。其实就是把两个盘合起来的LVM作为一个新的卷就行了。(我找了听过LVM扩容的教程看了,发现别人的都是空盘,而我有数据的盘不能用LVM扩容,而是直接替换home就行了,具体操作看下面的流程)

  • PV : Physical volume
  • VG : Volume Group
  • LV : Logical Volume

(step-1)先看看系统的配置

  • lsblk查看有哪些设备:(这里可以看出nvme0n1是系统盘)
    在这里插入图片描述
  • 再看看系统未添加的两个机器硬盘属于哪一个逻辑卷(因为重装系统之前就添加过pv/vg/lv等等操作,所以在重装时这两个盘属于同一个lv?)
    • 其中红框的/dev/vg0/lv-0就是lv的卷名了,跟/dev/sda是一样使用的(暂时的理解)
      在这里插入图片描述
      (step-2)先把数据卷挂载到任意一个空文件夹
      因为我们的数据盘不是空盘,不需要格式化!!!!
sudo mkdir home_data
sudo mount /dev/vg0/lv-0 /home_data

这样进入到home_data文件夹里面就可以看到之前的数据了:
在这里插入图片描述
(step-3)在使用home_data覆盖home目录之前,备份目前的home目录

sudo mkdir /home_backup
sudo cp -arv /home/* /home_backup/*

(step-4)设置挂载方式,使用/dev/vg0/lv-0覆盖之前的home目录
之前home目录挂载的硬盘分区是:/dev/nvme0n1p3,我们这一步的操作是为了更换home文件数据!  我们现在打开 /etc/fstab 文件夹,修改其中的开机自动挂载关系:原来的挂载方式是:/dev/nvme0n1p3 -> home我们直接改成:/dev/vg0/lv-0 -> home ,需要通过UUID进行设置,因为硬盘的/dev/sda这种名字是会变的,而UUID是不会变的设备号。(详细请看截图)

  • 先查看设备的UUID:
sudo blkid
  • 再更换UUID:(就是注释掉原来的home,然后更换uuid即可,其它前缀和后面的内容都不用变,文件系统是ext4也不用改,好像默认是ext4比较多)
    在这里插入图片描述
  • 重启 sudo reboot
    重启如果成功,就说明这一步操作成功了。(运维大哥说一般这种覆盖挂载很可能会导致重启失败,如果失败了,需要到线下去重启机器,ubuntu找不到home目录时,仍然可以使用密码进入recovery mode进行修改)

(step-5)等我们这一步操作完之后/dev/nvme0n1p3 就处于未挂载状态了,第五步再把它挂载回来
我们把home数据备份到home_backup里面了,这里我们直接重新挂载一遍就好了!!!(因为现在home_backup的分区是没有挂载的,没有办法进行复制,所以直接挂载就能访问了)

在这里插入图片描述

  • 然后再次重启sudo reboot,如果重启成功(这一步失败的概率不大,就是普通挂载罢了),就说明我们的数据迁移成功了!

第三步:重新恢复用户

虽然第二步已经把数据成功挂载到home文件夹了,但是我们用户的权限还是不对的(虽然用户还没创建)。pc甚至进不去其它用户文件夹
在这里插入图片描述
使用下面的脚本可以添加用户+设置密码,同时设置好权限。

#!/bin/bash

# "Jiahr"
# "Linzy"
# "Pengy" 彭颖
# "Xubn"
# Wangzy 到底是王紫洋还是王志远
# "Zhaows"

declare -A keymap
keymap=(
    [Mazy]="Mazhiyong"
    [Huangwb]="Huangwenbin"
    [Chenyl]="Chenyile"
    [Chenxm]="Chenxiaomin"
    [Chenyw]="Chenyawen"
    [Chenzl]="Chenzhanlin"
    [Dengqy]="Dengqinyi"
    [Dengq]="Dengqi"
    [Jiahr]="Jiahr"  # 
    [Jianglq]="Jiangluoqian"
    [Leiyj]="Leiyijie"
    [Lianght]="lianghantao"
    [Linzy]="Linzeyuan"
    [Liqk]="Liqiuke"
    [Lij]="Lijie"
    [Liuc]="Liuchen"
    [Lizp]="Lizhiping"
    [Panhl]="Panhaolin"
    [Pengy]="Pengying"
    [Wangzy]="Wangziyang"
    [Xubn]="Xubingna"  
    [Yangzh]="Yangzehang"
    [Yedh]="Yedahang"
    [Yumj]="Yumianjie"
    # [Zhakx]="Zhakaixing"
    # [Zhangrh]="Zhangronghao"
    # [Zhangsl]="Zhangshulian"
    # [Zhaors]="Zhaoruoshan"
    # [Zhaows]="Zhaowensong"    
    # [Zhengwt]="Zhengwentao"
    # [Zhengzy]="Zhengzhenya"
    # [Zhouxb]="Zhouxuebin" 
    # [Guanjq]="Guanjinquan" 
)

for k in ${!keymap[@]}; do
 echo "${k} : ${keymap[${k}]}123." 
 useradd -d "/home/${k}" -s /bin/bash ${k}
 echo -e "${keymap[${k}]}123.\n${keymap[${k}]}123.\n" | sudo -S passwd ${k}
 sudo chown -R ${k}:${k} "/home/${k}"
 sudo chmod -R 750 "/home/${k}"
done

实验室同学能够正常登录了,但是不知道为什么users查看不到其它用户:
在这里插入图片描述

其它奇怪问题

1. shell的路径不见了

这个问题得到了解决:https://blog.youkuaiyun.com/Du_wood/article/details/84914759
在这里插入图片描述

  • 不过不管是哪一个用户,bash用的都是同一个:
    在这里插入图片描述
  • 不过使用usermod -s /bin/bash username 真行!

2. 怎么没有root用户

在这里插入图片描述
在这里插入图片描述Ubuntu22.04 安装完成之后默认是没有root账户登录权限的,需要手动创建root用户。(只需要执行sudo passwd root就可以创建root账户啦,它是具有root权限的,而我们一开始安装系统的用户名是pc!)
在这里插入图片描述

3. 用户无法访问某一些软件

明明是安装了nvidia-cuda-toolkit的,但是就是看不到!
在这里插入图片描述
在这里插入图片描述
检查/usr/local目录下的信息,发现有两个cuda文件夹,不知道两个的区别是什么。
https://blog.youkuaiyun.com/qq_34740599/article/details/106950389查看这篇文章解决了我的疑惑:cuda文件夹里面全部都是软链接,cuda-12.3才是真正下载的位置。因为cuda支持多版本共存,需要切换版本的时候,更换cuda的软连接就行了!(所以路径的设置上,当然是设置软链接啦!)
在这里插入图片描述
在我配置好路径之后,其它用户也能够访问cuda哩!
/etc/profile里面添加这些内容就行了!先vim /etc/profile,再复制进去。(这些环境变量适用于所有用户)

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin

4. .用户报错 Xauthority does not exist

这个错误是因为用户创建的时候没有创建对用的用户目录,或者没有指定用户目录。(因为我们已经有了用户文件夹,所以不能使用useradd -m强制创建,我们只需要指定就行了)

  • 不过根据上面的脚本来添加用户,不会出现这个问题(因为被排雷了)。
useradd -d /home/username -s /bin/bash username
passwd username 
chown -R username:username /home/username
chmod 750 /home/username

5. 更新完ssh之后gpustat和nvidia-smi无法使用

重装系统之后,已经能够使用nvidia-smi查看cuda信息了,但是更新了ssh之后,又出现了错误。
需要重新安装nvidia-cuda-toolkit、gpustat,但是安装了完这些东西之后,还是不行!
在这里插入图片描述
难道又需要我重装cuda驱动了吗呜呜呜。
也就是说,我nvcc -V正常,但是gpustat异常(x,报错误为:pynvml.NVMLError_DriverNotLoaded: Driver Not Loaded
查看dkms status,信息如下:
在这里插入图片描述

  • 但是我查看服务器推荐的nvidia driver版本时535的啊!!!
    在这里插入图片描述
    没办法,只能重装driver了
    在这里插入图片描述
    使用师兄留下来的重装driver的方法,安装了535版本的driver。(我其实很想知道这种安装方法安装的是什么,还有另一种是通过cuda.run文件进行安装的,难道说前者是安装driver,后者是安装cuda?然后cuda版本为12.3,但是driver只能最高支持到12.2,所以我这次操作之后的运行时cuda版本为12.2,然后编译时cuda版本仍然是12.3?)

现在是可以使用了!但是nvcc -V和nvidia-smi的版本是不一样的,同时ls /usr/local/看到的cuda-12.3仍然存在。
在这里插入图片描述

6. SFTP挂了

在这里插入图片描述
这个链接提供的方法完美解决:(就是修改/etc/ssh/sshd_config文件)https://blog.youkuaiyun.com/qq_36933159/article/details/135644309

原来为:

Subsystem sftp /usr/local/openssh/libexec/sftp-server

修改为:

Subsystem sftp internal-sftp

在这里插入图片描述

7. 实验室有同学vscode-ssh扩展报错同时连不上服务器

在这里插入图片描述
尝试了两种方法:https://blog.youkuaiyun.com/hjmaAsC/article/details/107723029在这里插入图片描述
最后删掉.vscode-server文件夹就行了

8. 明明权限都分配了,但是conda无法安装依赖

在这里插入图片描述
这里ll可以看到,文件夹的所属者属于Zhangsl,属于Jianglq Group。之前chown忘了加-R参数了,破案了。

9.需要重装的软件包有:

  • zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值