Ubuntu 很少能正确启动

Ubuntu 很少能正确启动

我有一台联想 W530 Thinkpad(配备 Nvidia k2000 GPU)。我最近安装了 Windows 10 和 Ubuntu 18.04 双系统。

每次我重启时,我都能正常看到 GRUB 菜单。但是,我大概只有六次左右才能启动到 Ubuntu。其他时候我的电脑就死机了(非常烦人)。

从 GRUB 菜单按下 Ubuntu 后,enter将会发生以下情况之一:

在所有这些情况下,按下ctl + alt + (f1-f12)都不起作用。

  • 我可以从 Ubuntu live USB 启动(这是我最初安装 Ubuntu 的方式)

  • 我曾尝试使用boot-repair(这没有什么区别)并且我曾尝试重新安装 Ubuntu 两次(这没有什么区别)。

  • 我已按照下面第一个答案中的建议更新了 BIOS v2.75。没什么变化。

  • 设置GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=off"确实允许我每次启动,但是我的笔记本电脑屏幕的分辨率极低,并且我的辅助显示器无法工作。

  • 我已安装并使用 Nvidia 430 驱动程序。启动时仍出现同样的冻结现象。

  • e我尝试在启动菜单出现时按下 ,在 GRUB 启动屏幕上(单独)设置以下参数:acpi_enforce_resources=laxacpi_enforce_resources=noacpi_os_name=Linuxacpi_os_name="Windows 2013",但没有任何变化(即仍然在启动时冻结,通常在屏幕上12xxx/2344x blocks blocks clean)。

我怀疑这是某种程度上与显卡有关因为如果在我的 BIOS 中我将 GPU 选项更改为integrated每次都能工作,但是,我需要我的 GPU 工作,所以这不是一个选项。

为什么这么难?请帮我结束我的痛苦!

谢谢

答案1

2019 年 6 月 25 日发布的 BIOS v2.75 更新可能会有所帮助...(您有 BIOS 2.62)...

https://support.lenovo.com/us/en/downloads/DS029169

更新#1:

在 BIOS 更新之前,您曾遇到过内核崩溃问题……所以如果您现在没有看到这个问题,而只是收到 ACPI 错误,那么问题已经得到了很大的改善。无论如何,启动到 Ubuntu Live 19.04 DVD/USB,看看效果是否更好。

更新 #2:

acpi=off 似乎有一定作用,但要关闭整个 acpi 系统就太麻烦了。以下是一些可能效果更好的 acpi 参数...

acpi=       [HW,ACPI,X86]
        Advanced Configuration and Power Interface
        Format: { force | off | strict | noirq | rsdt }
        force -- enable ACPI if default was off
        off -- disable ACPI if default was on
        noirq -- do not use ACPI for IRQ routing
        strict -- Be less tolerant of platforms that are not
            strictly ACPI specification compliant.
        rsdt -- prefer RSDT over (default) XSDT
        copy_dsdt -- copy DSDT to memory

        See also Documentation/power/pm.txt, pci=noacpi

acpi_apic_instance= [ACPI, IOAPIC]
        Format: <int>
        2: use 2nd APIC table, if available
        1,0: use 1st APIC table
        default: 0

acpi_backlight= [HW,ACPI]
        acpi_backlight=vendor
        acpi_backlight=video
        If set to vendor, prefer vendor specific driver
        (e.g. thinkpad_acpi, sony_acpi, etc.) instead
        of the ACPI video.ko driver.

acpi.debug_layer=   [HW,ACPI,ACPI_DEBUG]
acpi.debug_level=   [HW,ACPI,ACPI_DEBUG]
        Format: <int>
        CONFIG_ACPI_DEBUG must be enabled to produce any ACPI
        debug output.  Bits in debug_layer correspond to a
        _COMPONENT in an ACPI source file, e.g.,
            #define _COMPONENT ACPI_PCI_COMPONENT
        Bits in debug_level correspond to a level in
        ACPI_DEBUG_PRINT statements, e.g.,
            ACPI_DEBUG_PRINT((ACPI_DB_INFO, ...
        The debug_level mask defaults to "info".  See
        Documentation/acpi/debug.txt for more information about
        debug layers and levels.

        Enable processor driver info messages:
            acpi.debug_layer=0x20000000
        Enable PCI/PCI interrupt routing info messages:
            acpi.debug_layer=0x400000
        Enable AML "Debug" output, i.e., stores to the Debug
        object while interpreting AML:
            acpi.debug_layer=0xffffffff acpi.debug_level=0x2
        Enable all messages related to ACPI hardware:
            acpi.debug_layer=0x2 acpi.debug_level=0xffffffff

        Some values produce so much output that the system is
        unusable.  The "log_buf_len" parameter may be useful
        if you need to capture more output.

acpi_irq_balance [HW,ACPI]
        ACPI will balance active IRQs
        default in APIC mode

acpi_irq_nobalance [HW,ACPI]
        ACPI will not move active IRQs (default)
        default in PIC mode

acpi_irq_isa=   [HW,ACPI] If irq_balance, mark listed IRQs used by ISA
        Format: <irq>,<irq>...

acpi_irq_pci=   [HW,ACPI] If irq_balance, clear listed IRQs for
        use by PCI
        Format: <irq>,<irq>...

acpi_no_auto_ssdt   [HW,ACPI] Disable automatic loading of SSDT

acpi_os_name=   [HW,ACPI] Tell ACPI BIOS the name of the OS
        Format: To spoof as Windows 98: ="Microsoft Windows"

acpi_osi=   [HW,ACPI] Modify list of supported OS interface strings
        acpi_osi="string1"  # add string1 -- only one string
        acpi_osi="!string2" # remove built-in string2
        acpi_osi=       # disable all strings

acpi_pm_good    [X86]
        Override the pmtimer bug detection: force the kernel
        to assume that this machine's pmtimer latches its value
        and always returns good values.

acpi_sci=   [HW,ACPI] ACPI System Control Interrupt trigger mode
        Format: { level | edge | high | low }

acpi_serialize  [HW,ACPI] force serialization of AML methods

acpi_skip_timer_override [HW,ACPI]
        Recognize and ignore IRQ0/pin2 Interrupt Override.
        For broken nForce2 BIOS resulting in XT-PIC timer.

acpi_sleep= [HW,ACPI] Sleep options
        Format: { s3_bios, s3_mode, s3_beep, s4_nohwsig,
              old_ordering, nonvs, sci_force_enable }
        See Documentation/power/video.txt for information on
        s3_bios and s3_mode.
        s3_beep is for debugging; it makes the PC's speaker beep
        as soon as the kernel's real-mode entry point is called.
        s4_nohwsig prevents ACPI hardware signature from being
        used during resume from hibernation.
        old_ordering causes the ACPI 1.0 ordering of the _PTS
        control method, with respect to putting devices into
        low power states, to be enforced (the ACPI 2.0 ordering
        of _PTS is used by default).
        nonvs prevents the kernel from saving/restoring the
        ACPI NVS memory during suspend/hibernation and resume.
        sci_force_enable causes the kernel to set SCI_EN directly
        on resume from S1/S3 (which is against the ACPI spec,
        but some broken systems don't work without it).

acpi_use_timer_override [HW,ACPI]
        Use timer override. For some broken Nvidia NF5 boards
        that require a timer override, but don't have HPET

acpi_enforce_resources= [ACPI]
        { strict | lax | no }
        Check for resource conflicts between native drivers
        and ACPI OperationRegions (SystemIO and SystemMemory
        only). IO ports and memory declared in ACPI might be
        used by the ACPI subsystem in arbitrary AML code and
        can interfere with legacy drivers.
        strict (default): access to resources claimed by ACPI
        is denied; legacy drivers trying to access reserved
        resources will fail to bind to device using them.
        lax: access to resources claimed by ACPI is allowed;
        legacy drivers trying to access reserved resources
        will bind successfully but a warning message is logged.
        no: ACPI OperationRegions are not marked as reserved,
        no further checks are performed.

更新 #3:

通常,当您添加内核参数(如acpi=off)时,您会编辑/etc/default/grub,然后sudo update-grub。但是,如果您碰巧选择了一个错误的内核参数,并且您的机器无法正常启动,则很难恢复。

因此,我建议一种临时测试各种内核参数的方法,这些参数仅对当前启动有效。如果最终您找到一个可以解决所有问题的 acpi 内核参数,则可以将其设为永久参数。

在 GRUB 菜单上,选择所需的常规启动选项,然后按e进入编辑模式。找到字符串“quiet splash”并添加所需的内核参数,如“quiet splash acpi=off”,然后按control+xF10继续启动。

我建议首先尝试这些 acpi 参数...一次只能尝试一个...

acpi_enforce_resources=lax

acpi_enforce_resources=no

答案2

您可能需要关闭 ACPI

总结一下链接,/etc/default/grub改变行

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

到:

 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=off"

然后运行sudo update-grub

答案3

我能够通过添加dis_ucode_ldr启动选项在我的华硕 ZenBook 14 上解决这个问题。

临时解决办法是,进入 grub 菜单,然后按下e键,选择“Ubuntu”选项。在行末linux /boot...添加即可dis_ucode_ldr。输入F10key 继续启动。

如果此方法有效,则除非您更新 grub-boot 选项,否则每次启动时都需要执行此操作:1. 打开终端 2. 输入sudo gedit /etc/default/grub并点击enter 3. 输入您的密码 4. 更改GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"GRUB_CMDLINE_LINUX_DEFAULT="quiet splash dis_ucode_ldr" 5. 保存文件并退出gedit 6. 在终端中,输入sudo update-grub 7. 重新启动

根据这个答案:华硕 zenbook 15 (UX-533FD) 启动非常随机 ubuntu 19.04

我希望这有帮助。

相关内容