如何在 Ubuntu 21.10 中使用 Cloud-init 制作 Ubuntu 自动安装 ISO

如何在 Ubuntu 21.10 中使用 Cloud-init 制作 Ubuntu 自动安装 ISO

我有 20.04 进程,可以创建 ISO 文件。参考:https://gist.github.com/s3rj1k/55b10cd20f31542046018fcce32f103e

但是如果我尝试使用 ubuntu 21.10 进行同样的操作,提取的目录中会缺少一些文件。ubuntu 21.10 中有什么重大变化吗?

请帮助我使用 Cloud-init 自动安装创建 ISO。

答案1

总结:

用于xorriso -indev ubuntu.iso -report_el_torito as_mkisofs找出修补 ISO 后重建 ISO 所需的选项。

完整步骤:

假设您有一个“ ubuntu.iso”并且将创建一个新的“ ubuntu-autoinstall.iso”。

  1. 使用以下命令解压 ISO: mkdir new && bsdtar -C new -xf ubuntu.iso

    (安装libarchive-tools即可获取bsdtar

  2. 补丁new/boot/grub/grub.cfg如下:

    修改set timeout=30set timeout=1

    menuentry在所有其他内容之上添加一个新的,如下所示:

    menuentry "autoinstall" {
       set gfxpayload=keep
       linux  /casper/vmlinuz quiet autoinstall ds=nocloud\;s=/cdrom/server/ ---
       initrd /casper/initrd
    }
    
  3. 添加cloud-init文件如下(加密密码为“ ubuntu”):

    mkdir new/server
    touch new/server/meta-data
    cat << _EOF_ > new/server/user-data
    #cloud-config
    autoinstall:
      version: 1
      identity:
        hostname: ubuntu-server
        password: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0"
        username: ubuntu
    
  4. -report_el_torito创建一个新的 ISO(您的 ISO的输出可能有所不同;请进行相应编辑)

xorriso -as mkisofs --modification-date='2021101314195100' --grub2-mbr --interval:local_fs:0s-15s:zero_mbrpt,zero_gpt:'ubuntu.iso' --protective-msdos-label -partition_cyl_align off -partition_offset 16 --mbr-force-bootable -append_partition 2 28732ac11ff8d211ba4b00a0c93ec93b --interval:local_fs:2470124d-2478587d::'ubuntu.iso' -part_like_isohybrid -iso_mbr_part_type a2a0d0ebe5b9334487c068b6b72699c7 -c '/boot.catalog' -b '/boot/grub/i386-pc/eltorito.img' -no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info -eltorito-alt-boot -e '--interval:appended_partition_2_start_617531s_size_8464d:all::' -no-emul-boot -boot-load-size 8464 -isohybrid-gpt-basdat -o ubuntu-autoinstall.iso -V 'Ubuntu autoinstall' new/

长版本:

我开始搜索下位性,Ubuntu 的新安装程序。我特别想知道他们是如何构建 ISO 的,因为我遇到了和你一模一样的问题!在它的源代码中,我遇到了制作边缘iso它使用了一种很有前途的叫做livefs-编辑器。(我不能直接用它来做我想要的事情,但你会看到它提供了一个--添加自动安装配置选项可能正是我们想要的。)通过挖掘其代码,我偶然发现了神奇的 xorriso 选项“-report_el_torito as_mkisofs”,它回答了我们的问题!它试图准确地告诉你 ISO 是如何构建的。

相关内容