问题描述
Ubuntu安装完lightdm,重启后发现无法开机,每次进入到开机页面后(紫屏),就自动重启,然后进入BIOS
解决方案
自然是想到删除lightdm,换回gdm3。但是由于现在的状态是每次开机就重启,根本无法进入ubuntu的命令行,因此只能想其他办法。
这里的解决方案是用一个U盘做启动盘,启动该U盘内的系统,再将原系统挂载到启动盘中,对原系统的文件进行修改。
具体步骤
-
制作一个Ubuntu的U盘启动盘
-
将U盘插入机器,在BIOS中设置为启动项
-
进入启动盘,选择Try ubuntu的选项(不安装)
-
进入桌面,打开命令行,开始挂载原系统
1)执行sudo fdisk -l
,查看本机当前磁盘及分区状态
2)找到原系统安装的磁盘,如“/dev/nvme0n1”
3)找到该磁盘的分区情况,判断各个分区挂载的目录
以我的情况为例,/dev/nvme0n1p6挂载的是/目录,即根目录;/dev/nvme0n1p5挂载的是/home目录,/dev/nvme0n1p1则是boot目录4)然后开始挂载:
sudo mount /dev/nvme0n1p6 /mnt sudo mount /dev/nvme0n1p5 /mnt/home
仅仅是这些还不够,还要挂载以下的路径:
sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys
然后是最关键的,挂载boot目录:
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
这里由于我的启动方式是EFI,所以启动分区挂载到了/boot/efi下面,如果不是EFI,应该挂载到/boot下面就可以了。(这里是个坑,如果挂载错了后面的修改都不起作用的)
5)进入挂载的系统
sudo chroot /mnt
6)执行修改
我这里把lightdm删除了,并配置了dpkg:apt remove lightdm dpkg-reconfigure gdm3
7)理论上,到这里就可以了,由于我一开始没有挂载正确的boot,导致修改的内容没有应用到grub里面,所以在重新挂载后,手动执行更新grub的命令:
sudo update-grub sudo grub-install /dev/nvme0n1
8)最后,
exit
退出挂载的系统,再reboot
就可以启动原来的系统了