IT之家学院rEFind引导使用教程
感谢IT之家网友 RushB111 的线索投递!
一、refind介绍
首先,refind一般在UEFI启动环境下使用,他可以用来引导各类操作系统的启动(Windows 8+,Linux,Mac OS),不基于任何操作系统平台,总之,当refind被选为系统首选引导项的时候,可以实现如下的效果:
二、rEFind的使用
必须提醒的是:下面所述的所有关于rEFInd引导教程都必须要求电脑支持UEFI,传统的Legacy引导不可用!本部分可以基于两个系统平台来进行,首先是Linux平台,个人推荐Linux下进行,简单快捷。
基于debian系的Linux平台的rEFInd安装:(建议选择此种安装方式) sudoapt-add-repositoryppa:rodsmith/refind sudoapt-getupdate sudoapt-getinstallrefind
安装过程中会弹出来一个选择页面,选Yes就对了。
或者手动安装,deb包下载链接:下载链接
双击安装,或者命令行安装,命令行逼格高一点sudodpkg-irefind_0.11.4-1_amd64.deb sudorefind-install
到此,refind的安装已经完毕,比Windows不知道快到哪里去了。
其实完成到这一步,电脑默认会首选rEFInd引导,反正我的电脑是。如果没有,可以自己去BIOS中设置一下,这个就不多说了,相信大家应该会,如果不会进BIOS的话,也可以在Windows平台通过easyUEFI软件进行处理,这一步等后面介绍Windows平台的使用再说。
下面是rEFInd的编辑与使用:
Refind所有的配置信息位于/boot/efi/EFI/refind/refind.conf。
下面对这一文件用得到的相关参数说明一下:
refind.conf文件的所有内容,很长,我只选了一部分,挑中文注释看就好了,你们编辑的时候选择对应的内容搜索就好了,以下的"#"代表注释的意思,没有执行的作用,若是去掉某一行的#,则代表执行这条指令。# #refind.conf #ConfigurationfilefortherEFIndbootmenu # #Timeoutinsecondsforthemainmenuscreen.Settingthetimeoutto0 #disablesautomaticbooting(i.e.,notimeout).Settingitto-1causes #animmediateboottothedefaultOS*UNLESS*akeypressisinthebuffer #whenrEFIndlaunches,inwhichcasethatkeypressisinterpretedasa #shortcutkey.Ifnomatchingshortcutisfound,rEFInddisplaysits #menuwithnotimeout. # #设置默认等待时间为5s #timeout0代表无限等待timeout-1代表立即进入对应的系统 timeout5 # #Setthescreen'svideoresolution.Passthisoptioneither: #*twovalues,correspondingtotheXandYresolutions #*onevalue,correspondingtoaGOP(UEFI)videomode #Notethatnotallresolutionsaresupported.OnUEFIsystems,passing #anincorrectvalueresultsinamessagebeingshownonthescreento #thateffect,alongwithalistofsupportedmodes.OnEFI1.xsystems #(e.g.,Macintoshes),settinganincorrectmodesilentlyfails.Onboth #typesofsystems,settinganincorrectresolutionresultsinthedefault #resolutionbeingused.Aresolutionof1024x768usuallyworks,buthigher #valuesoftendon't. #Defaultis"00"(usethesystemdefaultresolution,usually800x600). # #分辨率设置,我建立这里别动,上面注释中也说了。1024*768以上的分辨率并不支持, #我是默认的,没动它,所以没事别自己搞个19201080 #resolution1024768 #resolution1440900 #resolution3 # #DirectoriesthatshouldNOTbescannedforbootloaders.Bydefault, #rEFInddoesn'tscanitsowndirectory,theEFI/toolsdirectory,the #EFI/memtestdirectory,theEFI/memtest86directory,orthe #com.apple.recovery.bootdirectory.Usingthedont_scan_dirsoption #enablesyouto"blacklist"otherdirectories;butbesuretouse"+" #asthefirstelementifyouwanttocontinueblacklistingexisting #directories.YoumightusethistokentokeepEFI/boot/bootx64.efiout #ofthemenuifthat'saduplicateofanotherbootloaderortoexclude #adirectorythatholdsdriversornon-bootloaderutilitiesprovidedby #ahardwaremanufacturer.Ifadirectoryislistedbothhereandin #also_scan_dirs,dont_scan_dirstakesprecedence.Notethatthis #blacklistappliestoALLthefilesystemsthatrEFIndscans,notjust #theESP,unlessyouprecedethedirectorynamebyafilesystemnameor #partitionuniqueGUID,asin"myvol:EFI/somedir"toexcludeEFI/somedir #fromthescanonthemyvolvolumebutnotonothervolumes. # #这部分看注释的意思,应该是不扫描ESP分区的某些文件夹,我自己为了去除某些多余 #的启动项,于是设置了dont_scan_dirsESP:/EFI/ubuntu,但不知道为什么,没有用, #启动项里仍会出现Ubuntu的引导项,所以我不建议在这部分选择屏蔽引导项. #dont_scan_dirsESP:/EFI/boot,EFI/Dell,EFI/memtest86 #FilesthatshouldNOTbeincludedasEFIbootloaders(onthe #firstlineofthedisplay).Ifyou'reusingabootloaderthat #reliesonsupportprogramsordriversthatareinstalledalongside #themainbinaryorifyouwantto"blacklist"certainloadersby #nameratherthanlocation,usethisoption.Notethatthiswill #NOTpreventcertainbinariesfromshowingupinthesecond-row #setoftools.Mostnotably,variousSecureBootandrecovery #toolsarepresentinthislist,butmayappearassecond-row #items. #Thefilemaybespecifiedasabarename(e.g.,"notme.efi"),as #acompletepathname(e.g.,"/EFI/somedir/notme.efi"),orasa #completepathnamewithvolume(e.g.,"SOMEDISK:/EFI/somedir/notme.efi" #or2C17D5ED-850D-4F76-BA31-47A561740082:/EFI/somedir/notme.efi"). #OStagshiddenviatheDeleteor'-'keyintherEFIndmenuare #addedtothislist,butstoredinNVRAM. #Thedefaultisshim.efi,shim-fedora.efi,shimx64.efi,PreLoader.efi, #TextMode.efi,ebounce.efi,GraphicsConsole.efi,MokManager.efi,HashTool.efi, #HashTool-signed.efi,bootmgr.efi,fb{arch}.efi #(where"{arch}"isthearchitecturecode,like"x64"). # #这部分和上面那部分类似,都是屏蔽之用,区别在于上面部分是针对文件夹,这部分是针 #对具体文件,这部分在去除某些启动项有着极为关键的作用,我将详细展开叙述。 #dont_scan_filesshim.efi,MokManager.efi
多余启动项的删除策略:
首选,我们可以先看一下EFI分区的文件信息:(Linux系统中的位置:boot/efi/EFI)
refind他针对某些.efi的文件会选择无脑的引导,因此我们为了简洁或者美观,需要屏蔽某些文件的引导,屏蔽不会修改原EFI分区中的系统引导文件,换言之,安全,针对我的Deepin,引导文件位于deepin/grubx64.efi(EFI分区的相对路径),以及我的Windows引导文件,位于Microsoft/Boot/bootmgfw.efi,而我们需要保留的就这两个,其他的一律屏蔽,屏蔽的命令:dont_scan_files/EFI/ubuntu/grubx64.efi,XXX,XXX
(这代表屏蔽了ubuntu文件夹下的grubx64.efi引导文件,还需要屏蔽其他文件XXX,直接在上面的指令中以英文格式下的逗号分隔就好了,最后一项不需要逗号)
#ScanforLinuxkernelsthatlacka".efi"filenameextension.Thisis #usefulforbetterintegrationwithLinuxdistributionsthatprovide #kernelswithEFIstubloadersbutthatdon'tgivethosekernelsfilenames #thatendin".efi",particularlyifthekernelsarestoredona #filesystemthattheEFIcanread.Whensetto"1","true",or"on",this #optioncausesallfilesinscanneddirectorieswithnamesthatbeginwith #"vmlinuz"or"bzImage"tobeincludedasloaders,eveniftheylack".efi" #extensions.Passingthisoptiona"0","false",or"off"valuecauses #kernelswithout".efi"extensionstoNOTbescanned. #Defaultis"true"--toscanforkernelswithout".efi"extensions. # #此段为屏蔽扫描所有Linux内核,refind启动项包括了扫描的操作系统内核,其实通过 #扫描的内核启动操作系统更快,因为会直接跳过Linux系统的grub引导而直接启动对应 #的Linux系统,但是考虑到有时候需要系统修复什么的,建议还是通过grub引导的菜单 #启动吧,屏蔽内核检查的指令如下: scan_all_linux_kernelsfalse
在refind.conf文件的最后一行,需要加一行指令,这是涉及到refind的主题美化的方面,指令内容为:include<相对路径>/theme.config
(相对路径是指你的主题配置文件theme.config在以refind目录为根目录的文件路径)
比如我的theme文件位于refind目录下的themes/rEFInd-minimal处,所以我的指令是:includethemes/rEFInd-minimal/theme.config
至此,关于refind.conf文件的介绍就完毕了,下面是关于theme文件的介绍
首先,看refind文件夹结构(refind文件夹位于EFI分区目录)
主题文件位于theme文件夹:
这是我的主题,就用了这一个,打开:
然后来介绍theme.conf文件,以下是我的文件内容,不长,看中文注释信息就好了:#Minimalrefindtheme #Hideuserinterfaceelementsforpersonalpreferenceortoincrease #security: #banner-therEFIndtitlebanner(built-inorloadedvia"banner") #label-bootoptiontextlabelinthemenu #singleuser-removethesubmenuoptionstobootMacOSXinsingle-user #orverbosemodes;affectsONLYMacOSX #safemode-removethesubmenuoptiontobootMacOSXin"safemode" #hwtest-thesubmenuoptiontorunApple'shardwaretest #arrows-scrollarrowsontheOSselectiontagline #hints-briefcommandsummaryinthemenu #editor-theoptionseditor(+,F2,orInsertonbootoptionsmenu) #all-alloftheabove #Defaultisnoneofthese(allelementsactive) # hideuisingleuser,hints,arrows,label,badges #Setthenameofasubdirectoryinwhichiconsarestored.Iconsmust #havethesamenamestheyhaveinthestandarddirectory.Thedirectory #nameisspecifiedrelativetothemainrEFIndbinary'sdirectory.If #aniconcan'tbefoundinthespecifieddirectory,anattemptismade #toloaditfromthedefaultdirectory;thus,youcanreplacejustsome #iconsinyourowndirectoryandrelyonthedefaultforothers. #Defaultis"icons". #各种系统的启动图标 icons_dirthemes/rEFInd-minimal/icons #UseacustomtitlebannerinsteadoftherEFIndiconandname.Thefile #pathisrelativetothedirectorywhererefind.efiislocated.Thecolor #inthetopleftcorneroftheimageisusedasthebackgroundcolor #forthemenuscreens.CurrentlyuncompressedBMPimageswithcolor #depthsof24,8,4or1bitsaresupported,aswellasPNGimages. #这是启动界面背景图片路径,也是相对路径,且暂时似乎只支持png格式的图片 bannerthemes/rEFInd-minimal/background.png #TellsrEFIndwhethertodisplaybannerimagespixel-for-pixel(noscale) #ortoscalebannerimagestofillthescreen(fillscreen).Theformeris #thedefault. #默认全屏填充 banner_scalefillscreen #Customimagesfortheselectionbackground.Thereisabigone(144x144) #fortheOSicons,andasmallone(64x64)forthefunctioniconsinthe #secondrow.Ifonlyasmallimageisgiven,thatoneisalsousedfor #thebigiconsbystretchingitinthemiddle.Ifonlyabigoneisgiven, #thebuilt-indefaultwillbeusedforthesmallicons. # #Likethebanneroptionabove,theseoptionstakeafilenameofan #uncompressedBMPimagefilewithacolordepthof24,8,4,or1bits, #oraPNGimage.ThePNGformatisrequiredifyouneedtransparency #support(toletyou"seethrough"toafull-screenbanner). # selection_bigthemes/rEFInd-minimal/selection_big.png selection_smallthemes/rEFInd-minimal/selection_small.png #Whichnon-bootloadertoolstoshowonthetoolsline,andinwhat #ordertodisplaythem: #shell-theEFIshell(requiresexternalprogram;seerEFInd #documentationfordetails) #gptsync-the(dangerous)gptsync.efiutility(requiresexternal #program;seerEFInddocumentationfordetails) #apple_recovery-bootstheAppleRecoveryHDpartition,ifpresent #mok_tool-makesavailabletheMachineOwnerKey(MOK)maintenance #tool,MokManager.efi,usedonSecureBootsystems #about-an"aboutthisprogram"option #exit-atagtoexitfromrEFInd #shutdown-shutsdownthecomputer(abugcausesthistoreboot #EFIsystems) #reboot-atagtorebootthecomputer #firmware-atagtorebootthecomputerintothefirmware's #userinterface(ignoredonoldercomputers) #Defaultisshell,apple_recovery,mok_tool,about,shutdown,reboot,firmware # showtoolsshutdown
文件中还有很多杂七杂八的东西,感兴趣的话可以Google一下,官方文档说得也十分详细,再有就是refind主题的下载链接,我放一下,来源于Github,分享只作学习交流之用。GitHub地址
大家可以选择自己感兴趣的主题下载,安装的话,记得在refind.conf文件末尾改路径哦。
以上针对的是对rEFInd比较感兴趣并且动手能力比较强的朋友们的一个介绍,你们完全可以自己去折腾rEFInd的配置,又不动EFI分区的其他系统文件,所以基本无风险,大不了在BIOS中改回原来的引导。
再就是,懒人版!
我自己用的主题以及自己配的rEFind文件:
感兴趣的朋友可以把我的refind配置拿来用,UEFI机器通用。你可以用我的refind.conf文件替换官方的,也可以把我theme文件夹中的主题拿去用,也可以替换你EFI文件夹中的整个refind文件夹。下载链接(提取码: cmyj)
记得解压出里面的refind文件夹,将refind文件夹放入EFI分区即可。而如何放入EFI分区呢,Linux操作系统很简单,直接取得root权限,将refind文件夹移动至boot/efi/EFI即可,命令行操作:sudocp-a****/refind/boot/efi/EFI/
(****代表你的refind文件夹的路径)
Windows下,需要将EFI分区单独搞出来
三、Windows操作如下:
访问EFI分区的操作步骤(点此进入):
进行到这一步,refind的移动就算处理完毕了,最后就是在BIOS中添加rEFInd的引导项,并选为第一引导项,在Windows平台,我通过easyUEFI来进行(搜索查找即可下载)
打开easyUEFI
选择Linux或其他操作系统,描述自己取个名字,用英文吧。目标分区选中ESP分区,我这里是第二个。
点击浏览
点那个小加号,找到refind:
选中refind_x64.efi,过一会儿,点击确定,会发现在最后一行出现你新建的项:
上移,移动到第一个为止,到此,即已完成。以上便是整个教程了,赶快定制你喜欢的启动页面吧(主要是主题,背景也可单独更换)。