Ubuntu Server 20.04安装
Ubuntu Server 20.04安装配置中的技巧与坑。
安装系统
制作启动U盘并从U盘启动,依据安装器引导进行安装。如果没有Internet连接,建议不插网线。(详见下文)
分区
以下为分区的参考配置。
背景:多块硬盘使用RAID卡组RAID 5,故仅显示一块硬盘。
- Available Devices中选择相关硬盘“Use As Boot Device”,会自动创建ESP分区,挂载到
/boot/efi
。 - 使用硬盘剩余空间创建新的分区,不格式化。
- 创建LVM的卷组,选择新的分区。
- 在卷组中创建新的逻辑卷,并挂载为
/
,/home
。
莫名崩溃
如果在分区页面后突然出现安装日志界面,并弹窗提示遇到问题。日志页面的最后几行有关snap。疑似因snap联网问题导致崩溃,需要断网重新进行安装。
安装后的配置
安装后根据具体情况仍有些内容需要配置。
时间与时区
联网后会自动更新时间,可以在/etc/systemd/timesyncd.conf
中配置NTP服务器。
使用sudo dpkg-reconfigure tzdata
更改时区。
本地化
首先确认是否有zh_CN.UTF-8与相关语言包,若没有则先安装语言包,生成zh_CN.UTF-8。
然后设置LANG
环境变量。建议不设置LC_MESSAGES
。若设置LC_MESSAGES
,系统消息可保持英文,可能在一些情况下有利于理解。但是将LC_MESSAGES
设置为POSIX
会使得许多命令的--help
以及vim、nano的菜单为英文。
详见Locale。
htop配置文件
当cpu核数过多时,小窗口显示htop极不友好。可参照其他设备的htop,“摸黑”移除cpu所有单个核的状态,只显示cpu整体平均。再将个人的htop配置文件复制到系统配置文件。配置文件位置参考htop的man,查看CONFIG FILE。
用户管理
参考用户管理文档增删用户。
默认情况下,不同用户的家目录是相互可读的。adduser
的配置文件为/etc/adduser.conf
,DIR_MODE
的默认值为0755,修改为0700以禁止相互可读。
加入sudo
组即可获得root权限,建议除管理员外,其他用户只赋予特定有需求的命令的sudo权限。sudo配置文件的语法可以参考Arch Linux Wiki。
静态IP
若断网安装,则需安装后手动配置静态IP。编辑/etc/netplan/
下的yaml文件。
防火墙
防火墙默认是关闭的。配置参考Firewall。
编译器与jre
安装build-essential
与最新lts版本openjdk的headless jre。headless表示不支持GUI Java程序。
无人值守更新(Unattended Upgrade)
将Unattended-Upgrade
与Update-Package-Lists
设置为0,详见AutomaticSecurityUpdates。
安装英伟达闭源驱动
安装方式
考虑到服务器有长期使用的需求,而Ubuntu的软件仓库或者PPA提供的英伟达闭源驱动包随着发行版停止支持将不再更新。故舍弃一键傻瓜式安装方式,而选择较为麻烦的手动安装。
安装过程
- 使用apt安装dkms软件包。
- 从英伟达网站选择并下载合适的驱动。
- 禁用Nouveau开源驱动。
1
2
3
4
5
6# 创建文件/etc/modprobe.d/blacklist-nvidia-nouveau.conf(文件名似乎不重要)并写入
# blacklist nouveau
# options nouveau modeset=0
# 更新initramfs
sudo update-initramfs -u sudo sh NVIDIA-Linux-x86_64-xxx.xx.run
无需安装32位兼容库,也不用让驱动安装程序修改X的配置(服务器没有GUI)
英伟达显卡开启Persistence Daemon
对于HPC环境,建议开启Persistence Daemon,加快程序启动。使用/usr/share/doc/NVIDIA_GLX-1.0/sample/nvidia-persistenced-init.tar.bz2
中的脚本,sudo bash ./install.sh
安装成功即可。
深度学习无法运行多卡程序
若pytorch的ddp多卡程序无法运行,显卡总是锁死,则在BIOS中找到IOMMU选项(可能在北桥设置中),将其关闭(默认值为auto)。
IOMMU的具体含义暂不了解,问题解决原理未知。
似乎使用Intel CPU的服务器默认是关闭的,使用AMD的则默认开启。如果改不了,则可以修改环境变量
NCCL_P2P_DISABLE=1
以禁用显卡之间P2P,但可能会有性能损失。
这一措施还可以解决deepspeed程序正常结束或者手动终止后,cpu短暂死锁几分钟的问题。
kernel:NMI watchdog: BUG: soft lockup - CPU#xx stuck for 22s
xfs下的硬盘配额
涉及修改/etc/fstab
开启配额功能,并且xfs_quota -x -c
使用管理员命令limit
设置特定用户或默认的限制空间。命令语法与软硬限制详见man xfs_quota
。