更新 Debian 9(“Stretch”)后,我无法打开任何程序。我可以在 grub 上做些什么吗?甚至无法打开终端。
答案1
我将从字面上理解你的问题,而不是过多地讨论如何修复你的环境。我将解释如何到达终端。从那里您需要开始诊断问题并修复。当您更多地了解问题所在时,随时欢迎您过来提出新问题。
在尝试在 grub 中执行任何操作之前,请检查是否可以在没有 GUI 的情况下进入终端。在(非功能性)GUI 中,按ctrlalt5。 5 位于键盘顶行,而不是数字键盘。实际上大多数数字都可以使用,但 1 或 2 将是 GUI 本身。您可以使用ctrlalt1或ctrlalt2根据运行 GUI 的终端返回 GUI 。
这是获取终端的最佳选择,因为所有内容都会根据您的需要进行安装。
使用 grub 进入命令提示符
如果您确实无法访问任何终端,那么“核心选项”就是直接启动到命令(bash)提示符。也就是说,假设您想使用 bash 命令行,您可以将 bash 设置为唯一的事情启动时运行。
为此,您需要打开系统电源,当 grub 菜单出现时,您可以↓↑快速按 停止它自动启动。然后选择您常用的启动选项并按e。这将为您提供菜单条目的配置。这可能看起来像这样:
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt8'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt8 --hint-efi=hd0,gpt8 --hint-baremetal=ahci0,gpt8 cb015492-4ca4-4fae-a416-6d89443e4680
else
search --no-floppy --fs-uuid --set=root cb015492-4ca4-4fae-a416-6d89443e4680
fi
echo 'Loading Linux 5.3.0-19-generic ...'
linux /vmlinuz-5.3.0-19-generic root=UUID=ff6f177b-8261-4ea7-a088-bfbf7556c7b0 ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /initrd.img-5.3.0-19-generic
浏览此配置以查找以 开头的行linux
。然后小心地添加到该行的末尾:
linux /vmlinuz-5.3.0-19-generic root=UUID=ff6f177b-8261-4ea7-a088-bfbf7556c7b0 ro recovery nomodeset init=/bin/bash
然后F10按开机键。
一旦你以这种方式进入命令提示符,你会发现很多东西没有像你通常期望的那样安装。 Root ( /
) 将是只读的,并且您将没有/dev/
/sys
/proc
和/run
。可能还有其他未安装的东西,包括/boot/efi
或其他分区。
# Mount / as RW
mount -o remount,rw /
# Mount dev sys proc and run
mount -t devtmpfs devtmpfs /dev
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t tmpfs tmpfs /run
然后仔细阅读/etc/fstab
以查找您可能需要的其他内容。例如,如果我输入,cat /etc/fstab
我可以看到一个条目
# /boot was on /dev/sda8 during installation
UUID=cb015492-4ca4-4fae-a416-6d89443e4680 /boot ext4 defaults 0 2
我可以 ...
mount UUID=cb015492-4ca4-4fae-a416-6d89443e4680 /boot
或者,更简单的输入是用于blkid
查找设备:
blkid
/dev/mapper/ubuntu: UUID="ff6f177b-8261-4ea7-a088-bfbf7556c7b0" TYPE="ext4"
/dev/sda2: LABEL_FATBOOT="EFI" LABEL="EFI" UUID="2641-087E" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="27141f73-5de4-4785-8894-3c774fae7e79"
/dev/sda5: UUID="d7a0c72d-e9cc-49d6-8482-d08c5225d22d" LABEL="Ubuntu" TYPE="crypto_LUKS" PARTLABEL="Linux Home" PARTUUID="0fc32a26-808a-4f1c-8d15-3369da0b564b"
/dev/sda8: UUID="cb015492-4ca4-4fae-a416-6d89443e4680" TYPE="ext4"
然后 ...
mount /dev/sda8 /booot
这足以让您进入工作命令行。之后,恐怕你必须解决这个问题并尝试找出问题所在。
最后的想法
如果这只是破坏您的 UI 的系统更新,那么您的个人资料设置可能与新升级的 UI 不兼容。作为预防措施,您可以将主目录移开并重新创建一个空目录,然后重新启动计算机。至少这样您就可以使用空白配置文件登录。
例如对于用户 philip:
cd ~/..
mv philip philip_old
mkdir philip
chown philip:philip philip
reboot