前言
最近在做grub+efi启动U盘,遇到个问题,就是我U盘比较大想分3个区做到空间合理利用,又隐藏文件的目的,但是我分区的时候遇到了问题,我的构思是分一个100MB空间做efi驱动分区(fat32),一个10GB分区(ext4)拿来存放系统iso以及MAXDOS.img、liveCD.iso、ubuntu.iso、winpe.wim等资料,另外一个20GB拿来做平时的U盘使用。嗯。。。理想是美好的,但是现实是残酷的,当我分区后引导也安装完成,并且能正常驱动进入grub选择页面,然鹅当我把U盘插入到windows系统下(linux下就不说了完全兼容U盘分区,但是windows只支持加载U盘众多分区中的一个分区)时问题来了,windows始终加载了那个ext4的盘符。
问题分析以及解决方案
经过我很多次的折腾最终发现其实U盘分区时建立分区的顺序非常重要比如linux下将U盘SDD分了两个区(SDD1[ext4],SDD2[fat32]),这是时候windows下读取的其实是SDD1,不管分区位置顺序,只管创建分区的时间前后,嗯其实问题就很好解决了,将所有分区删除,然后先建立fat32分区,再建立ext4分区,再安装grub到fat32盘即可。
后记
其实这个问题很好理解,windows始终读取分区表中第一个分区作为加载的分区。