UEFI安装系统

UEFI安装系统

说明

应该是2016年之前的记录,之前没有写文档记录的习惯,都是随手记录的txt文件,所以没有图片、格式等。甚至现在看来有些地方逻辑不通(可能还因为年少轻狂,有些偏颇的话语),但是这些与现在的我不重要了,所以也不打算再复现、推理,重新编辑等,仅仅是在旧硬盘中发现,删除之前觉得可能还有点价值,记录下来吧。

1:我的步骤如下->硬盘改成gpt,硬盘开头分了个fat的esp分区,DiskGenius提示建的,格式是fat16,因为100多m不纠结格式了。之后是分win10的分区(msr分区是为了开启动态磁盘用的,大概类似软raid方案,分不分自己决定),再往下是份一个fat32的分区,把win10的iso解压进去。进bios开启uefi启动,会自动引导安装。

得出的结果:对于win8,win10的可以这样在通过硬盘的fat分区进行硬盘安装,因为看网上说u盘安装就是把iso解压U盘的fat分区即可,所以自己想硬盘安装应该也可以,测试确实可行;是否必须改成gpt分区?虽然没测试,但是u盘既然能引导,那么说明mbr应该可以。只是据说是windows限定uefi+gpt才能引导windows,网上好像也有uefi+mbr的方法。

2:安装win10后不会再进入安装模式,想再进做过如下测试,删除esp分区的文件,还是可以启动win10(好像没格式化esp分区,想不通为什么还能引导win10,还是bios中保存了引导?因为启动项还有Windows Boot Manager项),格式化win10分区后才进了安装模式。暂时从这点看没有u盘安装方便,1,占硬盘一个fat分区,2,不能方便进行安装模式。

得出的结果:win10出问题想重装没那么简单,但是后面有解决办法。

3:intel智能响应和快速存储,需要bios选择raid模式(我是安装win10之前就设置好了raid),这里按照网上说的提前把ssd所有分区删除,还把快速存储exe软件和解压后一份放在fat的安装分区,结果没出现网上说的找不到磁盘的问题,自然不需要价值快速存储的驱动,而且无论是exe还是解压后的都无法用。所以自己得出的结论是ssd或许可以暂时不删分区,装好系统后再确定怎么操作。安装好系统安装快速存储,要使用加速功能就需要ssd硬盘有未分区的空间,至于是否全盘未分区,还是在有分区的情况下有未分区空间即可记不清了。怎么设置缓存加速这里不提,根据软件提示设置即可。

有几个注意点:1,ssd缓存最大64g,只能为一个硬盘加速,不能选择分区;2,增强模式和最大化模式的选择,这里涉及到是缓写,缓读没影响,我觉得还是选择最大化吧,因为虽然不清楚其具体策略,我最初想有可能增强模式是一边往缓存中写,一边往机械硬盘写,两个现程写,缓存写完成后(速度快,肯定它先写完)记录机械硬盘写入量,结束线程,intel的软件另开一个线程从缓存读文件继续往硬盘写(或者不结束线程,但改变读取来源为缓存)。这样的好处是保证数据安全和实时性,会增大cpu负担,其实缓存写完后就报告写入完成,写入剩余进机械硬盘交给后台线程继续完成。另一种情况是直接写入缓存,隔一段时间再后台写入机械硬盘,数据应该也算安全吧,毕竟还在缓存中,实时性差些,分时间消耗cpu。还有一种可能是写之前知道文件大小并根据缓存和机械硬盘的写速度分配数据大小,比如10m文件,缓存快分7m,机械硬盘分3m,接近同时写完。上报写入完成,后台再把缓存的7m写入机械硬盘。这样当然是最快的存储方式,也有缺点,那就是缓存中不存在完整文件,如果以后读取这个文件不能对这个文件完全缓读,不过也可以同时读缓存和硬盘,这说不定也是个好方法。

这三种方法都是我自己想的,我觉得intel可能就是用的第二种方法,因为简单,1和3方法复杂不好实现。当然具体的策略我们不得而知,比如文件读取几次会缓存,有没有过滤那些文件不需要缓存或者缓写,尤其是没有开放关闭缓写的选项,毕竟固态硬盘使用寿命不长,尤其我这块三星840的tlc的颗粒,所以能只缓读就好了,读500m/s,写只有120m/s,所以连续写入时没有必要缓写,比机械硬盘写入快不了多少,增加固态硬盘擦写。

最大化模式就是直接写入缓存,windows闲时再后台写入机械硬盘,而且可以在闲时降低硬盘转速,能保护硬盘和降低能耗。至于说的安全问题,其实无论是最大化模式还是增强模式在断电或者缓存盘热插拔后都有可能导致数据丢失。因为无论哪种模式都不能保证数据的实时性,只能缩小缓存和机械硬盘的同步时间。而保证数据完整还是要看intel软件,因为断电后数据还在缓存中,下次开机能读取记录把没同步的文件写入硬盘即可。其实按道理说只有使用内存做缓存才有丢失数据的危险。之所以说按道理是因为在你改变硬盘分区时,缓存会丢失,比如你在固态硬盘或者机械硬盘删除某个分区或者新增加一个分区,那么你惨了,下次你开机发现超慢,固态加速被禁用了,你可以再开启,但是不幸的是缓存要重新缓存。请相信我没有动缓存,操作的分区不是缓存空间,我能保证数据还在原来的固态硬盘里,但是你再开启时确实要重新缓存,intel把缓存丢弃了,fuck !!!

所以,如果你要进行分区操作,先关闭加速,操作完再开启加速有可能不丢缓存,我记不清了,也许!既然有这么多不便,为什么还要用智能加速和快速存储?1,固态硬盘太小,装个系统没空间了,但是不是所有文件都是必须的,可能系统中的很多文件一辈子用不到。缓存的好处就是缓存常用的文件,那么用最少的空间占用换取接近固态的速度。2,延长一些机械硬盘的寿命。

但是如果有比intel好的缓存软件还是不使用intel,因为限制太多:必须h67,h77,h87这样的芯片组才支持智能响应;必须使用raid模式(只是开启但是并不组成硬磁盘队列,ahci支持的功能raid都支持,但是一些软件不能正确读取smart);不能随意改变分区表;内部机制不透明,不确定其算法和实现是否最好。

得出的结果:是否使用固态加速,具体情况具体分析吧,我已经写了自己的经验和注意事项和解决办法,这是网上找不到的。

4:多系统,比如ubuntu+win10;虚拟机我会用,但涉及到编译安卓和一些专业操作,我还是会切换到真实系统。毕竟性能有差,时间很宝贵。我的步骤:
在2中我们说了要硬盘安装需要格式化win10分区,你会做吗?我不会!!!不过我刚刚想到一个办法,我了解gpt分区表,可以手动编辑把win10分区去掉,之后恢复即可,虽然没测试,不过应该可行,只是有点麻烦。那么我是怎么做的?使用EFI_SHELL64,因为我看到bios中有个launch EFI shell from filestem device选项,下载EFI_SHELL64,解压放在那个fat分区,进bios,launch EFI shell from filestem device,找到会启动一个shell,说是shell,感觉有些命令既有linux也有windows的,呵呵!根据屏幕上和自己的分区选择,fs是可启动的分区?
输入fs3:
ls
看看内容是不是你要的fat分区,是的话,测试启动bootmgfw.efi或者cd efi\boot启动bootx64.efi看看能不能进入windows的安装模式。注意和linux的路径分隔符不同,用的是windows的\,不是/,还叫shell,呵呵!
可以得话,退出进windows,
下面是错误的方法:把ubuntu的镜像解压到fat分区,把原来win10镜像自己移动。进到efi_shell,cd efi\boot启动bootx64.efi,选择使用ubuntu,看似成功了启动了,突然出现:unable to find a medium containing a live file system 停在busybox了,即使你使用U盘,也是这样。

下面说解决办法,如果是U盘安装,要刻录,不能像win10一样直接解压。一般人找软件刻录进u盘即可,U盘数据会丢,高手自己写引导即可,不丢数据。
那么硬盘安装,我想起以前grub4dos或xp的boot.ini引导自己制作的ubuntu镜像,试试吧。把ubuntu镜像和casper中的vmlinuz.efi和initrd.lz复制到fat分区根目录;然后修改/boot/grub/grub.cfg,添加一个选项:

menuentry “My Install Ubuntu” {
set root=(hd0,gpt5)
loopback loop /ubuntu-14.04-desktop-amd64.iso
linux (loop)/casper/vmlinuz.efi persistent boot=casper iso-scan/filename=“/ubuntu-14.04-desktop-amd64.iso” quiet splash ro locale=zh_CN.UTF-8 noprompt –
initrd (loop)/casper/initrd.lz
}

其中hd0是代表第几块硬盘,你可以进bios看看是第几个硬盘,(主板的端口决定了硬盘顺序),gpt5是指这个硬盘的分区号,mbr的分区也可以引导安装ubuntu。ubuntu-14.04-desktop-amd64.iso换成你自己的文件名。

然后efi_shell启动选择My Install Ubuntu,就进入了使用ubuntu,就可以安装了。

安装之前,如果是gpt分区,记得用parted或者其他工具检查下分区表,不然有可能安装时找不到磁盘。还有,记得把isodevices卸载。

安装到那个硬盘和引导的安装?

先说我的做法,我是安装到ssd硬盘,把ssd转成gpt,引导也装在ssd的esp(efi)分区。安装完成,进bios看到多了两个ubuntu的引导项,不要为我为什么两个,因为windows的也是两个。不过ubuntu的两个都可以启动,windows的第一个好像是recover,但是进去就是蓝屏错误,是我esp分区太小,recover没放进去?

下面分析ubuntu的引导,打开esp(efi)分区efi/ubuntu/grub.cfg:
search.fs_uuid 4ce4dd37-75b9-4e34-8075-440e8a3766fb root hd0,gpt2
set prefix=($root)‘/boot/grub’
configfile $prefix/grub.cfg

fs_uuid 4ce*是还是esp(efi)的uuid,这里我们发现是调用ubuntu的/boot/grub/grub.cfg
,不要问为什么,虽然我没研究过这cfg文件的语法,不过程序员的直觉告诉我,就是这样的。

再看/boot/grub/grub.cfg的内容,找到引导windows的:

menuentry ‘Windows Boot Manager (on /dev/sdc1)’ --class windows --class os KaTeX parse error: Expected '}', got 'EOF' at end of input: …2,gpt1' if [ xfeature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd2,gpt1 --hint-efi=hd2,gpt1 --hint-baremetal=ahci2,gpt1 0000-4823
else
search --no-floppy --fs-uuid --set=root 0000-4823
fi
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}

看到这,你应该明白怎么同盘引导ubuntu和windows了吧,先备份原来的windows引导,就是esp(efi)分区的内容,windows下这个分布不挂载,自己找工具或命令,使用ubuntu时也可以备份。
以下是我的猜想,应该是没问题的。安装ubuntu时选择安装到esp(efi)分区。安装之后如果覆盖了原来windows的引导,那么把备份的复制进去,如果没有windows引导选项,选择recovery自动修复或者手动按照上面的格式添加。

得出的结果:1:可以不同盘装多系统,也可以同盘装多系统,至于引导,也可以说esp(efi)分区可以多个硬盘共用一个,也可以为了安全,每个硬盘一个。
2:efi_shell应该可以识别fat和ntfs文件系统,但不能识别ext文件系统。因为把efi_shell放在ntfs分区,也可以找到加载。在shell中可以ls查看ntfs分区的内容。所以那些说只支持fat格式的估计只是人云亦云没有自己测试过!!!(根据网上搜素,好像有的主板是内置efi_shell,所以这样的主板是否支持ntfs没测试)
3:那么是否安装系统时就可以放在ntfs分区,而不必格式化成fat分区了呢? 要看情况,如果你是安装ubuntu,那么还是要fat,为什么?你可以试试,放在ntfs分区,进入efi_shell启动选择My Install Ubuntu,直接进入了grub命令符界面,当时我猜测可能是grub不支持ntfs分区,因为我打开ntfs的分区的命令,貌似是不支持的分区什么的错误。大概搜索下应该grub确实不支持ntfs文件系统。那么windows安装应该可以吧,我觉得应该可以,因为ntfs是微软开发的文件系统,linux对其的支持都是逆向工程得来的,如果windows的引导不支持ntfs未免有些可笑了。
所以,保险的做法还是分一个fat分区,至于efi_shell就放在ntfs分区没问题的。
4:和intel的智能响应技术并没有什么大冲突,raid模式可以安装ubuntu,因为之前好像记得搜索开了intel的智能响应不能安装ubuntu?记不清了。至于ubuntu下要不要使用固态加速,我是懒得搞了,不能和intel的共用一个缓存区,难道再分一个缓存区?而且linux下的好像有三个固态硬盘做缓存的方案,都蛮繁琐的,我是真累了。

5:为什么要开uefi,开机速度只是其一,如果你开了raid模式为了intel的智能响应,那么每次开机(好像是重启)都会出现ctrl+i设置raid磁盘阵列的界面,时间长达4,5秒?开了uefi看任务管理器中上次bios启动用时3秒。好吧,我忘了没开uefi具体是多久了,难道是心理错觉?也许不同主板不会再磁盘阵列界面停留很久。
等等,为了真实性和严谨,我还是说更清楚些,也许出现ctrl+i设置raid磁盘阵列的界面时也是设置uefi启动的,不过启动选项选择的不是win8而是other,好像选择other就出现ctrl+i设置raid磁盘阵列的界面,而且分辨率明显变低了,而选择win8时分辨率目测达到了1080p。好吧,具体的bios选项,我有时间拍照上来吧。蓝天w350etq磨具,神舟k590s。

6:ubuntu中的双显卡问题,intel核显+nvidia独显。我的情况:三代i7 3630qm,核显hd4000,独显gtx660m。bios没有禁用集显或者独显的选项。应该就是使用的nvidia的optimus技术,好像就是忙时核显负责输出,独显负责渲染,平时核显自己工作,忙时自动启用独显。纠正下核显和集显不同,集显是老产物了,集成在主板上的叫集显,和主板不可分割,核显是在cpu内部,更换cpu即换了核显。好吧,这是我yy的,我没有百度,谷歌一下,我主观意识是这样,谁闲的去搜索下吧集显和核显。
再windows中打开nvidia的控制面板发现只有3d设置,没有分辨率,超频,温度等选项。据说,这方面交给intel的核显控制了,但是我想吐槽,你至少把超频,温度,风扇转速这些选项保留好不好!linus对nvidia说fuck you!我也是!
ubuntu中只有核显工作,独显不工作也没关闭,就耗着资源不做事。之前搜索说nvidia最新驱动可以支持optimus双显卡了,好吧,装了官网下载的驱动,分辨率只有800640还是640320记不清了,不能改分辨率,而且测试发现独显也没工作。what a fuck!搜素的多了,还是转帖的责任,有的说nvidia-prime才可以,可以双显卡切换,好吧,装了,黑屏。换其他版本的nvidia驱动试试,有的能进入桌面(好吧,当时不知道,只是用的核显,切换独显后还是不能),lspci | grep -i vga独显还开着,切换显卡弹出个空白错误窗口,错误流中也没输出错误内容。试了很多不行,最后无奈用大黄蜂,bumblebee,驱动太老了,而且每次终端命令启动程序好累,而且也不是所有程序都记得名字的。
第二天,装了ubuntu14.04全新的测试,好吧不行,只要切换到独显就就不去桌面了,黑屏。切换回核显正常。翻墙谷歌也没找到什么有用的信息,或许还是我英语太菜了。最后只能自己思考问题了,以现有情况和了解运用程序员思维考虑,应该是nvidia-prime的切换双显卡是指每个显卡可以独立输出的,而不是optimus这样的核显输出,独显渲染的。所以切换独显后没有输出,黑屏?我只能这样想,我也懒得去发帖,不一定能得到正确回答,也没闲功夫,可能发帖后,几年后才记得发帖问过问题。所以老实的用bumblebee的nvidia的304驱动吧。

7:原来ubuntu不是uefi安装的,能不能转换成uefi启动?
根据ubuntu安装后的文件分析,搞定以下即可,没测试,只提供方案。
复制esp(efi)分区到自己的硬盘esp分区,如果已有略过,没有的找对应版本的iso提取。
esp(efi)分区efi/ubuntu/grub.cfg引导自己的分区。
复制efi文件到对应位置,修改/boot/grub/grub.cfg试试,应该没问题。我猜测。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值