准备系统

准备系统

我有一个全新的 SSD,我想在其上安装 12.04,并使用 nilfs 作为根分区的文件系统。

我找不到任何简单的方法来实现这一点。如果我从 12.04 LiveCD 启动,我可以安装 nilfs-tools(我必须通过 wget 下载它——我似乎无法通过 apt-get 下载它),并且我能够通过 mkfs.nilfs 将分区格式化为 nilfs。

但是,当我单击“安装 Ubuntu”并启动安装程序并告诉它我想要选择分区时,它会重新格式化它并且只给我其他文件系统(reiser、ext 等)的选项,但没有 nilfs,即使已经安装了 nilfs 支持(我能够在我的分区上创建一个 nilfs 文件系统)。

有什么提示或建议吗?

答案1

正如 Roland Taylor 指出的那样,您可以先使用安装程序安装到 ext4 分区,然后将其传输到 nilfs 分区。

为系统准备一个空闲分区。它将被挂载为/,我们称之为 NILFS。

并且您需要另一个分区来安装 Ubuntu,它可以是 USB 磁盘或磁盘上的另一个分区,我们称之为 EXT。

您不需要单独的/boot分区,因为 Ubuntu 12.04 附带的 grub 1.99 已经支持从 nilfs2 文件系统启动。

准备系统

您可以按照常规方式将 Ubuntu 安装到 EXT。

安装 nilfs-tools,并将空闲分区格式化为 nilfs2。

默认情况下,Ubuntu 的 initramfs 没有 nilfs 内核模块。

您需要重新生成它:

sudo echo nilfs2 >> /etc/initramfs-tools/modules
sudo update-initramfs -u

转移系统

启动 Ubuntu 12.04 livecd。安装 nilfs-tools。(您需要先在软件中心更改源apt-get install nilfs-tools。)

挂载 EXT 和 NILFS,然后复制您的系统:

sudo cp -ax /media/EXT/* /media/NILFS/*

(您可以改用rsync。)

然后编辑你的/media/NILFS/etc/fstab,更改行/。(更改uuid,ext4->nilfs2。我建议添加noatime,async,discardSSD的挂载选项。)

然后编辑 grub 配置并重新安装 grub。请参阅Ubuntu 维基如何使用 grub 进行调整。请注意,您需要在重新安装之前更改 grub 配置文件。我建议 chroot 到 NILFS,然后立即dpkg-reconfigure更改配置并重新安装。

现在您可以重新启动基于 nilfs2 的 Ubuntu 12.04!:-)


虽然我没有测试过,但上述说明应该有效。事实上,我已经使用相同的方法将我的 Ubuntu 10.04 从 ext3 转移到 nilfs2。由于 Ubuntu 10.04 的 grub 不支持从 nilfs2 启动,因此我使用 ext2 作为/boot。但最近我下载了 Ubuntu 12.04 live cd 来测试 12.04 是否在我的上网本上运行。所以刚才我将其复制/boot//分区,更改了我的 grub 配置文件并使用 12.04 的 grub-install 重新安装 grub。它成功了!(所以也许我可以将无用的分离启动分区变成一个小的交换分区?)

PS 如果您不喜欢这种方法,您可以尝试通过 debootstrap 安装。我认为它也可以。

答案2

本质上您还不能这样做,因为安装程序不支持它。

从技术上来说,将安装从 EXT4 转移到 NILFS(安装到分区然后转移到 NILFS 分区)是可行的,但您还需要一个单独的启动分区(正如您所见,这变得越来越复杂)。

从本质上讲,目前答案是“你不能”。另外,请记住 NILFS 还很新,因此不太可能支持这样的举措。

相关内容