2024 年 12 月 3 日,服务器由于误操作被删了一些数据,重新整理服务器的时候遇到了一些问题,记录下来。
工作内容
卸载系统
需求
在双 Linux 系统下卸载其中一个。将其分配的磁盘删除并格式化。
解决方法
安装 gparted 进行可视化操作。选取设备,右键删除其分区即可。 注意,使用 gparted 的用户桌面系统必须是下载它的用户,否则无法可视化。会报错 can not open display.
Linux 系统开机进入 Grub 界面怎么办
需求
安装或卸载双系统后,开机时会进入 Grub 命令行界面。
解决方法
启动后需要更新引导,步骤如下:
为用户创建桌面
需求
师兄要用桌面,但只有 cmcs232 用户有桌面。如果继续用该用户,则其他人用 sudo 还是可以影响到他
方案
需要给师兄创建一个新的用户,并且给这个用户添加一个桌面。
步骤
首先打开 /etc/gdm3/custom.conf。
# 注释掉下面这部分
[daemon]
AutomaticLoginEnable = true
AutomaticLogin = cmcs232
# 添加下面这部分
[Seat:*]
autologin-user=xxx # xxx为用户名
为用户添加sudo权限
需求
创建的用户默认没有 sudo 权限,即不在 sudo 组里,不能使用 sudo 命令。
方案
要给他加上 sudo 权限就需要将其添加到 sudo 组里。
步骤
在 root 下使用 usermod -G sudo xxx 即可,xxx 是用户名。
sudo 权限其实就是给用户一次用 root 权限执行指令的机会,只有在 sudo 组里的用户可以有该权限。 在用 sudo 时需要输入自己用户的密码,注意并非 root 的密码,这就使得用户可以在不知道 root 密码的情况下使用其权限,这就是 sudo 存在的必要性。
设置创建文件的默认权限
需求
为所有用户设置默认的创建文件和文件夹权限为 740。
方案
umask 控制创建文件和文件夹的权限,其工作方式为,先将 umask 取反,然后与全 1 做与运算,即得到默认权限。
解决方案
在每个用户的 ~/.profile 中加上一句 umask 0037。
后续工作
版本升级
我们服务器的版本是 Ubuntu 23.04,这不是一个长期支持版本,软件源可能会出现问题导致无法使用 apt install,这是因为不支持的版本会被归档,网址也会发生变化,可以参考这个网站更新 apt 源。 但最好的办法还是使用 LTS 版本的 Ubuntu,从 23.04 到 22.04 的跨版本升级有点困难,只是简单的使用 do-release-upgrade 会报错。可以参考这个问题中的回答进行升级。
扩容
需求
装机时没有采用 LVM 卷组,因此无法将新硬盘快速合并为一个大的存储空间。希望将新加入的磁盘与之前的磁盘一起创建一个 lvm 卷组,并挂载。
方案
之前的 2T 硬盘是挂载在 / 下,/home 下并没有挂载点,因此可以把新的硬盘创建为 LVM,挂载到 /home 下。下面是具体流程:
df -h # 查看新硬盘
sudo umount /dev/sda1 # 先把新硬盘卸载
sudo wipefs -a /dev/sda # 彻底擦除所有分区信息和文件系统签名
sudo parted /dev/sda mklabel gpt # 创建新分区表
sudo parted /dev/sda mkpart primary ext4 0% 100% # 创建新分区,单个分区占用全盘
sudo pvcreate /dev/sda1 # 创建物理卷
sudo vgcreate vg_home /dev/sda1 # 创建卷组
sudo lvcreate -n lv_home -l 100%FREE vg_home # 创建逻辑卷
sudo mkfs.ext4 /dev/vg_home/lv_home # 格式化为ext4
sudo mkdir /mnt/newhome # 作为新的挂载点
sudo mount /dev/vg_home/lv_home /mnt/newhome
sudo rsync -avx /home/ /mnt/newhome/ # 同步数据
# 对比 /home 和 /mnt/newhome,若一致则可以删除原硬盘里的 /home
sudo diff -r /home /mnt/newhome
sudo rm -rf /home/*
sudo umount /mnt/newhome
sudo fuser -km /home # 强制终止所有使用/home的进程
sudo mount /dev/vg_home/lv_home /home # 挂载逻辑卷
sudo blkid /dev/vg_home/lv_home # 获取逻辑卷的UUID
sudo cp /etc/fstab /etc/fstab.bak # 备份
sudo vim /etc/fstab
添加一行:UUID=e3a5c7d8-... /home ext4 defaults 0 2
sudo mount -a # 无报错即成功
未来如果要把新的硬盘(例如 /dev/sdb)扩容到 /home,则只需要:
# 分区,标记LVM,创建物理卷
sudo parted /dev/sdb mklabel gpt
sudo parted /dev/sdb mkpart primary 0% 100%
sudo parted /dev/sdb set 1 lvm on
sudo pvcreate /dev/sdb1
# 扩展卷组
sudo vgextend vg_home /dev/sdb1
# 扩展逻辑卷
sudo lvextend -l +100%FREE /dev/vg_home/lv_home # 分配新空间
sudo resize2fs /dev/vg_home/lv_home # 调整文件系统大小
教训
以后为 Linux 系统分区的时候,还是有必要将根目录和 /home 分到不同的分区的。因为如果只分一个根目录的话,就无法对其挂载点的磁盘进行卸载、操作。 应该为根目录分一个合适的大小,然后将其他大部分空间分给 /home,这样的话有利于以后对 /home 进行扩容。 另外,如果对服务器空间不确定以后是否要进行扩容,最好一开始没有数据的时候就将其按照 lvm 方法进行分区。 可以参考这篇博客进行扩容。
评论前必须登录!
注册