我最近安装了 Windows 7 的双启动来试用。检查完之后我关闭了它,这样我就可以在学校使用 Windows 了。现在我的电脑根本打不开。甚至无法进入 BIOS。打开电源后,电脑变黑,大约 7 秒后就关机了。我需要使用 Windows!!!我在 C 盘上安装了这两个系统,但没有设置默认设置。甚至 ubuntu 都无法启动,所以我的笔记本电脑现在没用了。我现在在用手机。请帮忙。
答案1
听起来这像是硬件问题,而不是与软件相关的问题。尝试拔下电源适配器并取出笔记本电脑电池,几秒钟后重新连接,然后尝试启动。
有些机器在重新启动或发出关机命令后,Linux 会在过程结束时冻结,迫使您进行硬重置 - 按下系统的重置/电源按钮或插入电源线,这可不是什么好事。在这篇文章中,我们将了解如何解决关机或重新启动期间发生的几乎 99% 的冻结/挂起问题。
为什么会发生这种情况
发生这种情况的原因有很多——有时是 BIOS 问题,有时只是因为您的系统有不同类型的硬件设置,例如没有键盘控制器,而 Linux(内核)不了解如何处理这种情况。大多数情况下,如果是 BIOS 问题,很难要求系统供应商立即为您提供 BIOS 修复程序来解决问题,因此您必须依靠需要传递的一些内核参数来解决挂起/冻结问题。
假设你购买了一台新机器,并且你注意到在执行以下任一命令后,你的 Linux 发行版在重启/关机过程的最后挂起了:
# shutdown -r now
# shutdown -h now
# reboot
# halt
# poweroff
# Ctrl+Alt+Del
解决方案
reboot=<parameter>
为了修复该问题,您应该在启动时尝试以 的形式逐个将以下参数传递给内核:
warm = Don’t set the cold reboot flag
cold = Set the cold reboot flag
bios = Reboot by jumping through the BIOS (only for X86_32)*
smp = Reboot by executing reset on BSP or other CPU (only for X86_32)
triple = Force a triple fault (init)
kbd = Use the keyboard controller. cold reset (default)
acpi = Use the RESET_REG in the FADT*
efi = Use efi reset_system runtime service
pci = Use the so-called “PCI reset register”, CF9
force = Avoid anything that could hang.
根据我的经验,其中一个参数(带有上面的星号)应该能够在 90% 的时间内解决您的挂起(或冻结)问题:reboot=bios
或reboot=acpi
。
系统启动后,您可以通过发出以下命令来验证参数是否正确传递:
cat /proc/cmdline
输出:
root=/dev/sda ro vga=791 quiet reboot=bios
您可以在 Linux 内核源代码中的 reboot.c 文件中找到上述所有参数的列表。
默认情况下,Linux 内核使用 reboot=kbd 方法,即尝试查找键盘控制器并向其发出重置/关机命令。但有些系统(例如某些基于 Intel Atom 处理器的机器)没有键盘控制器,需要上述修复。如果您仔细阅读 reboot.c 文件,您会发现戴尔、索尼、惠普等一些主流机器需要上述“reboot=”修复。我想有时使用内核参数修复问题比在 BIOS 中修复更容易。
您还可以使用每个参数的首字母(如“[]”括号中所示):
reboot=b # for reboot=[b]ios
reboot=a # for reboot=[a]cpi
并且您可以同时传递多个参数,Linux 内核将按照指定的顺序尝试:
reboot=a,b,k,c # for reboot=acpi,bios,kbd,cold
功劳归于库沙尔·库尔瓦尔。