You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Rufus doesn't add persistent flag to "label live" in isolinux/live.cfg when persistent option is enabled #2807
I have been made aware that if my problem can be summarized as "I've created or tried to create a media using Rufus, and ...", and I am not including a log, this issue will be summarily closed.
I performed a search in the issue tracker for similar issues using keywords relevant to my problem, such as the error message I got from the log.
I clicked the 'Log' button (🗒️) or pressed Ctrl-L in Rufus, or used DebugView, and copy/pasted the log into the section that says <FULL LOG> below.
The log I am copying is the FULL log, starting with the line Rufus version: x.y.z - I have NOT removed any part of it.
Additionally (if applicable):
I ran a bad blocks check, by clicking Show advanced format options then Check device for bad blocks, and confirmed that my USB is not defective.
I also tried one or more of the following:
Using a different USB drive.
Plugging the USB into a different port.
Running Rufus on a different computer.
If using an image, I clicked on the (✓) button to compute the MD5, SHA1 and SHA256 checksums, which are therefore present in the log I copied. I confirmed, by performing an internet search, that these values match the ones from the official image.
Issue description
I flashed latest Linux Mint 22.2 Cinnamon with persistent option 10gb and then noticed that persistence actually doesn't work when booting using BIOS: I installed VeraCrypt which was missing after reboot.
After some investigation I found that my old I PC boots in only BIOS and live entry in isolinux/live.cfg have persistent flag missing. After I added it, persistence starts to work:
label live
menu label Start Linux Mint
menu default
kernel /casper/vmlinuz
append boot=casper persistent initrd=/casper/initrd.lz uuid=6e72f523-dc09-4880-8910-93ffa64401c5 username=mint hostname=mint quiet splash --
But other entries in isolinux/live.cfg have persistent flag.
One more problem: casper-rw is formatted as ext3, I guess it should be ext4. I reformatted my casper-rw as ext4.
I'll see if I can improve the persistent option for Mint BIOS users, but considering that fewer and fewer people are going to be using Mint on BIOS/Legacy system, and that trying to support persistence for every distro under the sun is a major pain in the ass because, since persistence is implemented in a very idiotic way on Linux, we have no choice but use a super brittle mechanism in Rufus, and the minute distro maintainers start to move their kernel options around, it's going to break.
One more problem: casper-rw is formatted as ext3, I guess it should be ext4.
If it has to be ext4 for persistence to work on some Linux distros, then persistence implementations on Linux would have to be even stupider than they currently are, which is to say something (again, if Linux folks were doing persistence properly, there should be no need for a kernel options or a specific file system, but just for the init script to look for a mountable partition with a specific label/file/UUID and that's it. It's really not that complicated!), so I doubt that.
ext3 is absolutely fine for a persistence partition running off a USB drive, and, since I have to provide full file system support for a file system that is not native to Windows, just to implement persistence support in Rufus (and this was a lot more involved than simply copying a bunch of existing source files, as ext2fs was never designed to compile for Visual Studio/Windows), I have no plan to provide ext4 support in Rufus, as the cost/benefit ratio of doing so is simply not worth it.
@pbatard, thanks! It's not too many utils that support persistence in Linux.
persistence is implemented in a very idiotic way on Linux
Probably, but Windows live Win PE doesn't support persistence at all.
The issue probably not Mint specific but applies for all distros using BIOS boot and persistence.
In isolinux/live.cfg couple items have linux /casper/vmlinuz and first "label live" has kernel /casper/vmlinuz.
In iso.c in fix_config(), line 497 there is a check only for linux. So I see 2 options:
replace kernel with linux as linux per their docs is alias for kernel
or add check for kernel /casper/vmlinuz in fix_config()
Please bear in mind that the kernel option (kernel vs linux) are based on what distros actually use, and not what they could be using, so replacing kernel with linux would immediately break Ubuntu, Debian and so on, who do use linux and not kernel (even if they could use either).
In short, we are not adding the option ourselves, but instead we are performing a keyword lookup for the option that the distro maintainers have chosen to use, which is therefore invariant. Which means that, to support Mint, who chose to go with kernel rather than linux, as everybody else seems to do, we now have to add an explicit lookup for kernel...
In other words, only option 2 can work. Option 1 would break persistence support for all other distros.
And now you understand why I stated that trying to support persistence for all distros out there is brittle and a massive pain in the ass, because pretty much every distro that we want to support for persistence needs to have its own specifically tailored custom exception, that depends on how the distro maintainers decided to shuffle their options, when they wrote their Syslinux/GRUB config files...
Since I am fixing this, the reason why you are seeing this issue is that the Mint maintainers are unable to maintain consistency in their live.cfg file, so instead of using linux /casper/vmlinuz everywhere, they went for:
label live
menu label Start Linux Mint
menu default
kernel /casper/vmlinuz
append boot=casper initrd=/casper/initrd.lz uuid=6e72f523-dc09-4880-8910-93ffa64401c5 username=mint hostname=mint quiet splash --
label compat
menu label Start Linux Mint in compatibility mode
linux /casper/vmlinuz
append boot=casper initrd=/casper/initrd.lz uuid=6e72f523-dc09-4880-8910-93ffa64401c5 username=mint hostname=mint noapic noacpi nosplash irqpoll nomodeset --
label oem
menu label OEM install (for manufacturers)
linux /casper/vmlinuz
append oem-config/enable=true only-ubiquity boot=casper initrd=/casper/initrd.lz uuid=6e72f523-dc09-4880-8910-93ffa64401c5 username=mint hostname=mint quiet splash --
(...)
So, yeah, had the Mint distro maintainers been consistent in their config file, this would be a nonissue.
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue if you think you have a related problem or query.
Activity
pbatard commentedon Sep 19, 2025
Thanks for the report.
I'll see if I can improve the persistent option for Mint BIOS users, but considering that fewer and fewer people are going to be using Mint on BIOS/Legacy system, and that trying to support persistence for every distro under the sun is a major pain in the ass because, since persistence is implemented in a very idiotic way on Linux, we have no choice but use a super brittle mechanism in Rufus, and the minute distro maintainers start to move their kernel options around, it's going to break.
If it has to be
ext4for persistence to work on some Linux distros, then persistence implementations on Linux would have to be even stupider than they currently are, which is to say something (again, if Linux folks were doing persistence properly, there should be no need for a kernel options or a specific file system, but just for the init script to look for a mountable partition with a specific label/file/UUID and that's it. It's really not that complicated!), so I doubt that.ext3is absolutely fine for a persistence partition running off a USB drive, and, since I have to provide full file system support for a file system that is not native to Windows, just to implement persistence support in Rufus (and this was a lot more involved than simply copying a bunch of existing source files, as ext2fs was never designed to compile for Visual Studio/Windows), I have no plan to provideext4support in Rufus, as the cost/benefit ratio of doing so is simply not worth it.yulian5 commentedon Sep 19, 2025
@pbatard, thanks! It's not too many utils that support persistence in Linux.
Probably, but Windows live Win PE doesn't support persistence at all.
The issue probably not Mint specific but applies for all distros using BIOS boot and persistence.
In isolinux/live.cfg couple items have linux /casper/vmlinuz and first "label live" has kernel /casper/vmlinuz.
In iso.c in fix_config(), line 497 there is a check only for linux. So I see 2 options:
pbatard commentedon Sep 19, 2025
Please bear in mind that the kernel option (
kernelvslinux) are based on what distros actually use, and not what they could be using, so replacingkernelwithlinuxwould immediately break Ubuntu, Debian and so on, who do uselinuxand notkernel(even if they could use either).In short, we are not adding the option ourselves, but instead we are performing a keyword lookup for the option that the distro maintainers have chosen to use, which is therefore invariant. Which means that, to support Mint, who chose to go with
kernelrather thanlinux, as everybody else seems to do, we now have to add an explicit lookup forkernel...In other words, only option 2 can work. Option 1 would break persistence support for all other distros.
And now you understand why I stated that trying to support persistence for all distros out there is brittle and a massive pain in the ass, because pretty much every distro that we want to support for persistence needs to have its own specifically tailored custom exception, that depends on how the distro maintainers decided to shuffle their options, when they wrote their Syslinux/GRUB config files...
yulian5 commentedon Sep 19, 2025
I was not sure do you download live.cfg or generate it. But menu entries in the same config have both:
kernelandlinux.pbatard commentedon Sep 24, 2025
Since I am fixing this, the reason why you are seeing this issue is that the Mint maintainers are unable to maintain consistency in their
live.cfgfile, so instead of usinglinux /casper/vmlinuzeverywhere, they went for:So, yeah, had the Mint distro maintainers been consistent in their config file, this would be a nonissue.
Anyway, this should be fixed in the 4.10 release.
github-actions commentedon Dec 23, 2025
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue if you think you have a related problem or query.