标签 libguestfs 下的文章

在前面的文章中, 我们已经提到, initrd 本身就是精简版的根盘文件系统, 主要目的是用于内核启动后 OS 环境的初始化, 比如你是 Soft Raid,需要在这个时候读取 /etc/fstab 文件,比如根盘文件在特定的 Raid 设备卷中的分区上, 需要预加载指定 Raid 驱动等等.总之这个环境主要用于真正用户 OS 启动之前的准备.

通常在各个发行版本都有各自的 initrd 的构建工具,各自的目的呢, 也仅限于我们上述提到的功能. 而我们是需要将整个 OS 塞到这个内存镜像中,所以稍微还是有区别,调研了下一些业界的实现, 这里的几个链接供参考:

上述链接可以看到, 一般是使用 https://virt-manager.org/和http://libguestfs.org/ 这两个项目的工具来构建镜像.可以尝试下这个方法, 完全可行, 但是有个问题是这个流程真的太长了, 比如要按上述流程构建的话, 需要用virt-install完整安装一遍目标 OS
, 继续用virt-sysprep对镜像做一遍清理, 将生成的镜像导入到 virt-builder, 继续在 KVM 虚拟机中配置一遍 OS 默认信息, 然后就可以将镜像更新到 virt-builder 基础镜像中, 然后拿到其他地方使用, 比如 Ramdisk boot/Vagrant/OpenStack/Docker中使用.

- 阅读剩余部分 -