k3m*_*tra 6 linux partitioning
我收到了一台新的华硕 BR1100FKA 笔记本电脑作为礼物。该型号的主驱动器为 128GB eMMC。尝试安装 EndeavourOS,然后出现错误。安装程序在格式化为 ext4 时抱怨“输入/输出”错误。
快进一个月了,我还是想不通。作为替代方案,我进行了永久性 USB 随身碟安装。不过,32GB 的空间并不是很宽容。
这是我尝试过的:
在实时 USB 环境中使用 GParted 对其进行格式化。GParted 在任何更改分区位置、大小和文件系统的操作上都会或多或少地抛出相同的错误。不过 NTFS 是个例外。返回Input/Output error while syncing device
,但挂载后分区自动固定。
从 Windows 10 进行格式化。我试过傲梅助手、易我分区工具、DiskGenius,还有一个我忘了的工具。除非我在 Win10 上故意操作 C: 盘,否则傲梅助手不会格式化为 ext4。这样,傲梅就会在Win PE模式下进行操作,并且不知何故成功了。然而,生成的 ext4 分区很容易出现随机错误。这是一个列表:
/home
通过已安装的 Thunar 文件管理器从目录复制文件gvfs
不会返回错误。然而,尝试通过 /etc/fstab 挂载它们总是失败,并让我进入紧急模式。只有在注释掉 /etc/fstab 中的负责行后才允许我正常启动。返回后手动安装它们无法读取超级块。
使用rsync
with-v
选项,我可以偶尔看到 的几行EXT4 ERROR
,但滚动得太快了。也许我稍后会尝试抓住它。
cp
命令更稳定,通常不会出现错误。但它确实得到了相同的 /etc/fstab 错误。抛出的错误是输入/输出错误。
dd
命令非常不稳定,最终结果是I/O error
ddrescue
从未出现过错误,但复制操作系统分区意味着之后需要修复该分区。据我所知,Win10 上不可能。
因为 Calamares 默认首先格式化分区,所以我尝试进行普通 Arch 安装。通过 pacstrap安装base
、linux-lts
、 和 时linux-firmware
,会抛出几个 I/O 错误,下载完成后 pacstrap 会停止而不安装
后来尝试fsck
开车。经过一长串错误后,fsck
最终得到了I/O Error
一个一致的修复(目前无法重新创建,错误列表意味着我需要按 Enter 按钮大约一个小时,或者自动按下并必须观看最后一个错误,还需要 30 分钟。)
BIOS 更新我通过 ASUS 的 EZ Smart Flash 实用程序手动更新了 BIOS。固件是从 Win10 上的 MyASUS 应用程序下载的。没有太多的区别。
禁用 TPM。没什么区别,只是我无法像平常一样登录Win10。
手动格式化。使用mkfs.ext4
带有选项的命令-v
。这是错误:Writing superblocks and filesystem accounting information: mkfs.ext4: Input/output error while writing out and closing file system.
许多关于 I/O 错误的 Google 结果显示硬件故障,尽管我怀疑情况是否如此。我还阅读了很多有关从 eMMC 启动的内容,但我想首先解决它们的格式化问题。有些人已经通过 BIOS 设置解决了这个问题,而我的 BIOS 设置中不存在这些设置。
我尝试过 KDE-Neon 和 EndeavourOS 中的 Gparted。
任何帮助,将不胜感激!
我的 ASUS BR1100FKA、128GB eMMC 和 Ubuntu 20.04 也有同样的情况。
笔记本电脑似乎有 eMMC 控制器,但 CQE 实现存在缺陷。
从Linux 内核版本 5.5开始,可以通过指定模块debug_quirks=0x20000
选项来使系统避免使用 CQE sdhci
。(是sdhci.h0x20000
中 SDHCI_QUIRK_BROKEN_CQE 标志的值)。正确传播该选项后,我能够在这台笔记本电脑的 eMMC 驱动器上安装和使用带有 ext4 rootfs 的 Ubuntu 20.04。
有几种常见方法可以将选项推送到系统,具体取决于您所处的情况:
方式1:卸载模块并使用指定的选项重新加载。
sudo modprobe -r sdhci_pci
sudo modprobe -r sdhci
sudo modprobe sdhci debug_quirks=0x20000
sudo modprobe sdhci_pci
Run Code Online (Sandbox Code Playgroud)
当系统在引导期间不访问 eMMC 驱动器时,此方法有效。例如,您正处于某种 Linux 安装程序中,并且即将开始在 eMMC 驱动器上进行安装。
方式 2sdhci.debug_quirks=0x20000
:在内核命令行中指定选项。
这通常可以通过引导加载程序菜单来完成。当在启动过程中使用 eMMC 驱动器并且您没有机会通过/etc/modprobe.d
initramfs 刻录该选项时,这可能会节省时间。
方式三:使用/etc/modprobe.d
创建一个文件,/etc/modprobe.d/sdhci-disable-cqe.conf
其中包含:
options sdhci debug_quirks=0x20000
Run Code Online (Sandbox Code Playgroud)
这通常是永久调整模块加载行为的“正确”方法。然而,为了让它在早期启动时工作,应该确保配置文件到达 initrd 映像。执行此操作的方法可能因发行版而异。对于 Ubuntu,它通常sudo update-initramfs -u
在创建/编辑/etc/modprobe.d
.
PS:据我所知,debug_quirks 似乎是在常见内核构建上禁用 CQE 的唯一可用选项。该问题似乎很少见,通常在某些特定的非 x86 硬件上遇到。我真的很绝望,正准备订购 SSD,挖掘 sdhci 源代码以获取所有可用选项以响应一些(非 CQE 相关)debug_quirks 提到的想法就在最后一刻出现=)
归档时间: |
|
查看次数: |
4642 次 |
最近记录: |