I am trying to add a rEFInd entry for dualbooting ChromeOS, currently I have to tripple boot with linux, and use the Linux Grub entry to boot first GRUB2, then select the ChromeOS entry from GRUB2 (Breaking the touchscreen interface for rEFInd)
This is the entry that gets added to GRUB, but if I try and copy it to rEFInd, I get errors related to "(loop, not found"
This entry is an image file (chromos.img) that stores everything, and is the only file on partition7...
Two questions, can we get default disabled entries added to the rEFInd config file that gives an example that can be modified for ChromeOS like other samples already in the file...
and second question, can someone point me in the correct direction to modify this entry to function with rEFInd? My own efforts are apparently not working...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am running on a Microsoft Suface Pro with no keyboard most of the time... Being able to select the boot option with touch is essential... So far, the only thing I have found is rEFInd...
Thank you for the attempt though...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have not, I suspect there is a way, I just have not been able to spend the time to learn enough about rEFInd to get it working...
My half measure has been to Tripple boot Windows/Linux Mint/Brunch, this causes rEFInd to find GRUB2, I then added Brunch to the GRUB entry as the default option... So I am able to select Mint/Grub with touch, then have to wait for the timeout to automatically select Brunch for me... This prevents me from selecting Mint through touch, however when I need Mint, I usually have the keyboard attached...
Any tips or pointers would be appreciated...
Last edit: Warren T Christensen 2020-07-01
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
On a related note, I decided to try and spend the time to try and figure this out myself... Problem is, Linux is a second language to me, still learning...
I can understand what a loopback device is under grub, and what it does, but I can't seem to find a way to do that under rEFInd...
Is it possible to give file names with locations to rEFInd, attach them with somesort of loopback driver, and then scan inside those files like normal?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Sorry for the late response, had not seen your replies until I decided to check my inbox today.
Is it possible to give file names with locations to rEFInd, attach them with somesort of loopback driver, and then scan inside those files like normal?
Are you talking about chainloading here? In any case, I don't suppose I can help you here since I don't know about loopback devices/loopback drivers
But I installed Fydeos 10.0 (A Chrome OS r83 fork with Android, Linux and OTA support) and Fydeos now lets you choose to dual/multiple boot by automatically installing rEFInd bootloader which means there's no hassle of manually having to configure rEFInd
(I've attatched the screenshot below; currently triple booting Windows 10, Fydeos & Elementary OS; Elementary OS boots directly without ridirecting back to grub unlike in your case)
You might be interested in Fydeos over Brunch since it is known to work well on Surface devices and now has Google Account support. Sadly, bluetooth doesn't seem to be working for my device on Fydeos so I'm thinking of reverting back to Brunch. So let me know if you did manage to add the Brunch entry to rEFInd
I did not, would you mind sharind the entry that FydeOS put in yours? I might be able to modify it to my own uses...
As far as FydeOS, im afraid I have a general aversion to opperating systems written primarily in Chinese, under the assumption that the Chinese goverment has no business in writing my opperating system... I like the Brunch project, because it uses an official recovery image direct from Google, then adds a minor script (that is easily readable myself) in front of that image... And so is as close as possible to having my system act like it was always supposed to have Chrome OS on it... Because it uses the standard recovery image, it can use the normal upgrade/update path, so I don't have to wait on a random third party... The brunch script itself it also still updated frequently to add new support and features... Thank you for the suggestion though...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I did not manage to do so. Fortunately for me, I've been running Fydeos and have had no problems at all. It automatically installs rEFInd for you and imo, it is much more stable and well-optimized than Chrome OS Brunch
And just like Chrome OS Brunch, It also has support for logging in through Google account as well as android apps via the Google Play Store, Linux apps via Crostini and ability to access Google Drive and Onedrive inside the native files app
Last edit: nadlax 2021-01-14
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
rEFInd relies on the EFI to read files, and AFAIK there is no EFI loopback driver, which is what would be required to read files from within a .iso file or something similar. That may not be necessary, though; the trick would be to find where the kernel and initrd file are within ChromeOS and copy them to a location that rEFInd can read (such as the ESP or some other partition for which an EFI driver exists). You'll also need to determine boot options, which can normally be found in /proc/cmdline, and put them in a refind_linux.conf file in the same directory as the kernel. Some more information on these topics is in the rEFInd documentation:
Note that I don't use ChromeOS myself, so I can't be of much help on ChromeOS-specific issues. As it's derived from Linux, though, I'm assuming (perhaps incorrectly) that it doesn't deviate too much from Linux in most respects.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I think an EFI loopback driver would be a super simple EFI_BLOCK_IO_PROTOCOL driver that reads from an iso file. A file system driver that already exists would do the file reading from the block IO driver. The complicated part is transitioning from EFI to Linux. I have no idea how that works in Linux. In macOS, a kernel extension would take over as the driver (it would need to be included in the OS or injected by the boot loader - and it would mount the file as a IOBlockStorageDevice class object).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am trying to add a rEFInd entry for dualbooting ChromeOS, currently I have to tripple boot with linux, and use the Linux Grub entry to boot first GRUB2, then select the ChromeOS entry from GRUB2 (Breaking the touchscreen interface for rEFInd)
This is the entry that gets added to GRUB, but if I try and copy it to rEFInd, I get errors related to "(loop, not found"
This entry is an image file (chromos.img) that stores everything, and is the only file on partition7...
Two questions, can we get default disabled entries added to the rEFInd config file that gives an example that can be modified for ChromeOS like other samples already in the file...
and second question, can someone point me in the correct direction to modify this entry to function with rEFInd? My own efforts are apparently not working...
Why not just use Grub2win? It's working flawlessly for me. I'm dualbooting Windows 10 and Chrome OS (Brunch)
Last edit: nadlax 2020-06-30
I am running on a Microsoft Suface Pro with no keyboard most of the time... Being able to select the boot option with touch is essential... So far, the only thing I have found is rEFInd...
Thank you for the attempt though...
were you able to figure it out? I also want to install rEFInd to dual boot Windows and Brunch
I have not, I suspect there is a way, I just have not been able to spend the time to learn enough about rEFInd to get it working...
My half measure has been to Tripple boot Windows/Linux Mint/Brunch, this causes rEFInd to find GRUB2, I then added Brunch to the GRUB entry as the default option... So I am able to select Mint/Grub with touch, then have to wait for the timeout to automatically select Brunch for me... This prevents me from selecting Mint through touch, however when I need Mint, I usually have the keyboard attached...
Any tips or pointers would be appreciated...
Last edit: Warren T Christensen 2020-07-01
On a related note, I decided to try and spend the time to try and figure this out myself... Problem is, Linux is a second language to me, still learning...
I can understand what a loopback device is under grub, and what it does, but I can't seem to find a way to do that under rEFInd...
Is it possible to give file names with locations to rEFInd, attach them with somesort of loopback driver, and then scan inside those files like normal?
Sorry for the late response, had not seen your replies until I decided to check my inbox today.
Are you talking about chainloading here? In any case, I don't suppose I can help you here since I don't know about loopback devices/loopback drivers
But I installed Fydeos 10.0 (A Chrome OS r83 fork with Android, Linux and OTA support) and Fydeos now lets you choose to dual/multiple boot by automatically installing rEFInd bootloader which means there's no hassle of manually having to configure rEFInd
(I've attatched the screenshot below; currently triple booting Windows 10, Fydeos & Elementary OS; Elementary OS boots directly without ridirecting back to grub unlike in your case)
You might be interested in Fydeos over Brunch since it is known to work well on Surface devices and now has Google Account support. Sadly, bluetooth doesn't seem to be working for my device on Fydeos so I'm thinking of reverting back to Brunch. So let me know if you did manage to add the Brunch entry to rEFInd
Last edit: nadlax 2020-07-28
Did you properly add the Brunch grub entry to the 'refind.conf' file located in '/boot/efi/EFI/refind' ?
I will try adding Brunch entry myself later tonight
Last edit: nadlax 2020-07-28
I did not, would you mind sharind the entry that FydeOS put in yours? I might be able to modify it to my own uses...
As far as FydeOS, im afraid I have a general aversion to opperating systems written primarily in Chinese, under the assumption that the Chinese goverment has no business in writing my opperating system... I like the Brunch project, because it uses an official recovery image direct from Google, then adds a minor script (that is easily readable myself) in front of that image... And so is as close as possible to having my system act like it was always supposed to have Chrome OS on it... Because it uses the standard recovery image, it can use the normal upgrade/update path, so I don't have to wait on a random third party... The brunch script itself it also still updated frequently to add new support and features... Thank you for the suggestion though...
Hi, did you get refind to load Chrome os. I am in a dual boot with Linux Mint 20 and Chrome OS
Thank you in advance
I did not manage to do so. Fortunately for me, I've been running Fydeos and have had no problems at all. It automatically installs rEFInd for you and imo, it is much more stable and well-optimized than Chrome OS Brunch
And just like Chrome OS Brunch, It also has support for logging in through Google account as well as android apps via the Google Play Store, Linux apps via Crostini and ability to access Google Drive and Onedrive inside the native files app
Last edit: nadlax 2021-01-14
rEFInd relies on the EFI to read files, and AFAIK there is no EFI loopback driver, which is what would be required to read files from within a
.iso
file or something similar. That may not be necessary, though; the trick would be to find where the kernel and initrd file are within ChromeOS and copy them to a location that rEFInd can read (such as the ESP or some other partition for which an EFI driver exists). You'll also need to determine boot options, which can normally be found in/proc/cmdline
, and put them in arefind_linux.conf
file in the same directory as the kernel. Some more information on these topics is in the rEFInd documentation:https://www.rodsbooks.com/refind/linux.html
Note that I don't use ChromeOS myself, so I can't be of much help on ChromeOS-specific issues. As it's derived from Linux, though, I'm assuming (perhaps incorrectly) that it doesn't deviate too much from Linux in most respects.
I think an EFI loopback driver would be a super simple EFI_BLOCK_IO_PROTOCOL driver that reads from an iso file. A file system driver that already exists would do the file reading from the block IO driver. The complicated part is transitioning from EFI to Linux. I have no idea how that works in Linux. In macOS, a kernel extension would take over as the driver (it would need to be included in the OS or injected by the boot loader - and it would mount the file as a IOBlockStorageDevice class object).