前言
去机房维护懒得带电脑,但是临时需要的系统引导、修复盘手头没有,就只能现做了。我能想到两个方案,而且有自己实际使用的实现,不过对于普通玩家来说稍显复杂,这里给一种普通桌面运维就能实现的方式——EtchDroid。
原理
随意举两种我曾经实际使用过的方法。例如比较早的运营商定制机年代,手机插入电脑之后能看到一个模拟的CD-ROM,镜像本身存储了手机的PC协同软件,安装之后一般可以实现对安卓手机的ADB驱动,以及通过此驱动对手机进行通讯录、短信、软件这类的管理。如果已经取得了手机的root权限,可以直接替换这个iso镜像文件本身,如果手机本身的存储足够,或者可以通过软连接的方式指向自己插入的TF卡的iso文件,就能够实现一个模拟的移动光驱。此方案模拟光驱,所以iso文件不需要特殊处理,直接使用即可,各类系统都能正常引导。如果手机本身没有定义类似的脚本,也有软件可以进行这样的模拟。
除了模拟光驱,还可以直接通过dd写盘的方式,通过手机的OTG功能给U盘、读卡器+内存卡、移动硬盘这些载体写入系统镜像,实现操作上对于技术不足的普通桌面运维初次上手难度较高,本文就介绍一个无需root,直接可用的写入方式。EtchDroid本身的实现与dd差异不大,而且目前没有太多的功能,还是比较可惜的,希望发展得更好吧,能实现Rufus的功能就更棒了。
下载
直接访问EtchDroid.app域名,就能看到下载地址了。下载完成后直接安装,然后就可用了。
使用方法
大部分的安卓手机OTG都是直接可用的,也有一些手机的OTG功能需要按需开启,需要先启用功能,才能检测到设备。
可以先插入代写入镜像的设备例如一个U盘。然后运行软件,反之也没有什么太大的问题。运行软件之后点击写入镜像,通过安卓本身的文件选择器,选择你存储的系统安装镜像iso。然后开始写入,写入之后就可以正常引导了。
局限性
为什么标题写了Linux系统镜像呢?
因为十几年前开始,Linux系统发行版普遍开始使用混合启动镜像,除了支持刻录光盘引导,也可以将镜像直接写入U盘这类的可启动设备用于引导安装过程。而年代更为久远的Linux发行版镜像,以及微软官方发布的Windows安装iso镜像是不可以用于这个用途的。无论是Rufus,或者是国产的商用软件UltraISO的写入启动镜像功能,在释放Windows镜像到可移动设备之前,还额外进行了处理提供了引导文件。
所以这款软件类似直接使用Linux下的dd写盘,是无法为Windows创建必须的引导条件的,创建普通Windows引导盘的结果就是无法引导。
解决方法也是有的,例如一些三方为此软件制作的镜像。自己制作也是比较简单的,后面再说。
除了对启动镜像本身要求之外,还要求镜像本身是未压缩的,因为这软件不处理解压过程。这也是非常令人感到棘手的,在一些场景会遇到。
比如说你需要为你的开发板比如树莓派4B准备一张写入系统镜像的TF卡,使用EtchDroid也是可以实现的。非常麻烦的是需要首先使用其他软件将下载得到的img.xz文件先行解压,然后选择解压后的文件才能写入。这一功能缺失也是相当遗憾的,这类的img文件往往在解压后都占用着数倍的体积,等同于需要写入到内存卡的写入量,需要占用设备相当大的存储空间。
除了上述的局限性,一些设备上可能也有问题,官方的issue描述,部分三星、华为的设备会无法使用。另外比较新的预览版也说了支持安卓15,说明比较旧的版本在安卓15上可能会有问题。不过从我个人手头的设备而言,能安装就能用,也没有出现issue中其他人提及的MIUI设备在运行中崩溃,至少我手头的几个小米、红米手机,十年前的与这两年发布的都是正常运行没什么异常表现,制作的启动U盘也都可以正常启动。
还有一些镜像本身的问题,使用这个软件也无法解决。例如ProxmoxVE的安装iso可以使用U盘或者T卡搭配读卡器或者设备内置读卡器插入T卡,而写入移动硬盘无法引导的问题,使用这个写入一样是存在的,与使用普通桌面PC系统Windows或者Linux、MACOS创建的相同。
引导Windows镜像
局限性说到了软件类似dd的方式只能使用支持混合引导方式的iso,或者本身就可以启动的img文件,那么没有方法制作Windows安装盘了么?
非也。对我而言,我有相当多的方式去实现。例如首先随意写入一个Linux发行版的安装镜像例如AlmaLinux 8.10 minimal,然后通过修改isolinux.cfg文件,修改启动菜蛋,添加后续的引导过程拉起Windows的安装过程。方法相当多,随意举一个。
在这里说一个简单操作方式:使用一些PE,比如wepe这类的比较干净的PE,下载运行后导出iso,然后复制到手机备用。可以进PE安装系统,也可以利用一些PE提供的ISO引导功能引导原版Windows安装镜像