基于 Linux 的系统中的所有内容都是一个文件。每次安装 Ubuntu 时,我都会选择一个根分区。现在,我想创建一个根文件系统,但在一个文件中,例如~/ubuntu.img
. 我有另一个 Linux 发行版(基于 Ubuntu)作为主要操作系统。有没有办法安装(s)ubiquity并选择~/ubuntu.img
作为根文件系统?据我所知,安装程序将根文件系统安装在/target
并使用chroot
. 也许我可以在那里挂载我的根文件系统并手动安装?
我想这样做是因为:
- 我不想安装超过 1 个操作系统和双启动。
- 当我想编译一些项目时,我的主操作系统不支持某些包或存在一些依赖问题。
如果我能够以这种方式安装 Ubuntu,我将使用chroot
在根文件系统映像中安装软件包。
我已经设法从这个答案安装图像。您可以使用此链接下载它。
出于某种原因,我无法使用
parted
,cfdisk
或fdisk
. 我必须将映像刷入 16GB(或更大)的 USB 驱动器,然后使用dd
或 GNOME 磁盘实用程序复制根分区。因此,我将根分区复制到
~/ubuntu.img
并设置了 chroot 环境:我什至可以从 chroot 环境访问 USB 设备。
您可能已经注意到互联网连接只能部分工作 - 如果您指定 IP 地址,您可以 ping 任何服务器,但无法解析域。这个命令应该修复它:
这种方法的缺点是,如果您需要访问 USB 设备,您总是必须准备 chroot 环境。但是,这可以通过编写 shell 脚本来简化。
要在离开 chroot 环境后进行清理(并且那里没有运行任何进程):
我认为有一种方法可以在基本系统之上手动安装 Ubuntu。有类似的工具
debootstrap
,但我没有尝试过。随意发布另一个答案:)您的建议本质上是虚拟机背后的想法。为什么不简单地使用 VirtualBox 并将 Ubuntu 安装为 VirtualBox VM?