我遇到了一个以前从未遇到过的奇怪问题。首先是硬件:
HP x360 Spectre Kaby Lake(i7-7500u)Ubuntu 17.10 64 位
笔记本电脑在 Windows 和 Ubuntu 之间进行双启动。在设置中,我将 Ubuntu 作为默认设置,因此我可以从 grub 中选择 Windows 或 Ubuntu。但是,当我打开笔记本电脑或重新启动时,系统会按预期进入 Grub,但随后会冻结。倒计时停留在 10 秒,无需输入。
奇怪的是,如果我按 F9 调出 UEFI 启动菜单,并选择第一个条目 (Ubuntu),grub 会加载并正常工作。我搞不清楚让安装程序在不干预的情况下启动 Ubuntu EFI 条目与我从 F9 启动菜单中选择它有什么区别。
更新:添加其他信息
/boot/efi 下的文件:
root@localhost:/boot/efi# find .
.
./EFI
./EFI/Microsoft
./EFI/Microsoft/Boot
./EFI/Microsoft/Boot/bg-BG
./EFI/Microsoft/Boot/bg-BG/bootmgfw.efi.mui
./EFI/Microsoft/Boot/bg-BG/bootmgr.efi.mui
./EFI/Microsoft/Boot/boot.stl
./EFI/Microsoft/Boot/bootmgfw.efi
./EFI/Microsoft/Boot/bootmgr.efi
./EFI/Microsoft/Boot/cs-CZ
./EFI/Microsoft/Boot/cs-CZ/bootmgr.efi.mui
./EFI/Microsoft/Boot/cs-CZ/memtest.efi.mui
./EFI/Microsoft/Boot/cs-CZ/bootmgfw.efi.mui
./EFI/Microsoft/Boot/da-DK
./EFI/Microsoft/Boot/da-DK/bootmgr.efi.mui
./EFI/Microsoft/Boot/da-DK/memtest.efi.mui
./EFI/Microsoft/Boot/da-DK/bootmgfw.efi.mui
./EFI/Microsoft/Boot/de-DE
./EFI/Microsoft/Boot/de-DE/bootmgr.efi.mui
./EFI/Microsoft/Boot/de-DE/memtest.efi.mui
./EFI/Microsoft/Boot/de-DE/bootmgfw.efi.mui
./EFI/Microsoft/Boot/el-GR
./EFI/Microsoft/Boot/el-GR/bootmgr.efi.mui
./EFI/Microsoft/Boot/el-GR/memtest.efi.mui
./EFI/Microsoft/Boot/el-GR/bootmgfw.efi.mui
./EFI/Microsoft/Boot/en-GB
./EFI/Microsoft/Boot/en-GB/bootmgfw.efi.mui
./EFI/Microsoft/Boot/en-GB/bootmgr.efi.mui
./EFI/Microsoft/Boot/en-US
./EFI/Microsoft/Boot/en-US/bootmgr.efi.mui
./EFI/Microsoft/Boot/en-US/memtest.efi.mui
./EFI/Microsoft/Boot/en-US/bootmgfw.efi.mui
./EFI/Microsoft/Boot/es-ES
./EFI/Microsoft/Boot/es-ES/bootmgr.efi.mui
./EFI/Microsoft/Boot/es-ES/memtest.efi.mui
./EFI/Microsoft/Boot/es-ES/bootmgfw.efi.mui
./EFI/Microsoft/Boot/es-MX
./EFI/Microsoft/Boot/es-MX/bootmgfw.efi.mui
./EFI/Microsoft/Boot/es-MX/bootmgr.efi.mui
./EFI/Microsoft/Boot/et-EE
./EFI/Microsoft/Boot/et-EE/bootmgfw.efi.mui
./EFI/Microsoft/Boot/et-EE/bootmgr.efi.mui
./EFI/Microsoft/Boot/fi-FI
./EFI/Microsoft/Boot/fi-FI/bootmgr.efi.mui
./EFI/Microsoft/Boot/fi-FI/memtest.efi.mui
./EFI/Microsoft/Boot/fi-FI/bootmgfw.efi.mui
./EFI/Microsoft/Boot/fr-CA
./EFI/Microsoft/Boot/fr-CA/bootmgfw.efi.mui
./EFI/Microsoft/Boot/fr-CA/bootmgr.efi.mui
./EFI/Microsoft/Boot/fr-FR
./EFI/Microsoft/Boot/fr-FR/bootmgr.efi.mui
./EFI/Microsoft/Boot/fr-FR/memtest.efi.mui
./EFI/Microsoft/Boot/fr-FR/bootmgfw.efi.mui
./EFI/Microsoft/Boot/hr-HR
./EFI/Microsoft/Boot/hr-HR/bootmgfw.efi.mui
./EFI/Microsoft/Boot/hr-HR/bootmgr.efi.mui
./EFI/Microsoft/Boot/hu-HU
./EFI/Microsoft/Boot/hu-HU/bootmgr.efi.mui
./EFI/Microsoft/Boot/hu-HU/memtest.efi.mui
./EFI/Microsoft/Boot/hu-HU/bootmgfw.efi.mui
./EFI/Microsoft/Boot/it-IT
./EFI/Microsoft/Boot/it-IT/bootmgr.efi.mui
./EFI/Microsoft/Boot/it-IT/memtest.efi.mui
./EFI/Microsoft/Boot/it-IT/bootmgfw.efi.mui
./EFI/Microsoft/Boot/ja-JP
./EFI/Microsoft/Boot/ja-JP/bootmgr.efi.mui
./EFI/Microsoft/Boot/ja-JP/memtest.efi.mui
./EFI/Microsoft/Boot/ja-JP/bootmgfw.efi.mui
./EFI/Microsoft/Boot/ko-KR
./EFI/Microsoft/Boot/ko-KR/bootmgr.efi.mui
./EFI/Microsoft/Boot/ko-KR/memtest.efi.mui
./EFI/Microsoft/Boot/ko-KR/bootmgfw.efi.mui
./EFI/Microsoft/Boot/lt-LT
./EFI/Microsoft/Boot/lt-LT/bootmgfw.efi.mui
./EFI/Microsoft/Boot/lt-LT/bootmgr.efi.mui
./EFI/Microsoft/Boot/lv-LV
./EFI/Microsoft/Boot/lv-LV/bootmgfw.efi.mui
./EFI/Microsoft/Boot/lv-LV/bootmgr.efi.mui
./EFI/Microsoft/Boot/memtest.efi
./EFI/Microsoft/Boot/nb-NO
./EFI/Microsoft/Boot/nb-NO/bootmgr.efi.mui
./EFI/Microsoft/Boot/nb-NO/memtest.efi.mui
./EFI/Microsoft/Boot/nb-NO/bootmgfw.efi.mui
./EFI/Microsoft/Boot/nl-NL
./EFI/Microsoft/Boot/nl-NL/bootmgr.efi.mui
./EFI/Microsoft/Boot/nl-NL/memtest.efi.mui
./EFI/Microsoft/Boot/nl-NL/bootmgfw.efi.mui
./EFI/Microsoft/Boot/pl-PL
./EFI/Microsoft/Boot/pl-PL/bootmgr.efi.mui
./EFI/Microsoft/Boot/pl-PL/memtest.efi.mui
./EFI/Microsoft/Boot/pl-PL/bootmgfw.efi.mui
./EFI/Microsoft/Boot/pt-BR
./EFI/Microsoft/Boot/pt-BR/bootmgr.efi.mui
./EFI/Microsoft/Boot/pt-BR/memtest.efi.mui
./EFI/Microsoft/Boot/pt-BR/bootmgfw.efi.mui
./EFI/Microsoft/Boot/pt-PT
./EFI/Microsoft/Boot/pt-PT/bootmgr.efi.mui
./EFI/Microsoft/Boot/pt-PT/memtest.efi.mui
./EFI/Microsoft/Boot/pt-PT/bootmgfw.efi.mui
./EFI/Microsoft/Boot/qps-ploc
./EFI/Microsoft/Boot/qps-ploc/memtest.efi.mui
./EFI/Microsoft/Boot/ro-RO
./EFI/Microsoft/Boot/ro-RO/bootmgfw.efi.mui
./EFI/Microsoft/Boot/ro-RO/bootmgr.efi.mui
./EFI/Microsoft/Boot/ru-RU
./EFI/Microsoft/Boot/ru-RU/bootmgr.efi.mui
./EFI/Microsoft/Boot/ru-RU/memtest.efi.mui
./EFI/Microsoft/Boot/ru-RU/bootmgfw.efi.mui
./EFI/Microsoft/Boot/sk-SK
./EFI/Microsoft/Boot/sk-SK/bootmgfw.efi.mui
./EFI/Microsoft/Boot/sk-SK/bootmgr.efi.mui
./EFI/Microsoft/Boot/sl-SI
./EFI/Microsoft/Boot/sl-SI/bootmgfw.efi.mui
./EFI/Microsoft/Boot/sl-SI/bootmgr.efi.mui
./EFI/Microsoft/Boot/sr-Latn-CS
./EFI/Microsoft/Boot/sr-Latn-CS/memtest.efi.mui
./EFI/Microsoft/Boot/sr-Latn-RS
./EFI/Microsoft/Boot/sr-Latn-RS/bootmgfw.efi.mui
./EFI/Microsoft/Boot/sr-Latn-RS/bootmgr.efi.mui
./EFI/Microsoft/Boot/sv-SE
./EFI/Microsoft/Boot/sv-SE/bootmgr.efi.mui
./EFI/Microsoft/Boot/sv-SE/memtest.efi.mui
./EFI/Microsoft/Boot/sv-SE/bootmgfw.efi.mui
./EFI/Microsoft/Boot/tr-TR
./EFI/Microsoft/Boot/tr-TR/bootmgr.efi.mui
./EFI/Microsoft/Boot/tr-TR/memtest.efi.mui
./EFI/Microsoft/Boot/tr-TR/bootmgfw.efi.mui
./EFI/Microsoft/Boot/uk-UA
./EFI/Microsoft/Boot/uk-UA/bootmgfw.efi.mui
./EFI/Microsoft/Boot/uk-UA/bootmgr.efi.mui
./EFI/Microsoft/Boot/zh-CN
./EFI/Microsoft/Boot/zh-CN/bootmgr.efi.mui
./EFI/Microsoft/Boot/zh-CN/memtest.efi.mui
./EFI/Microsoft/Boot/zh-CN/bootmgfw.efi.mui
./EFI/Microsoft/Boot/zh-HK
./EFI/Microsoft/Boot/zh-HK/bootmgr.efi.mui
./EFI/Microsoft/Boot/zh-HK/memtest.efi.mui
./EFI/Microsoft/Boot/zh-HK/bootmgfw.efi.mui
./EFI/Microsoft/Boot/zh-TW
./EFI/Microsoft/Boot/zh-TW/bootmgr.efi.mui
./EFI/Microsoft/Boot/zh-TW/memtest.efi.mui
./EFI/Microsoft/Boot/zh-TW/bootmgfw.efi.mui
./EFI/Microsoft/Boot/BOOTSTAT.DAT
./EFI/Microsoft/Boot/Fonts
./EFI/Microsoft/Boot/Fonts/chs_boot.ttf
./EFI/Microsoft/Boot/Fonts/cht_boot.ttf
./EFI/Microsoft/Boot/Fonts/jpn_boot.ttf
./EFI/Microsoft/Boot/Fonts/kor_boot.ttf
./EFI/Microsoft/Boot/Fonts/malgunn_boot.ttf
./EFI/Microsoft/Boot/Fonts/malgun_boot.ttf
./EFI/Microsoft/Boot/Fonts/meiryon_boot.ttf
./EFI/Microsoft/Boot/Fonts/meiryo_boot.ttf
./EFI/Microsoft/Boot/Fonts/msjhn_boot.ttf
./EFI/Microsoft/Boot/Fonts/msjh_boot.ttf
./EFI/Microsoft/Boot/Fonts/msyhn_boot.ttf
./EFI/Microsoft/Boot/Fonts/msyh_boot.ttf
./EFI/Microsoft/Boot/Fonts/segmono_boot.ttf
./EFI/Microsoft/Boot/Fonts/segoen_slboot.ttf
./EFI/Microsoft/Boot/Fonts/segoe_slboot.ttf
./EFI/Microsoft/Boot/Fonts/wgl4_boot.ttf
./EFI/Microsoft/Boot/Resources
./EFI/Microsoft/Boot/Resources/bootres.dll
./EFI/Microsoft/Boot/Resources/en-US
./EFI/Microsoft/Boot/Resources/en-US/bootres.dll.mui
./EFI/Microsoft/Boot/Resources/fr-FR
./EFI/Microsoft/Boot/Resources/fr-FR/bootres.dll.mui
./EFI/Microsoft/Boot/kd_02_10df.dll
./EFI/Microsoft/Boot/kd_02_10ec.dll
./EFI/Microsoft/Boot/kd_02_1137.dll
./EFI/Microsoft/Boot/kd_02_14e4.dll
./EFI/Microsoft/Boot/kd_02_15b3.dll
./EFI/Microsoft/Boot/kd_02_1969.dll
./EFI/Microsoft/Boot/kd_02_19a2.dll
./EFI/Microsoft/Boot/kd_02_8086.dll
./EFI/Microsoft/Boot/kd_07_1415.dll
./EFI/Microsoft/Boot/kd_0C_8086.dll
./EFI/Microsoft/Boot/kdstub.dll
./EFI/Microsoft/Boot/BCD
./EFI/Microsoft/Boot/BCD.LOG
./EFI/Microsoft/Boot/BCD.LOG1
./EFI/Microsoft/Boot/BCD.LOG2
./EFI/Microsoft/Recovery
./EFI/Microsoft/Recovery/BCD
./EFI/Microsoft/Recovery/BCD.LOG
./EFI/Microsoft/Recovery/BCD.LOG1
./EFI/Microsoft/Recovery/BCD.LOG2
./EFI/Boot
./EFI/Boot/bootx64.efi
./EFI/Boot/fbx64.efi
./EFI/HP
./EFI/HP/SystemDiags
./EFI/HP/SystemDiags/CryptRSA.efi
./EFI/HP/SystemDiags/CryptRSA32.efi
./EFI/HP/SystemDiags/SystemDiags.efi
./EFI/HP/SystemDiags/SystemDiags32.efi
./EFI/HP/SystemDiags/SystemDiags.sig
./EFI/HP/SystemDiags/SystemDiags32.sig
./EFI/HP/SystemDiags/SystemDiags.s09
./EFI/HP/SystemDiags/SystemDiags32.s09
./EFI/HP/SystemDiags/SystemDiags.s12
./EFI/HP/SystemDiags/SystemDiags32.s12
./EFI/HP/SystemDiags/SystemDiags.s14
./EFI/HP/SystemDiags/SystemDiags32.s14
./EFI/HP/SystemDiags/HpSysDiags.efi
./EFI/HP/SystemDiags/HpSysDiags32.efi
./EFI/HP/SystemDiags/HpSysDiags.s09
./EFI/HP/SystemDiags/HpSysDiags32.s09
./EFI/HP/SystemDiags/HpSysDiags.s12
./EFI/HP/SystemDiags/HpSysDiags32.s12
./EFI/HP/SystemDiags/HpSysDiags.s14
./EFI/HP/SystemDiags/HpSysDiags32.s14
./EFI/HP/BIOSUpdate
./EFI/HP/BIOSUpdate/CryptRSA.efi
./EFI/HP/BIOSUpdate/CryptRSA32.efi
./EFI/HP/BIOSUpdate/HpBiosUpdate.efi
./EFI/HP/BIOSUpdate/HpBiosUpdate32.efi
./EFI/HP/BIOSUpdate/HpBiosUpdate.sig
./EFI/HP/BIOSUpdate/HpBiosUpdate32.sig
./EFI/HP/BIOSUpdate/HpBiosUpdate.s09
./EFI/HP/BIOSUpdate/HpBiosUpdate32.s09
./EFI/HP/BIOSUpdate/HpBiosUpdate.s12
./EFI/HP/BIOSUpdate/HpBiosUpdate32.s12
./EFI/HP/BIOSUpdate/HpBiosUpdate.s14
./EFI/HP/BIOSUpdate/HpBiosUpdate32.s14
./EFI/HP/BIOSUpdate/HpBiosMgmt.efi
./EFI/HP/BIOSUpdate/HpBiosMgmt32.efi
./EFI/HP/BIOSUpdate/HpBiosMgmt.s09
./EFI/HP/BIOSUpdate/HpBiosMgmt32.s09
./EFI/HP/BIOSUpdate/HpBiosMgmt.s12
./EFI/HP/BIOSUpdate/HpBiosMgmt32.s12
./EFI/HP/BIOSUpdate/HpBiosMgmt.s14
./EFI/HP/BIOSUpdate/HpBiosMgmt32.s14
./EFI/HP/BIOS
./EFI/HP/BIOS/Current
./EFI/HP/BIOS/Current/0827E.sig
./EFI/HP/BIOS/Current/0827E.bin
./EFI/HP/BIOS/New
./EFI/HP/BIOS/Previous
./EFI/ubuntu
./EFI/ubuntu/fw
./EFI/ubuntu/fwupx64.efi
./EFI/ubuntu/grubx64.efi
./EFI/ubuntu/grub.cfg
./EFI/ubuntu/shimx64.efi
./EFI/ubuntu/mmx64.efi
./EFI/ubuntu/BOOTX64.CSV
./System Volume Information
./System Volume Information/IndexerVolumeGuid
对于 gdisk,我假设这是所请求的?
root@localhost:/boot/efi# gdisk /dev/nvme0n1
GPT fdisk (gdisk) version 1.0.1
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): p
Disk /dev/nvme0n1: 1000215216 sectors, 476.9 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): A2E05477-2E06-47DD-865C-60C3C58F9E7B
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1000215182
Partitions will be aligned on 2048-sector boundaries
Total free space is 12909 sectors (6.3 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 534527 260.0 MiB EF00 EFI system partition
2 534528 567295 16.0 MiB 0C01 Microsoft reserved ...
3 567296 768909311 366.4 GiB 0700 Basic data partition
4 975620096 977627135 980.0 MiB 2700 Basic data partition
5 977627136 1000204287 10.8 GiB 0700 Basic data partition
6 768909312 975620095 98.6 GiB 8300
Command (? for help):
fdisk 的输出结果如下:
root@localhost:/boot/efi# fdisk --list
Disk /dev/nvme0n1: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A2E05477-2E06-47DD-865C-60C3C58F9E7B
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 534527 532480 260M EFI System
/dev/nvme0n1p2 534528 567295 32768 16M Microsoft reserved
/dev/nvme0n1p3 567296 768909311 768342016 366.4G Microsoft basic data
/dev/nvme0n1p4 975620096 977627135 2007040 980M Windows recovery environmen
/dev/nvme0n1p5 977627136 1000204287 22577152 10.8G Microsoft basic data
/dev/nvme0n1p6 768909312 975620095 206710784 98.6G Linux filesystem
Partition table entries are not in disk order.
答案1
不幸的是,Boot Repair 不能正确处理 NVMe 磁盘,因此 BootInfo 报告中缺少大量重要信息;但是,它确实ubuntu
在 NVRAM 启动管理器列表中显示了一个条目,因此系统不太可能通过其他路径启动——除了您有一个后备引导加载程序 ( EFI/BOOT/bootx64.efi
),从该目录中的另一个文件 ( fbx64.efi
) 来看,它可能是在固件发生故障时恢复引导设置的工具。此工具及其配置和使用方法在我的 rEFInd 文档中进行了描述(尽管它不是 rEFInd 的一部分;该页面只是fbx64.efi
我所知道的最完整和最简洁的描述):
http://www.rodsbooks.com/refind/bootcoup.html#fallback
您的计算机可能丢失了其启动顺序变量,通过 Shim(作为EFI/BOOT/bootx64.efi
)和进行启动fbx64.efi
,然后将启动过程转移到常规ubuntu
条目(启动一个第二如果您在启动时先启动 Shim,然后启动 GRUB),然后 Shim 会挂起;但是当ubuntu
直接启动该条目时,它可以正常工作。这可能是因为启动了两个 Shim 副本时存在错误,因为fbx64.efi
它本身导致了问题,或者由于其他原因。这个假设只是推测,它基于很少的证据和相当多的假设。它还假设您的固件存在错误,并且很可能在 Shim、fbx64.efi
和/或 GRUB 中也存在错误。但是,这与您看到的症状一致,而且这也是您唯一能想到的解释。如果发生了这种情况,您可以尝试以下诊断程序或修复问题:
- 重命名
EFI/BOOT
ESP 上的目录-- 如果您重命名此目录,问题仍然如旧,那么我的假设就是错误的。(这是因为重命名EFI/BOOT
将阻止计算机尝试启动fbx64.efi
存储在该目录中的 Shim;因此如果它继续启动,则一定是启动顺序和启动变量被保留并遵守,这与我的假设相反。)但是,如果计算机开始正确启动,或直接启动到 Windows,则这证明它一直以这种方式启动,我的假设就更有可能成立。您应该能够将目录重命名为以EFI/BOOT
恢复(失败的)启动操作,这对于接下来的三次修复是必要的...... - 禁用安全启动-- 禁用安全启动将改变 Shim 的工作方式,如果我的假设正确的话,这可能让一切正常运转——否则可能没有任何效果。即使我的假设是正确的,这种改变也只有在故障是由安全启动导致的情况下才会起作用,而事实可能并非如此。
- 复制
EFI/ubuntu/grub*
到EFI/BOOT
-- 如果您将 GRUB (grubx64.efi
) 及其配置文件 (grub.cfg
) 从EFI/ubuntu
复制到EFI/BOOT
,则 Shim inEFI/BOOT
(即EFI/BOOT/bootx64.efi
) 应直接从 启动 GRUBEFI/BOOT
,而不必通过fbx64.efi
。如果我的假设正确,这应该可以绕过该问题。 - 使用 rEFInd- 我的rEFInd 启动管理器启动方式与 GRUB 完全不同,因此可能不会受到此问题的影响。但是,在安全启动处于活动状态的情况下,您需要在 MOK 列表中注册一个或两个密钥,如rEFInd 安全启动文档。此外,您可能需要删除或重命名
EFI/ubuntu/BOOTX64.CSV
ESP 上的文件。(将其重命名为不以 结尾的文件名.CSV
,或任何大小写变体,如.csv
。)原因是fbx64.efi
查找.CSV
文件以重新生成基于 NVRAM 的启动项,因此如果该文件存在,则有 50/50 的机会它会优先于BOOT.CSV
rEFInd 为自己创建的文件,从而导致系统启动到 GRUB 并继续以您描述的方式失败。 - 更新固件-- 如果您的制造商提供了比您现在使用的固件更新的固件(可能称为“BIOS”),您可以升级它。不过,这只是瞎猜;您的问题听起来很奇怪,不太可能在固件更新中得到解决。
我建议您尝试将第一个选项作为诊断。如果启动行为如我所述发生变化,则可以恢复到原来的EFI/BOOT
状态,然后尝试接下来的三个选项中的任何一个——或者如果第一次尝试失败,则尝试多个选项。另一方面,如果重命名EFI/BOOT
没有效果,那么接下来的两个选项不太可能起作用(尽管禁用安全启动可能会有所帮助)。在这种情况下,安装 rEFInd 成为最有可能起作用的选项,但这真的是盲目的尝试。即使第一个诊断选项不会改变行为,更新固件也可能有效,但正如我所说,这是一个绝望的选择,无论原因是什么都不太可能起作用。尽管如此,如果您没有其他选择,还是值得尝试的(或者即使您有其他选择——固件更新可以修复各种问题、添加功能并提高性能)。
祝你好运解决问题!
答案2
问题似乎是多个 GRUB 安装不匹配。安装在 /EFI/ubuntu/grubx64.efi 的 GRUB 不起作用,而安装在 /EFI/Boot/bootx64.efi 的 GRUB 起作用。
您应该能够通过将 GRUB 重新安装到 ESP 来纠正此问题。
sudo grub-install --efi-directory=/boot/efi /dev/sda
答案3
我在完全相同的硬件型号上遇到了完全相同的问题。正如原始发帖者所说,应用更新后问题消失。不幸的是,问题再次出现。解决方法是按照此页面上的说明禁用安全启动:https://support.hp.com/us-en/document/c04784866