在U盘上安装完整Linux系统的技术指南

本文详细介绍了如何使用QEMU虚拟机和dd命令在U盘上安装完整的Linux系统,包含ESP分区处理、UEFI引导配置等关键技术步骤,适合需要制作便携式Linux系统的用户参考。

如何在U盘上安装完整的Linux系统

我想从U盘启动一个完整的系统,不仅仅是一个临时的安装介质,而是一个功能完整的持久化系统。

安装难度如何?事实证明并不太难,但需要一些非常规工具。

我最初找到的教程(1和2)都采用了相当直接的方法:

  • 准备2个U盘
  • 将安装程序烧录到其中一个
  • 启动安装程序
  • 禁用ESP分区
  • 安装到另一个U盘
  • 启用ESP分区

为什么这里需要ESP分区技巧?原来在U盘上安装会扰乱硬盘的启动引导。但如果关闭了’esp’标志,它就不会被触动。当然也会无法启动,所以之后重新启用很重要。

后来我发现了另一篇文章,使用了更让我喜欢的不同流程。它使用qemu虚拟机,从文件创建硬盘,启动安装ISO,进行安装,最后将文件烧录到U盘。这种方法更少涉及魔法操作,我很喜欢。

准备硬盘镜像(我用了13.5 GB):

1
dd if=/dev/zero of=kubuntu.img bs=1M count=13500

安装edk2_ovmf包。我试了两次才明白这是必需的,但这很合理。默认情况下qemu以传统BIOS模式启动,这意味着安装程序会使用MBR风格的启动分区,这在UEFI笔记本电脑上无法工作。通过使用这个固件,启动将使用UEFI,因此安装程序会安装UEFI兼容的系统。

变量会改变,所以需要复制:

1
cp /usr/share/edk2/x64/OVMF_VARS.4m.fd .

最后启动机器:

1
qemu-system-x86_64 -enable-kvm -cpu host -smp cores=4 -cdrom kubuntu-24.04.2-desktop-amd64.iso -drive format=raw,file=kubuntu.img -m 4096 -vga cirrus -drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2/x64/OVMF_CODE.4m.fd -drive if=pflash,format=raw,file=OVMF_VARS.4m.fd

可能还有其他参数可以让安装更快,但上面的配置对我来说已经足够好了。

最后,将生成的镜像烧录到U盘(在三次确认/dev/sda是正确目标后):

1
sudo dd if=kubuntu.img of=/dev/sda bs=1M status=progress

就这样,我可以重启并从U盘启动我的新安装系统了。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计