我能够启动一次,但无法复制全新安装。这是我尝试并发布的列表,希望其他人可以解决这个问题。
我采用了散弹枪方法 + 最终选择了使用 Calamares 作为安装程序的发行版。我将 /usr 分区为 ext4,因为 GRUB 的文件位于那里,而我在将 /usr 分区为 F2FS 时不断遇到问题。我猜想问题出在 GRUB 无法从 F2FS 文件系统读取其文件。
/boot/efi - FAT32
/usr - ext4
/ - F2FS
我提取了安装前的 ISO 并发出了以下命令:
add-apt-repository ppa:rodsmith/refind; apt update; apt install f2fs* libf2fs* gparted -y; apt install refind
/etc/initramfs-tools/modules 中加载的模块列表
crct10dif_pclmul
crc32_pclmul
libcrc32c
f2fs
然后用 保存update-iniramfs -u
。
现在启动到 Live CD。我尝试使用 kvpm 创建逻辑卷(并使用 mkfs.f2fs 将它们格式化为 f2fs),但安装写入失败。如果由于以下原因而失败,unpackfs
那么我会在仍在实时环境中时 chroot 到分区中:
mount /dev/sda2 /mnt
mount /dev/sda1 /mnt/boot/efi
mount --bind /dev /mnt/dev
. . .
chroot /mnt
apt install refind # or apt install refind --reinstall
cp -r /usr/share/refind/refind/ /boot/efi/EFI/refind
cd /boot/efi/EFI/refind/drivers_x64
curl -a http://efi.akeo.ie/downloads/efifs-1.3/x64/f2fs_x64.efi -o f2fs_x64.efi
我尝试过但失败的其他方法:
将整个驱动器作为 F2FS 运行,并使用 FAT32 启动分区,无法加载操作系统
将 ext 分区复制到 F2FS 失败。GRUB 2.02 无法正确读取 F2FS UUID。编辑 /boot/grub/grub.cfg 以将标签更改为 UUID 不起作用。
构建了 GRUB 2.03 的当前分支,但在运行时遇到失败
make check TESTS='f2fs_test'
;依赖项列表对于新手(我)来说是不完整的。将根分区为 ext4,然后将其余部分分区为 F2FS。GRUB 的文件位于 /usr。
尝试将启动格式化为 NTFS,以保留双启动 Windows 和符号链接 GRUB 所需文件的能力(FAT32 不行)。此方法无效,因为 NTFS 不被视为 ESP 分区,无论标志如何。
我使用的参考文献:
https://ubuntuforums.org/showthread.php?t=2326934&p=13705533#post13705533
https://github.com/void-linux/void-packages/issues/4436
http://www.rodsbooks.com/refind/
https://www.phoronix.com/scan.php?page=news_item&px=GRUB-Now-Supports-F2FS
答案1
警告:由于 F2FS 缺乏对 selinux 的支持,您可能无法启动桌面环境,据我所知,archlinux 支持 f2fs 作为根分区,Fedora linux 总是会失败,请在操作前先搜索一下
首先,你应该为 /boot 创建一个 512MB 的 ext4 分区,为 / 创建一个 f2fs 分区,我应该注意到 F2FS 无法缩小大小,我建议你创建一个比原始大小大几 GB 的分区
然后将 /boot 和 / 复制到新位置
# rsync -aAXv /boot /path/to/newboot/folder
# rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/newroot/folder
修改新的 fstab 文件,将 uuid 更改为新分区,您可以执行blkid
以检查新分区的 uuid
执行update-grub
生成新的启动选项
如果你堆叠在 rootfs 中,请尝试使用 fallback img 进行启动
当你启动到新系统时,通过执行重新安装 grubgrub-install