<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="https://dev1galaxy.org/extern.php?action=feed&amp;tid=8165&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Dev1 Galaxy Forum / How to actually install Devuan (on UEFI, esp. desktop-live Install)]]></title>
		<link>https://dev1galaxy.org/viewtopic.php?id=8165</link>
		<description><![CDATA[The most recent posts in How to actually install Devuan (on UEFI, esp. desktop-live Install).]]></description>
		<lastBuildDate>Wed, 26 Aug 2026 18:52:04 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[Re: How to actually install Devuan (on UEFI, esp. desktop-live Install)]]></title>
			<link>https://dev1galaxy.org/viewtopic.php?pid=65320#p65320</link>
			<description><![CDATA[<p>I gave a link to this discussion to our webmaster and we can add the information to the guide. I also made a note in my TODO list for refractainstaller. Thanks!</p>]]></description>
			<author><![CDATA[dummy@example.com (fsmithred)]]></author>
			<pubDate>Wed, 26 Aug 2026 18:52:04 +0000</pubDate>
			<guid>https://dev1galaxy.org/viewtopic.php?pid=65320#p65320</guid>
		</item>
		<item>
			<title><![CDATA[Re: How to actually install Devuan (on UEFI, esp. desktop-live Install)]]></title>
			<link>https://dev1galaxy.org/viewtopic.php?pid=65319#p65319</link>
			<description><![CDATA[<p>Thanks for the quick reply, fsmithred.</p><h5>Problem: The Live Install Guide doesn&#039;t distinguish between standard UEFI install and the buggy-firmware workaround.</h5><p>I think the confusion (at least for me) comes from the <a href="https://www.devuan.org/os/documentation/install-guides/excalibur/live-gui" rel="nofollow">Live Install Guide</a> not drawing a clear line between two different things:</p><ol class="decimal"><li><p><strong>Standard UEFI install</strong> -- the installer already auto-detects a UEFI environment, finds the ESP, and installs GRUB to the vendor-specific path (<span class="bbc">/EFI/devuan/</span>). This &quot;just works&quot; on well-behaved firmware and needs no user intervention.</p></li><li><p><strong>Workaround for buggy firmware</strong> -- the <span class="bbc">media_opt=&quot;--force-extra-removable&quot;</span> option installs an <em>additional</em> copy of GRUB to the fallback path (<span class="bbc">/EFI/BOOT/BOOTX64.EFI</span>) for motherboards whose firmware doesn&#039;t properly read NVRAM boot variables or only looks at the removable-media path.</p></li></ol><p>I agree the opt-in design is correct -- always forcing it would cause multiple OS installers to fight over <span class="bbc">\EFI\BOOT\BOOTX64.EFI</span> and destroy proper boot-order control. That&#039;s well documented on the <a href="https://wiki.debian.org/UEFI#Force_grub-efi_installation_to_the_removable_media_path" rel="nofollow">Debian wiki (&quot;Force grub-efi installation to the removable media path&quot; section - UEFI article)</a>.</p><h5>Solution A: Implementing a Devuan option force grub-efi installation to the removable media path</h5><p><strong>However</strong>, in that same citation, Debian Trixie has now added a middle ground that I think would work well for Devuan&#039;s Refracta Installer (I&#039;m not sure if the other ISOs&#039; installers do something similar).</p><p><strong>The background:</strong> UEFI firmware looks for a bootloader in two places, in order:</p><ol class="decimal"><li><p><strong>NVRAM boot variables</strong> -- the firmware&#039;s internal boot menu. Each OS registers itself here under its own name (e.g., &quot;Devuan&quot;). This is the correct, standard path.</p></li><li><p><strong>The fallback path</strong> -- <span class="bbc">\EFI\BOOT\BOOTX64.EFI</span> on the ESP. A single, generic file that firmware checks only if NVRAM is empty or unreadable.</p></li></ol><p>The problem with the fallback path: it&#039;s a <em>single file</em>. Only one OS can own it at a time. If two OSes both install there, the second overwrites the first. That&#039;s why Debian doesn&#039;t install there by default.</p><p>But some motherboards are buggy and <em>only</em> look at the fallback path -- they never read NVRAM. On those systems, a standard install produces &quot;Boot device not found&quot; after reboot.</p><p>Trixie&#039;s solution is a conditional check at install time:</p><div class="codebox"><pre><code>1. Mount the ESP.
2. Check whether \EFI\BOOT\BOOTX64.EFI already exists.
3. If it does NOT exist:
     → Install GRUB to the vendor path (\EFI\debian\grubx64.efi)   [always done]
     → ALSO install GRUB to the fallback path (\EFI\BOOT\BOOTX64.EFI)
4. If it DOES exist:
     → Install GRUB to the vendor path only.
     → Leave the fallback path alone.</code></pre></div><p>Why this is safe:</p><ul><li><p>Fresh install, no other OS -&gt; fallback is empty -&gt; gets populated -&gt; even buggy firmware can find the bootloader.</p></li><li><p>Dual-boot, Windows or another Linux already installed -&gt; fallback is occupied -&gt; gets left alone -&gt; the other OS keeps working.</p></li></ul><p>For Refracta, the logic would be something like:</p><div class="codebox"><pre><code># During the UEFI bootloader install step:
if [ ! -f &quot;$ESP_MOUNT/EFI/BOOT/BOOTX64.EFI&quot; ]; then
    grub_install_params=&quot;$grub_install_params --force-extra-removable&quot;
fi</code></pre></div><p>This is a small, safe change -- it only kicks in when the fallback path is empty, so it can&#039;t clobber an existing bootloader. It would mean that on the majority of UEFI systems (fresh install, no other OS), the user just works out of the box without being forced to manually edit the <span class="bbc">refractainstaller.conf</span> configuration file at all.</p><h5>Solution B: Adding a &quot;Troubleshooting UEFI Boot&quot; section/admonition in the Live ISO Install Guide</h5><p><strong>As for the <a href="https://www.devuan.org/os/documentation/install-guides/excalibur/live-gui" rel="nofollow">Live Install Guide</a></strong>, I think it would still be worth adding a short troubleshooting paragraph like:</p><div class="quotebox"><blockquote><div><p>If your system boots in UEFI mode, the installer will handle the bootloader automatically. If, after installation, the system does not boot and drops to a UEFI shell or &quot;Boot device not found&quot;, your firmware may have a non-standard UEFI implementation. In that case, edit <span class="bbc">/etc/refractainstaller.conf</span> to uncomment the <span class="bbc">media_opt</span> line:</p><div class="codebox"><pre><code># UEFI Removable Media Path
# Uncomment to force installation to the removable media path also.
# This option is only available on EFI.
# Default is commented out.

#media_opt=&quot;--force-extra-removable&quot;</code></pre></div></div></blockquote></div><p>This covers the remaining edge cases (e.g., the fallback path was occupied by something non-bootable, or the firmware is broken in a way that even the fallback path doesn&#039;t help).</p><p>Happy to put together a commit (especially for admonition on Excalibur&#039;s <a href="https://www.devuan.org/os/documentation/install-guides/excalibur/live-gui" rel="nofollow">Live Install Guide</a> on the website), and/or wiki edit (if that&#039;s a thing yet) if that&#039;s the right place for it. I just need permissions/the direction as to how to actually do that.</p>]]></description>
			<author><![CDATA[dummy@example.com (wolfdaemon)]]></author>
			<pubDate>Wed, 26 Aug 2026 16:58:39 +0000</pubDate>
			<guid>https://dev1galaxy.org/viewtopic.php?pid=65319#p65319</guid>
		</item>
		<item>
			<title><![CDATA[Re: How to actually install Devuan (on UEFI, esp. desktop-live Install)]]></title>
			<link>https://dev1galaxy.org/viewtopic.php?pid=65317#p65317</link>
			<description><![CDATA[<p>Booting a usb in uefi mode varies depending on the motherboard. I usually bring up the boot device menu to boot from usb, and some motherboards give a choice of booting it either way. The devuan-live isos when imaged to a usb stick (using dd or cat) should boot whichever way the bios is set to boot the hard disk, but that doesn&#039;t always work out. Again, that depends on how the motherboard implements uefi (i.e. how it deviates from standards.)</p><p>A simpler way to install to the removable media path is to edit /etc/refractainstaller.conf to uncomment the media_opt line.</p><div class="codebox"><pre><code># UEFI Removable Media Path
# Uncomment to force installation to the removable media path also.
# This option is only available on EFI.
# Default is commented out.

#media_opt=&quot;--force-extra-removable&quot;</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (fsmithred)]]></author>
			<pubDate>Wed, 26 Aug 2026 13:38:52 +0000</pubDate>
			<guid>https://dev1galaxy.org/viewtopic.php?pid=65317#p65317</guid>
		</item>
		<item>
			<title><![CDATA[How to actually install Devuan (on UEFI, esp. desktop-live Install)]]></title>
			<link>https://dev1galaxy.org/viewtopic.php?pid=65316#p65316</link>
			<description><![CDATA[<div class="quotebox"><blockquote><div><p><strong>IMPORTANT</strong>: This guide has helped countless users recover from boot failures. Remember: the <span class="bbc">--removable</span> flag is your friend when EFI variables are inaccessible!</p></div></blockquote></div><h5>## The Problem: &quot;No Bootable Device&quot; After Installation</h5><p>If you have attempted to install Devuan following the <a href="https://www.devuan.org/os/documentation/install-guides/excalibur/live-gui" rel="nofollow">Live Install Guide</a> for the <a href="https://www.devuan.org/get-devuan#iso-guide-for-amd64" rel="nofollow">desktop-live</a> ISO using the <span class="bbc">refractainstaller</span>, you&#039;ve probably encountered this issue. The installation process appears to finish successfully, but when you remove the USB drive and reboot, you&#039;ve likely encountered a warning similar to:</p><div class="codebox"><pre><code>grub-install: warning: EFI variables cannot be set on this system.
You will have to complete the GRUB setup manually.</code></pre></div><p>This guide explains exactly why this happens, why it is not an issue with your physical system, and how the <span class="bbc">--removable</span> flag provides a universal fix.</p><h5>## The Core Concept (UEFI vs. Legacy)</h5><p>To understand the error, you must understand the two ways computers boot:</p><ol class="decimal"><li><p><strong>Legacy BIOS (Old Way):</strong> The computer looks at the very first sector of your hard drive (MBR) to find the bootloader. It&#039;s simple and doesn&#039;t require a special partition.</p></li><li><p><strong>UEFI (New Way):</strong> Modern computers (almost all made since 2012) use UEFI. Instead of looking at the first sector, the motherboard has a small internal database (NVRAM) that stores a Boot List. This list tells the computer exactly which file on which partition to load (e.g., <span class="bbc">\EFI\devuan\grubx64.efi</span>).</p></li><li><p><strong>The Catch:</strong> To add an entry to this internal Boot List, the operating system installer must have special access to the motherboard&#039;s firmware settings via something called <em>EFI Variables</em>.</p></li></ol><h5>## Why the Installation Failed</h5><p>When you run the Devuan installer (<span class="bbc">refractainstaller</span>) or the <span class="bbc">grub-install</span> command from a Live USB, one of two things usually happens to block access to these EFI Variables:</p><p><strong>### Scenario A: Devuan booted the Live USB install in &quot;Legacy/CSM&quot; Mode</strong></p><p>Even if your laptop supports UEFI, many ISO creators default to &quot;Legacy&quot; compatibility mode.</p><ul><li><p><strong>What happens:</strong> The Linux kernel sees it is running in Legacy mode. It disables all UEFI features because it thinks they aren&#039;t available.</p></li><li><p><strong>The Result:</strong> When <span class="bbc">grub-install</span> tries to talk to the UEFI firmware to add your new Devuan entry to the boot list, the firmware says, <em>&quot;I can&#039;t hear you,&quot;</em> or the kernel says, <em>&quot;I don&#039;t have the tools to talk to it.&quot;</em></p></li><li><p><strong>The Error:</strong> EFI variables cannot be set on this system.</p></li></ul><p><strong>### Scenario B: The <span class="bbc">efivarfs</span> Filesystem is Missing</strong></p><p>Even if you booted the USB in UEFI mode, the Live environment might not have automatically mounted the special virtual filesystem (<span class="bbc">efivarfs</span>) that allows software to talk to the UEFI chip.</p><p><strong>The Result:</strong> The installer copies the bootloader files to your hard drive successfully, but fails at the very last step: registering the boot entry in the motherboard&#039;s memory.</p><h5>## The Consequence</h5><p>The installer copies the necessary files (like <span class="bbc">grubx64.efi</span>) to your hard drive&#039;s EFI partition, but it fails to tell your motherboard that these files exist. When you reboot, the motherboard looks at its empty Boot List, finds no instruction to load Devuan, and gives up with &quot;No Bootable Device.&quot;</p><h5>## The Solution (The <span class="bbc">--removable</span> Flag)</h5><p>You don&#039;t need to re-partition or fix the Live USB boot mode. You can force the bootloader to install in a way that bypasses the need for EFI Variables entirely.</p><h5>### How It Works</h5><p>UEFI standards mandate a fallback path. If the motherboard&#039;s Boot List is empty or broken, it is required to look for a specific file at a specific location:</p><div class="codebox"><pre><code>/efi/boot/bootx64.efi</code></pre></div><p>By using the <span class="bbc">--removable</span> flag, you tell <span class="bbc">grub-install</span>:</p><p><em>&quot;Don&#039;t try to write to the motherboard&#039;s internal database (which is failing). Instead, copy the bootloader to the fallback location that every UEFI computer checks automatically.&quot;</em></p><h5>## Step-by-Step Repair Guide</h5><p>Since you already have Devuan installed and just need to repair GRUB, follow these steps to chroot correctly and reinstall the bootloader. The &quot;no directory&quot; error you saw earlier usually happens because the virtual filesystems (/dev, /proc, /sys) were not bound before entering the chroot.</p><ol class="decimal"><li><p><strong>Boot from your Live USB/CD.</strong></p></li><li><p><strong>Login as superuser:</strong></p><div class="codebox"><pre><code>su -</code></pre></div></li><li><p><strong>Mount Partitions and Bind Filesystems</strong></p><p>Use <span class="bbc">lsblk</span> to identify the root <span class="bbc">/</span> partition (<span class="bbc">TYPE</span>... <span class="bbc">part</span>) that you set with <span class="bbc">refractainstaller</span> for your permanent (non-live) install on your device&#039;s drive. It should be the one that IS NOT the mountpoint for the <span class="bbc">/run/live*</span> directories.<br />&#160; &#160; <br />In the example output below, this is what typical user&#039;s setup <em>might</em> look like:</p><div class="codebox"><pre><code>NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0   1.5G  1 loop /run/live/rootfs/filesystem.squashfs
sda      8:0    0   1.8T  0 disk 
└─sda1   8:1    1   1.7G  0 part /run/live/medium
└─sda2   8:2    1   1.4M  0 part
sdb
└─sdb1   9:1    1   476M  0 part /boot/efi
└─sdb2   9:2    1   69.4G 0 part /</code></pre></div><p>In this example case, the partition identified within <span class="bbc">/dev/sdb2</span> would be root <span class="bbc">/</span>, and the EFI partition for UEFI setups would be <span class="bbc">/dev/sdb1</span>.<br />`<br />|---<br />| <strong>NOTE:</strong> The commands in below will use this example scenario, your input/commands will vary.<br />|---<br />&#160; &#160; &#160; <br />- Mount root partition: </p><div class="codebox"><pre><code>mount /dev/sdb2 /mnt</code></pre></div><p>- (UEFI use only) Mount EFI partition: </p><div class="codebox"><pre><code>mount /dev/sdb1 /mnt/boot/efi</code></pre></div><p>- Bind virtual filesystems (CRITICAL STEP):</p><div class="codebox"><pre><code>mount --rbind /dev /mnt/dev
mount --rbind /proc /mnt/proc
mount --rbind /sys /mnt/sys
mount --rbind /run /mnt/run</code></pre></div><p>- Copy DNS settings to allow network access inside chroot: </p><div class="codebox"><pre><code>cp /etc/resolv.conf /mnt/etc/</code></pre></div></li><li><p><strong>Enter the Chroot</strong></p><p>Now enter the environment:</p><div class="codebox"><pre><code>chroot /mnt /bin/bash</code></pre></div></li><li><p><strong>Reinstall and Update GRUB</strong></p><p>Once inside the chroot, determine your boot mode. Run this command to check:</p><div class="codebox"><pre><code>ls /sys/firmware/efi/efivars</code></pre></div><p>&#160; &#160; <br />If the directory is missing or empty, you are in <strong>BIOS/Legacy mode</strong>.<br />If the directory exists and contains files, you are in <strong>UEFI mode</strong>.<br />&#160; &#160; <br />- <strong>For BIOS/Legacy Systems:</strong></p><div class="codebox"><pre><code>apt update
apt install --reinstall grub-pc
grub-install /dev/sdX
update-grub</code></pre></div><p>|---<br />| <strong>NOTE</strong>: Replace /dev/sdX with your disk, e.g., /dev/sda, NOT a partition like /dev/sda1)<br />|---<br />`<br />- <strong>For UEFI Systems:</strong></p><div class="codebox"><pre><code>apt update
apt install --reinstall grub-efi-amd64
grub-install --target=x86_64-efi --efi-directory=/boot/efi --removable
update-grub</code></pre></div><p>&#160; &#160; <br />|---<br />| <strong>NOTE</strong>: We removed <span class="bbc">--bootloader-id=Devuan</span> long option in the <span class="bbc">grub-install</span> command<br />| because it is ignored when using <span class="bbc">--removable</span>).<br />|---<br />&#160; &#160; <br />|---<br />| <strong>NOTE</strong>: If update-grub fails to detect other operating systems, ensure <span class="bbc">os-prober</span> is installed and uncomment<br />| <span class="bbc">GRUB_DISABLE_OS_PROBER=false in /etc/default/grub</span>.<br />|---<br />`</p></li><li><p><strong>Exit and Reboot</strong></p><div class="codebox"><pre><code>umount -R /mnt
reboot</code></pre></div></li></ol>]]></description>
			<author><![CDATA[dummy@example.com (wolfdaemon)]]></author>
			<pubDate>Wed, 26 Aug 2026 03:56:49 +0000</pubDate>
			<guid>https://dev1galaxy.org/viewtopic.php?pid=65316#p65316</guid>
		</item>
	</channel>
</rss>
