
USB3.0及以上的U盘,当然2.0也没问题,如果不使用图形界面的话在使用archlinux启动盘之前需要用dd命令将U盘刻为启动盘,这样就导致整个U盘分区被dd修改,最明显的是第一个装有安装环境的分区被分配了一个iso9960标志并且使用cfdisk打开该设备是会有提示使用写命令是会丢失丢失该标志从而导致标签异常使得启动异常,而安装环境仅有600+M,白白浪费了该启动盘的其他空间,因为不可以新建分区。
另一方面,对于某些情况下,例如电脑的系统炸了,但是又要很快地进行某些工作的时候,例如运维、出差是别的电脑是win系统等情况时,需要尽快的使用linux操作系统的时候,如果有一个装在U盘里面的移动的linux操作系统就可以解决燃眉之急了,并且,在日常使用的时候也可以偶尔使用U盘里面的linux系统
一些想体验linux操作系统又怕把自己的电脑搞坏的人也可以使用这一方案进行双系统使用,而不是去使用linux live环境。
所以,在以上的需求之下,这一使用方案就从我的脑子应运而生了。
主要实现的基本想法就是通过将刻好的启动盘的内容复制出来后在重新格式化U盘重新分区并尽量将前两个分区模仿原有的启动盘方案,然后剩下的分区在重新利用。
,使用gparted或者blkid(Windows可以使用分区工具查看)查看U盘经过dd刻录之后的文件系统和标签。
之后使用mount命令将其第一和第二个分区挂载后将其内容复制出来
首先下载archlinux的iso镜像,然后使用dd命令刻录一个启动U盘。
sudo dd if=/path/to/archlinux/iso of=/path/to/your/Udisk/path/to/archlinux/iso是iso镜像路径/path/to/your/Udisk是要刻录的U盘,注意是整个U盘的设备,不要加上分区号!bs即block size可以直接用默认的windows系统下可以使用rufus的dd刻录安装环境分区内容和EFI分区内容复制出来安装环境分区内容目的是让新分区后U盘重设标签后内容能够保持正确EFI分区内容是因为dd默认刻录的时候分配的EFI太小了,只有64MB,而启动盘原有的启动内容本身就已经占用了45MB了,为了保证能够让新安装的linux共享的EFI分区能够有足够的空间,取药新分出一个500MB的EFI分区。#sdXY是U盘设备的第一个分区号
sudo mount /dev/sdXY /mnt
#下面步骤可以用文件管理器代替
cp -r /mnt path/to/save/files
umount -R /mnt#sdXY是U盘设备的第二个分区号
sudo mount /dev/sdXY /mnt
#下面步骤可以用文件管理器代替
cp -r /mnt path/to/save/files
umount -R /mntgparted,Windows下推荐Disk Ginunsmsdos格式,也就是MBR,划分出700M,500M,以及剩下空间的三个分区700M的分区格式化为fat32,卷标为ARCH_日期年月(如果是2020年2月的话就是ARCH_202002)500M分区格式化为fat32,卷标为ARCHISO_EFI。ext4,也可以不管,在安装linux系统的时候在用,也可以格式化为其他的分区格式作为他用,但是本文是用来安装linux的。示例

再次使用挂载命令将分区挂载,然后将对应的分区内容回复就行,需要注意的是,安装环境的分区卷标是ARCH_日期年月的,启动分区的卷标是ARCHISO_EFI的,不要恢复错误。