目前,我已经安装了 arch 安装(纯 arch + hyprland),因此我的 /(根目录)位于我的 NVME SSD 上(由于 Windows 双启动,空间很小),但我的 /home 目录位于我的 SSHD 上(SSD 和 HDD 的混合,但可以安全地将其视为 HDD),因为它具有更大的存储空间。但是,由于安装了更多软件包、驱动程序等,它变得太大而无法放在我的 SSD 上,因此我遵循了一些指南问库本图,超级用户以及其他一些基本上说了同样事情的网站。按照他们的说法,我启动了一个活动磁盘,安装了两个驱动器。以下是系统上的所有驱动器和分区供参考(root 是 nvme0n1p8,home 是 sda5,usr 的目标是 sda6)运行rsync -avh "/mnt/usr/" "sda6mnt/"
,编辑 etc/fstab 并重新启动。但是重启后我得到了这个屏幕
为了解决这个问题,我回到了活动磁盘,但这次安装了所有驱动器像这样(即,所有操作完成后它们应该如何)。然后运行genfstab -U /mnt >> /mnt/etc/fstab
,vim
进入 fstab 并对其进行编辑以删除之前的设置,最后得到这我觉得它看起来不错,所以我重新启动了,但遇到了与之前相同的错误。
所以是的,我希望有人能帮助我找出这里出了什么问题,或者我在分区或创建 fstab 时犯了一些错误,提前谢谢!
附言:对于图片,我感到很抱歉,但是我没有采集卡,而且显然无法在 Arch 恢复外壳中截取屏幕截图 :)
答案1
由于 /usr 包含大部分主操作系统,因此无法真正挂载经过同一操作系统(例如,您还没有 /usr/bin/mount),而是必须在启动过程的早期由 initramfs 挂载。虽然发行版过去支持通过常规 fstab 稍后挂载 /usr,但 Arch(或 Debian、Gentoo 或 Fedora)不再如此。
使用常规 Arch mkinitcpio,编辑/etc/mkinitcpio.conf
以启用usr
钩子;然后使用重建 initramfs mkinitcpio -P
。请参阅文章. (尽管由于您正在使用 Btrfs,您可能通常希望将 initramfs 完全切换到“systemd”。)
(但实际上,我认为将 / 的其余部分保留在 SSD 中没有什么意义。没有 /usr,SSD 上只剩下 /var 和 /etc,这两个文件都很小而且很少使用——在台式电脑上,将 /var 存储在最快的磁盘上似乎是一种浪费;基本上它只有日志。我宁愿投资购买更大的 NVMe SSD——现在你几乎可以以同样的价格买到 2TB——或者缩小 Windows 安装以腾出空间给 /usr。)
还请记住,rsync -a
不会复制所有元数据;您还需要-HAX
保留硬链接、文件 ACL 和扩展属性。(例如,有几个“setuid 类”二进制文件已分配文件功能。)