我们迄今所做的

我们迄今所做的

如何在戴尔 Inspiron 14 7490笔记本电脑?

我的一个朋友在圣诞节收到了这台笔记本电脑,他想用它来安装 Linux。更具体地说,我们想安装 Kubuntu 19.10,但目前我们越来越绝望,愿意接受任何发行版。主要问题是笔记本电脑只有一个 SSD,但 Linux 无法检测到它,所以我们无法在安装程序中选择它。

我们迄今所做的

编辑:我们最后一次尝试是 2020-02-02

编辑(2020-04-09):BIOS v1.4.1 中仍然存在该问题。

  1. 下载并安装全部戴尔网站上的最新驱动程序。具体来说,我们更新了 BIOS 驱动程序:初始版本是1.1.1,我们安装的是 版本1.3.0。(该版本1.1.1甚至无法启动 Kubuntu 的实时 USB
  2. 下载kubuntu-19.10-desktop-amd64.iso官方网站。我们检查了校验和是否正确。
  3. 使用 Rufus 创建可启动的 USB 驱动器。我们将分区方案设置为MBR,目标系统设置为BIOS or UEFI,文件系统设置为FAT32
  4. 重新启动固件 (UEFI)
  5. 将 POST 时间设置为 5 秒
  6. 将“UEFI 启动路径安全”设置为Never
  7. 禁用安全启动(否则我们会收到Initramfs unpacking failed错误)。
  8. 应用更改
  9. 进入启动菜单(启动过程中按 F12)
  10. 选择 USB 驱动器。
  11. USB 驱动器启动到 grub。选择“启动 Kubuntu(安全图形)”,默认选项(“启动 Kubuntu”)会导致黑屏。
  12. 选择“试用 Ubuntu”,它会启动一个实时 USB 桌面会话。我们可以连接到 WiFi,使用 Firefox,打开终端。此时我们可以运行一些命令来更好地查看系统。以下是一些结果:

    ls -alR /dev
    

    输出

    lshw
    

    输出

    lsblk
    

    输出

    cat /var/log/syslog
    

    输出

  13. 运行“安装 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)上此部分的内容:

Inspiron SATA 操作

有两种模式:

  • “已禁用”:SSD 已完全禁用,您根本无法访问它。
  • “RAID”:这不会启用真正的 RAID(显然,这台笔记本电脑只有一个 SSD),但会启用 Intel RST(又名假 RAID)。也称为“AHCI+RAID”,因为它使用“重新映射的 AHCI”。

以前的戴尔笔记本电脑的 BIOS 有所不同。在我的戴尔 XPS 15 9560 上,我有以下菜单: XPS SATA 操作

它有一个额外的“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 的更新。如果有人找到解决方案,请回答这个问题。我对戴尔的笔记本电脑也感到失望,以后会更不愿意推荐它们。

参考

答案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 和其他操作系统的双启动系统时才使用以下方法:

  1. 在 BIOS 中设置您的伪 RAID(参见用户手册)。

  2. 从启动Debian 安装介质

  3. 将光标移动到Install启动菜单项(先不要点击Enter):

    1. 按下Tab编辑内核引导行。

    2. 添加dmraid=true到行尾。

    3. Enter

      注意:在 UEFI 安装程序中,您必须按下eTab并使用箭头键移动到第 4 行末尾(例如 x86_64 架构):

      • linux /install.amd/vmlinuz video=vesa:ywrap,mtrr vga=788 \ -- quiet

      添加dmraid=true到此行的末尾并按F10Ctrl+X运行安装程序。

      • linux /install.amd/vmlinuz video=vesa:ywrap,mtrr vga=788 \ -- quiet dmraid=true
  4. 像往常一样安装 Debian,直到进入磁盘分区程序。您将看到您的假 RAID 是一个带有令人困惑的长名称的磁盘。使用它就像它是一个单个磁盘一样,并以您想要的任何方式配置您的分区,包括 LVM 和相关分区。

  5. 完成安装。GRUB 安装可能会失败,但没关系;无论如何都需要重新安装 GRUB。如果 GRUB 安装失败,请选择“继续而不使用引导加载程序”以完成 Debian 安装。

  6. 按照 Debian 安装程序的指示重新启动。

  7. 再次使用 Debian 安装媒体启动。

  8. 在启动菜单中,转到Advanced Options,然后将光标移到“救援系统”(Enter暂时不要点击):

    1. 按下Tab编辑内核引导行。
    2. 在行尾添加“dmraid=true”(不带引号)。
    3. Enter
  9. 您将看到与安装屏幕类似的屏幕。浏览这些屏幕,直到系统要求您选择要挂载和使用的根文件系统。

  10. 选择第一个 /dev/dm-?(? 是一个数字)。您将获得命令提示符。

  11. (可选)bash在提示符中输入内容,以便更轻松地编辑命令行和命令历史记录。

  12. 修改 /etc/default/grub(例如nano /etc/default/grub)并取消注释 GRUB_DISABLE_LINUX_UUID=true(699437)。保存文件并退出编辑器。

  13. 输入update-grub并按回车键。这非常重要,因为否则 GRUB 启动菜单稍后将无法显示您刚刚安装的内核!

  14. 键入grub-install /dev/mapper/并再次按下 tab 键,您将获得假 raid 分区的名称。

    1. 完成grub-install /dev/mapper/整个假磁盘的名称。

      例如grub-install /dev/mapper/isw-jggdha7s-SYS(请注意,名称末尾没有数字)。您可能会看到类似/dev/mapper/isw-jggdha7s-SYSand /dev/mapper/isw-jggdha7s-SYS1、或/dev/mapper/isw-jggdha7s-Volume and 的内容/dev/mapper/isw-jggdha7s-Volume1。选择没有分区号的那个,然后按 Enter。

    2. 现在一切都应该安装正确且不会出现错误。

  15. 输入blkid | grep swap命令的结果来更改 /etc/fstab 中的条目。(例如nano /etc/fstab

    1. 例如:/dev/mapper/isw.. 到交换行上的 UUID="f7d88.."
  16. 输入exit(如果您执行了第 11 步,则输入两次)。现在您应该返回救援系统菜单。选择选项Reboot system。现在从您的假 RAID 启动,并查看 GRUB 启动您的新 Debian 安装。

相关内容