如何在戴尔 Inspiron 14 7490笔记本电脑?
我的一个朋友在圣诞节收到了这台笔记本电脑,他想用它来安装 Linux。更具体地说,我们想安装 Kubuntu 19.10,但目前我们越来越绝望,愿意接受任何发行版。主要问题是笔记本电脑只有一个 SSD,但 Linux 无法检测到它,所以我们无法在安装程序中选择它。
我们迄今所做的
编辑:我们最后一次尝试是 2020-02-02
编辑(2020-04-09):BIOS v1.4.1 中仍然存在该问题。
- 下载并安装全部这戴尔网站上的最新驱动程序。具体来说,我们更新了 BIOS 驱动程序:初始版本是
1.1.1
,我们安装的是 版本1.3.0
。(该版本1.1.1
甚至无法启动 Kubuntu 的实时 USB) - 下载
kubuntu-19.10-desktop-amd64.iso
自官方网站。我们检查了校验和是否正确。 - 使用 Rufus 创建可启动的 USB 驱动器。我们将分区方案设置为
MBR
,目标系统设置为BIOS or UEFI
,文件系统设置为FAT32
。 - 重新启动固件 (UEFI)
- 将 POST 时间设置为 5 秒
- 将“UEFI 启动路径安全”设置为
Never
- 禁用安全启动(否则我们会收到
Initramfs unpacking failed
错误)。 - 应用更改
- 进入启动菜单(启动过程中按 F12)
- 选择 USB 驱动器。
- USB 驱动器启动到 grub。选择“启动 Kubuntu(安全图形)”,默认选项(“启动 Kubuntu”)会导致黑屏。
选择“试用 Ubuntu”,它会启动一个实时 USB 桌面会话。我们可以连接到 WiFi,使用 Firefox,打开终端。此时我们可以运行一些命令来更好地查看系统。以下是一些结果:
ls -alR /dev
lshw
lsblk
cat /var/log/syslog
运行“安装 Kubuntu”程序。在选择硬盘驱动器的步骤时,它崩溃了。
我们陷入困境
主要问题是无法检测到笔记本电脑的 SSD。它会阻止安装程序格式化硬盘并安装 Linux。有多个报告称人们遇到了这个问题(见下面的链接)。我将总结我对这个问题的理解,并希望如果我们找到可行的解决方案,可以发布一个可行的解决方案。
缩略词
首先,一些缩写:
- SATA是连接硬盘的技术。它可以在多个模式,例如 AHCI 或 Intel RST。
- 高级智能接口是 Intel 标准化的 SATA 模式。它充当硬件和操作系统之间的接口:所有操作系统都可以使用它与硬盘进行通信。
- 袭击是一种将多个物理硬盘用作单个逻辑(“虚拟”)硬盘的技术。通过在多个物理驱动器上复制数据,它可以更好地抵御硬盘故障。
- 英特尔快速存储技术(英特尔 RST)是一款 Windows 应用程序,“可为配备 SATA 磁盘的系统提供更好的性能和可靠性”。它具有一项名为“RAID”的功能,这是一种使用单个驱动器的软件解决方案。在 Intel 之外,它通常被称为“假 RAID”,因为它需要特殊的软件支持,而不是使用多个物理驱动器并对操作系统透明。Linux 不支持此功能。
戴尔 Inspiron 14 7490 BIOS
BIOS 菜单有一个“系统配置”部分,允许配置硬盘如何向操作系统显示:“SATA 操作”。以下是此笔记本电脑(Bios 版本 1.2.1)上此部分的内容:
有两种模式:
- “已禁用”:SSD 已完全禁用,您根本无法访问它。
- “RAID”:这不会启用真正的 RAID(显然,这台笔记本电脑只有一个 SSD),但会启用 Intel RST(又名假 RAID)。也称为“AHCI+RAID”,因为它使用“重新映射的 AHCI”。
以前的戴尔笔记本电脑的 BIOS 有所不同。在我的戴尔 XPS 15 9560 上,我有以下菜单:
它有一个额外的“AHCI”选项,而 Dell Inspiron 14 7490(BIOS v1.2.1)上没有这个选项。
Linux 目前不支持 Intel RST,并且要求 SATA 模式为 AHCI。否则无法与 SSD 通信。由于 Inspiron 笔记本电脑上没有直接的“AHCI”,因此无法安装 Linux。
潜在解决方案
BIOS 更新以再次提供 AHCI 选项
我一直使用装有 Linux 的戴尔笔记本电脑,因为它们以“可以正常工作”而闻名。当我帮助朋友选择笔记本电脑时,这种声誉就体现出来了:我期望安装过程能够顺利进行。但他们发布了一款带有新 BIOS 的笔记本电脑,甚至无法安装 Linux,这种情况严重损害了他们的形象。戴尔论坛上有多个帖子抱怨这个问题(这是评论最多的)。
一种可能的解决方案是戴尔直接发布一个解锁“AHCI”SATA 模式的 BIOS 更新。这样就可以选择此模式并安装 Linux,而不会出现其他问题。这将是理想的解决方案,但我不知道戴尔对这些问题的反应如何。我甚至不知道他们是否会发布这种补丁。打开有关此问题的支持请求可能会提高 BIOS 更新的优先级。
为 Linux 内核添加 Intel RST 支持
另一个解决方案是让 Linux 在 Intel RST 模式下工作。我在 Linux 内核邮件列表上找到的最新讨论日期为 2019 年 6 月。本次讨论中提议的补丁被拒绝。
据我所知,在 Linux 内核中支持 Intel RST 很难,原因有二:协议复杂且缺乏文档。启用“Intel RST”时,BIOS 确实会通过“重新映射的 AHCI”公开 SSD,该 AHCI 看起来像 AHCI,但行为却不像 AHCI。内核可以检测到 SSD 处于重新映射模式,但无法使用它。它无法使用它,因为这项技术目前记录不足,导致他们无法正确实施。在上面发布的系统日志中,我们可以看到它警告驱动器已重新映射的步骤:
Feb 2 18:21:34 kubuntu kernel: [ 1.082521] ahci 0000:00:17.0: version 3.0
Feb 2 18:21:34 kubuntu kernel: [ 1.083006] ahci 0000:00:17.0: Found 1 remapped NVMe devices.
Feb 2 18:21:34 kubuntu kernel: [ 1.083007] ahci 0000:00:17.0: Switch your BIOS from RAID to AHCI mode to use them.
Feb 2 18:21:34 kubuntu kernel: [ 1.083096] ahci 0000:00:17.0: AHCI 0001.0301 32 slots 16 ports 3 Gbps 0x0 impl RAID mode
Feb 2 18:21:34 kubuntu kernel: [ 1.083098] ahci 0000:00:17.0: flags: 64bit ncq sntf pm clo only pio slum part deso sadm sds apst
我不知道内核何时会添加对 AHCI 重新映射 SSD 的支持,甚至不知道是否会添加。如果发布的更多笔记本电脑只有“Intel RST”选项,那么它们可能别无选择。
我还没有尝试过内核补丁。如上所述,我正在帮助一位想要使用 Ubuntu 的朋友:由于这不是我的笔记本电脑,所以我宁愿避免尝试自定义补丁。
使用 dmraid
对此问题的一条评论提到,英特尔 RST 得到支持dmraid
。
此主题要求启动到实时 USB,并在启动安装程序之前运行以下命令:“dmraid --erase_metadata --raid_devices /dev/XdY
其中 X 和 Y 表示您正在使用的 SSD”。
此解决方案的问题是 Linux 根本看不到 SSD。lsblk
仅显示loop0
和/dev/sda
(对应于 pendrive)。查看时/dev
,没有/dev/sdb
或/dev/nvmeX
驱动器。
结论
最终我的问题是“如何在这台笔记本电脑上安装 Kubuntu(或 Ubuntu)?“。
我的结论是,目前无法在这台笔记本电脑上安装 Linux。我们必须等待戴尔或 Linux 的更新。如果有人找到解决方案,请回答这个问题。我对戴尔的笔记本电脑也感到失望,以后会更不愿意推荐它们。
参考
- 戴尔支持线程
- 其他主题
- LKML 讨论
- 内核补丁用于检测 AHCI 重新映射的设备(但不使用它们)
答案1
我刚刚在这台笔记本电脑上安装了 Lubuntu 20.04。这是可能的,但并不容易。
Linux 内核中的 Intel RST 支持
正如你在问题中所说,有人提出了一些补丁来使 Linux 能够在 Intel RST 模式下工作。这些补丁在官方 Linux 分支中被拒绝,但提出这些补丁的 Daniel Drake 正在研究无尽的操作系统,基于Linux的操作系统,它们维护此补丁的更新版本在他们的 Linux 内核版本可在 GitHub 上找到。该内核基于 Ubuntu 的内核,每次更新时他们都会在其上重新设置一组补丁,其中包括支持英特尔重新映射的 NVMe 设备的补丁。
知道这一点后,您现在有两个选择:
安装 Endless OS
此时我们已经很绝望了,我们会接受任何分配
如果你不介意的话,你可以直接安装 Endless OS,它应该可以立即使用。转到https://endlessos.com/download/,下载基本多语言图像,然后按照 Linux 的说明创建 USB 记忆棒。 或者按照 Windows 中的说明创建 USB 记忆棒。
在 Ubuntu 上使用 Endless OS 的内核
这个要困难得多,你需要大量的技术知识。
这个想法是从GitHub 上的 Endlessm 存储库,并将这些包用作 Ubuntu 上的自定义内核。
为此,你必须拉取 Git 存储库:
git pull https://github.com/endlessm/linux/
安装必要的构建依赖项:
sudo apt install build-essential fakeroot
sudo apt build-dep linux
构建包:
cd linux/
fakeroot debian/rules clean
fakeroot debian/rules binary
经过很长时间后,您将在父目录中创建许多 .deb 文件。
从那里,您可以使用它们来创建自定义 Ubuntu 安装 CD(我还没有这样做,但应该是可能的)。
或者,您可以使用 Endless OS 实时版本来:
- 启动 shell(Alt-F2 并输入 xterm 以进入终端),
- 使用 cfdisk 和 mkfs.ext4 对 NVME 驱动器进行分区,
- 在新分区上解压 Ubuntu 的最小实例(我使用了 Lubuntu 的 squashfs),
- 在其中挂载绑定/ dev / run / var / run,
- 在其中挂载 /proc /sys,
- chroot 进入它并进行最低限度的配置以获得一个工作系统(/etc/hosts、/etc/hostname、/etc/resolv.conf、/etc/fstab、安装和配置 grub、配置 tzdata 和键盘配置、添加新用户)
- 在 chroot 中安装新的内核包。
您可能必须关闭内核中的安全启动才能在内核上启动。
我不会详细描述整个过程,因为我不记得所有步骤,但我设法使用自定义内核获得了一个可运行的系统。nouveau 在挂起/重启时出现了一些问题,但由于我安装了 nvidia 驱动程序,所以一切都正常。
Nvme 驱动器被识别为 /dev/nvme0n1。从 dmesg:
[ 0.630319] intel-nvme-remap 0000:00:17.0: Found 1 remapped NVMe devices
[ 0.630357] intel-nvme-remap 0000:00:17.0: PCI host bridge to bus 10000:00
lsblk 输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 953,9G 0 disk
├─nvme0n1p1 259:1 0 680M 0 part /boot/efi
├─nvme0n1p2 259:2 0 128M 0 part
├─nvme0n1p3 259:3 0 105,7G 0 part
├─nvme0n1p4 259:4 0 990M 0 part
├─nvme0n1p5 259:5 0 15G 0 part
├─nvme0n1p6 259:6 0 1,3G 0 part
├─nvme0n1p7 259:7 0 30G 0 part /
└─nvme0n1p8 259:8 0 800,1G 0 part /home
如果您使用自定义内核,您可能还希望固定您正在使用的版本,以避免在升级时将其替换为默认版本。
在 /etc/apt/preferences.d/linux-image-generic 中(我还没有测试过):
Package: linux-image-generic
Pin: release a=now
Pin-Priority: 501
警告
仅当您知道自己在做什么时才应使用此处描述的方法。Endless OS 内核中的内核补丁已被官方内核拒绝,我无法保证其质量。我无法保证它会长期维护并移植到新版本的内核。
如果您使用自定义内核安装 Ubuntu,则必须自行管理所有内核更新。我希望此修复只是暂时的,直到戴尔发布支持 AHCI 模式的 BIOS 版本,但这可能不会发生。
内核还包含其他您可能需要查看的补丁。您可能还必须从 Endlessm 存储库构建和安装其他软件包,例如 linux-firmware,因为其中一些补丁是为了添加对官方 Linux 内核目前不支持的新硬件的支持。
答案2
我已经订购了同样的笔记本电脑。它还没有到货。很遗憾就是这样。
我只是想让你知道,自从你发表原始帖子以来,戴尔已经为这款笔记本电脑发布了新的驱动程序。
https://www.dell.com/support/home/uk/en/ukbsdt1/drivers/driversdetails?driverid=2mt79
我不知道它是否能解决问题并添加 AHCI 支持。它没有列为功能,但可能值得下载以了解。
答案3
我认为这看起来很有希望:https://wiki.debian.org/DebianInstaller/SataRaid。我对这台笔记本电脑很感兴趣,所以我想知道它是否可以用。
具体来说,它建议你只需要将 dmraid=true 添加到内核启动选项中,然后它就应该能够看到设备
也许还值得尝试一下 Debian 安装程序,看看它是否有效,然后你至少知道它是否受 Linux 支持,并且应该可以在 ubuntu 中使用
仅当您想在同一个串行 ATA RAID 上拥有 Debian 和其他操作系统的双启动系统时才使用以下方法:
在 BIOS 中设置您的伪 RAID(参见用户手册)。
从启动Debian 安装介质。
将光标移动到
Install
启动菜单项(先不要点击Enter
):
按下
Tab
编辑内核引导行。添加
dmraid=true
到行尾。按
Enter
。注意:在 UEFI 安装程序中,您必须按下
e
键Tab
并使用箭头键移动到第 4 行末尾(例如 x86_64 架构):
linux /install.amd/vmlinuz video=vesa:ywrap,mtrr vga=788 \ -- quiet
添加
dmraid=true
到此行的末尾并按F10
或Ctrl+X
运行安装程序。
linux /install.amd/vmlinuz video=vesa:ywrap,mtrr vga=788 \ -- quiet dmraid=true
像往常一样安装 Debian,直到进入磁盘分区程序。您将看到您的假 RAID 是一个带有令人困惑的长名称的磁盘。使用它就像它是一个单个磁盘一样,并以您想要的任何方式配置您的分区,包括 LVM 和相关分区。
完成安装。GRUB 安装可能会失败,但没关系;无论如何都需要重新安装 GRUB。如果 GRUB 安装失败,请选择“继续而不使用引导加载程序”以完成 Debian 安装。
按照 Debian 安装程序的指示重新启动。
再次使用 Debian 安装媒体启动。
在启动菜单中,转到
Advanced Options
,然后将光标移到“救援系统”(Enter
暂时不要点击):
- 按下
Tab
编辑内核引导行。- 在行尾添加“dmraid=true”(不带引号)。
- 按
Enter
。您将看到与安装屏幕类似的屏幕。浏览这些屏幕,直到系统要求您选择要挂载和使用的根文件系统。
选择第一个 /dev/dm-?(? 是一个数字)。您将获得命令提示符。
(可选)
bash
在提示符中输入内容,以便更轻松地编辑命令行和命令历史记录。修改 /etc/default/grub(例如
nano /etc/default/grub
)并取消注释 GRUB_DISABLE_LINUX_UUID=true(699437)。保存文件并退出编辑器。输入
update-grub
并按回车键。这非常重要,因为否则 GRUB 启动菜单稍后将无法显示您刚刚安装的内核!键入
grub-install /dev/mapper/
并再次按下 tab 键,您将获得假 raid 分区的名称。
完成
grub-install /dev/mapper/
整个假磁盘的名称。例如
grub-install /dev/mapper/isw-jggdha7s-SYS
(请注意,名称末尾没有数字)。您可能会看到类似/dev/mapper/isw-jggdha7s-SYS
and/dev/mapper/isw-jggdha7s-SYS1
、或/dev/mapper/isw-jggdha7s-Volume
and 的内容/dev/mapper/isw-jggdha7s-Volume1
。选择没有分区号的那个,然后按 Enter。现在一切都应该安装正确且不会出现错误。
输入
blkid | grep swap
命令的结果来更改 /etc/fstab 中的条目。(例如nano /etc/fstab
)
- 例如:/dev/mapper/isw.. 到交换行上的 UUID="f7d88.."
输入
exit
(如果您执行了第 11 步,则输入两次)。现在您应该返回救援系统菜单。选择选项Reboot system
。现在从您的假 RAID 启动,并查看 GRUB 启动您的新 Debian 安装。