在U盘上安装linux开发环境

单位有个项目用arm9,使用一个老版本的交叉编译GCC,原有开发环境构建于32位linux。

最近该项目开始二开,领到新电脑的员工发现只能使用uefi引导,导致原指定操作系统无法使用,体现为安装后无法启动系统。

经过分析和查阅,认为是该32位系统无法支持uefi,鉴于后续64位系统将成为主流,有必要将开发环境迁移到64位系统上。初步考虑mint 19.4,安装后无法启动,提示init文件错误,查阅认为efi问题。gentoo尝试成功,但配置过程复杂且不适合作为公司开发环境。选择轻量级lubuntu,发现制作的u盘可以被正确识别和启动,但是同样存在安装到硬盘后无法启动系统的情况,于是考虑通过u盘做过渡,使用本地硬盘+u盘启动的方式,考虑u盘主要用于引导,其中内核部分放在内存,而基本工具可以使用硬盘分区,速度影响应该可接受。

首先修改u盘根目录下/boot/下grub.cfg的参数,删除quiet和splash(便于观察启动信息),删除boot=casper(该选项是通知内核使用liveCD方式启动,最后会导致系统以CDROM方式挂载。

为了能够具有一定的通用性,使用UUID指定启动盘,root=UUID=(号码),UUID通过blkid 获得 blkid /dev/sdc2

测试U盘内核似乎有一些问题,使用安装后的boot分区的内核和image替代。

启动后发现启动项,选择后,可正确引导进入linux桌面,根分区可读写。

后续花絮:

在安装环境中发现lubuntu各种缺东西,一怒之下换成了kubunut,直接安装成功(哭笑不得脸)。