本指南将引导您完成在 NTFS 文件系统上安装 Endeavouros Linux 的全过程。这需要使用一个新的内核模块 ntfsplus,并对安装程序 (Calamares) 和新安装的系统进行一系列修补。
准备工作
在开始之前,请确保您已经准备好以下环境:
- 一个 Endeavouros Linux 或其他arch发行版的 Live 环境(例如 CachyOS)。
- 网络连接,以便下载软件包和驱动源码。
- 目标硬盘已准备好用于安装的分区。
第一阶段:在 Live 环境中准备安装程序
在这一阶段,我们将在 Live USB 环境中安装 ntfsplus 驱动,并修补 Calamares 安装程序,使其能够识别和处理 NTFS 分区。
1. 安装 ntfsplus 内核模块
首先,需要安装 git 和 dkms 工具,然后从 GitHub 克隆并安装 ntfsplus-dkms-git 模块。
# 更新软件包列表并安装依赖sudo pacman -Syu --noconfirm git dkms
# 克隆 ntfsplus 仓库git clone https://github.com/lateautumn233/ntfsplus-dkmscd ntfsplus-dkms
# 编译并安装模块makepkg -si --noconfirm2. 修补 Calamares 安装程序
为了让 Calamares 能够将系统安装到 NTFS 分区,需要修改其 mount 和 fstab 模块。
-
修补
/usr/lib/calamares/modules/mount/main.py这个补丁的目的是让挂载模块支持ntfsplus文件系统。您需要使用文本编辑器(如nano或vim)打开文件并进行修改。Terminal window sudo nano /usr/lib/calamares/modules/mount/main.py修改参考: 根据此补丁,找到相关代码行,将
ntfsplus添加到支持的文件系统列表中。 -
修补
/usr/lib/calamares/modules/fstab/main.py同样,修补fstab模块,使其能为ntfsplus根分区生成正确的/etc/fstab条目。Terminal window sudo nano /usr/lib/calamares/modules/fstab/main.py修改参考: 根据此补丁,修改代码以确保在生成 fstab 时正确处理
ntfsplus文件系统类型。
3. 运行 Calamares 进行安装
完成上述准备工作后,您现在可以启动 Calamares 安装程序,并像往常一样进行安装。在分区阶段,您应该能够选择一个 NTFS 分区作为根 (/) 文件系统。
第二阶段:在新安装的系统中配置 ntfsplus
安装完成后,不要立即重启。我们需要进入新安装的系统(chroot 环境)进行一些关键配置,以确保系统能够从 NTFS 分区成功启动。
1. 挂载新系统并进入 Chroot 环境
将您刚刚安装的根分区和引导分区挂载到 Live 环境中。
# 假设 /dev/sda2 是您的根分区,/dev/sda1 是您的 EFI/boot 分区# 请根据您的实际情况替换 sda?sudo mount -t ntfsplus /dev/sda2 /mntsudo mount /dev/sda1 /mnt/boot
# 进入 chroot 环境sudo arch-chroot /mnt
# 如果进入chroot后 /boot 没有挂载请新开一个终端重新挂载2. 安装 ntfsplus 内核模块
在 chroot 环境中,重复第一阶段中安装 ntfsplus 模块的步骤:
# 安装依赖pacman -Syu --noconfirm git dkms# 克隆 ntfsplus 仓库git clone https://github.com/lateautumn233/ntfsplus-dkmscd ntfsplus-dkmsmakepkg -si --noconfirm3. 在 Initrd 中预加载 ntfsplus 模块
为了让内核在启动早期就能读取 NTFS 根分区,需要强制 dracut 将 ntfsplus 模块包含在初始 RAM 磁盘 (initrd) 中。
# 创建 dracut 配置文件echo 'force_drivers+="ntfsplus"' | sudo tee /etc/dracut.conf.d/ntfsplus.conf
# 重新生成 initrdsudo dracut-rebuild4. 更新 GRUB 内核启动参数
最后,修改 GRUB 引导程序的配置,明确告诉内核根文件系统的类型是 ntfsplus。
# 使用 sed 命令自动在内核参数末尾添加 rootfstype=ntfsplussudo sed -i '/^GRUB_CMDLINE_LINUX_DEFAULT=/s/"$/ rootfstype=ntfsplus"/' /etc/default/grub
# 重新生成 GRUB 配置文件sudo grub-mkconfig -o /boot/grub/grub.cfg完成
所有步骤完成后,您就可以退出 chroot 环境,卸载分区并重启电脑了。
exitsudo umount -R /mntreboot您的系统现在应该能够成功地从 NTFS 分区启动。
参考链接
部分信息可能已经过时