jlobue10 / SteamDeck_rEFInd

Simple rEFInd install script for the Steam Deck (with GUI customization)
MIT License
520 stars 50 forks source link

Latest SteamOS Update Breaks EFI #19

Closed kylumaw closed 1 year ago

kylumaw commented 1 year ago

After the the latest SteamOS update refind has broken and recovery mode (vol -or+) SteamOS ist not detectable. Was able to boot SteamOS through the file option, reinstalled ReFind and option is back. However, "efibootmgr" does not have steam OS listed and to boot, Refind is required . At this point I have decided that windows on deck completely destroys any positive experience the steam deck has to offer. How do I remove Windows boot option and restore back to default so that any future updates do not break the boot loader???

Current efi options form efibootmgr after update: "BootOrder: 0001,0000,2001,2002,2003 Boot0000 rEFInd HD(1,GPT,c251b194-0059-5243-a512-098d9a805666,0x800,0x20000)/File(\efi\refind\refind_x64.efi) Boot0001 Windows Boot Manager HD(1,GPT,c251b194-0059-5243-a512-098d9a805666,0x800,0x20000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000000000100000010000000040000007fff0400 Boot2001 EFI USB Device RC Boot2002 EFI DVD/CDROM RC Boot2003 EFI Network RC "

jlobue10 commented 1 year ago

The SteamOS EFI entry not detectable is due to an issue with the BIOS update that comes alongside the 3.4 update. The README tells you how to fix this with command line sudo efibootmgr -c -d /dev/nvme0n1 -p 1 -L "SteamOS" -l \\efi\\steamos\\steamcl.efi . Since I've successfully setup multiple Steam Decks with rEFInd with this script and README instructions, I'm confused as to what exactly you are asking. If what you are saying is that you want to go back to 100% SteamOS, then you can always just use the SteamOS recovery image and use the Re-image option, but beware as this will completely format your internal NVMe (and start fresh).

If you do want to continue to use Windows, then I cannot guarantee that future SteamOS updates won't break rEFInd or even just the SteamOS EFI entry, as I am not a Valve employee, and this script was originally just a fun side project that I created and shared (since updated quite a few times for improvements).

kylumaw commented 1 year ago

Thank your for the quick response. This is the second time I have had to run “sudo efibootmgr -c -d /dev/nvme0n1 -p 1 -L "SteamOS" -l \efi\steamos\steamcl.efi”. I would like to avoid reinstallation of SteamOS for now. I have decided that Windows on SteamDeck is not for me and will stick with my desktop when playing certain titles. I’m wanting to revert any changes that rEDInd has made to stock settings so I do not have issues in the future.

I understand your are not a valve dev and I appreciate all efforts you have put into this project!

FYI, I can’t confirm or deny that I have created further issues for myself.

Again thanks for your contribution to the community!!!

jlobue10 commented 1 year ago

So your SteamOS EFI entry is restored now and bootable?

Basically to uninstall Windows and rEFInd from the bootloader, you will need to run a series of command line commands. Can you show me the efibootmgr output after you've got the SteamOS EFI entry re-added? The series of commands that I give you to uninstall will need the accurate boot entry numbers.

kylumaw commented 1 year ago

Yes the entry has been restored and bootable.

Could you perhaps add a uninstall portion to the readme instead. When you have time of course. I will now not have access to my deck for a few days. If your able to do that just close the issue.

Thanks again!!!

jlobue10 commented 1 year ago

Please show me the most recent efibootmgr output for you. The reason that I'm averse adding an uninstall option or script, is that some people copy and paste things line by line. If you make a mistake or typo in removing the directory from the /esp partition, you risk bricking the Steam Deck to the point that you would either would need to have had a backup of the necessary /esp files to still boot into SteamOS, or you would need to reimage.

It also takes up such a small amount of space, that removing it in my opinion is not worth the risk of a costly mistake. Disabling it is what most people would want (and without the risk), and has been documented already on the README. Show me your most recent efibootmgr output (with SteamOS entry restored) and I will walk you through the steps to delete the unwanted EFI entries and uninstall for your particular setup.

kylumaw commented 1 year ago

Valid point. I also wouldn’t want someone to stumble across you walking me through it here and remove wrong directory or boot option. As per your advice I will just disable rEFInd and windows from efibootmgr and call it good!

jlobue10 commented 1 year ago

Well, you may want to delete the EFI entries entirely (for rEFInd and Windows). To do so, run this command for each entry, but replace the XXXX with the rEFInd EFI number for one run, and then the Windows EFI entry on the next. If you get a permissions error, you may need to do this from the SteamOS recovery image command line.

sudo efibootmgr -b XXXX -B

Also, if the SteamOS EFI entry number is anything other than 0000 (assuming for a normal Steam Deck, but I need to verify this), you may want to delete that entry and re-add it one last time. This is because I am unsure of why the firmware is deleting this EFI entry in the first place, but it's most likely because for some reason it's not the default number for a normal (non dual-boot) setup.

If you really want to remove the refind directory from the /esp partition, message me on Reddit, same username, and I will let you know how. It's really a simple command, but I don't want to be responsible if people make mistakes with it, which is almost guaranteed to happen seeing as how many people fail to read and understand the basic README. Thank you for understanding. Please close the issue if you're satisfied with my answer.

kylumaw commented 1 year ago

Understood! I don’t believe since the beginning of this, SteamOS has not been set as 0000. At the moment rEFInd=0000, Windows=0001, and SteamOS=0003. When I go through this later this week I will make sure to get StreamOS to 0000.

Thanks

jlobue10 commented 1 year ago

Let me verify what the default EFI entry is for SteamOS, at some point later this week. I am assuming 0000, but I have not verified that yet. It could be something different by default. I have a spare Steam Deck that I keep laying around for testing or use in case of needing to RMA my main one. I will reimage that one as part of other tinkering this week, and I will check the default EFI number before modifying partitions and EFI entries. I will let you know.