You are not logged in.
I'm a Devuan person.
@greenjeans: I think the original topic has gone MIA after the testing / project ended.
For neatness' sake, you may want to consider marking the thread as solved.
Not necessarily, the conversation has pivoted somewhat, but it has turned to discussion of the stumbling block itself, and perhaps a better understanding of that will help with expanding the script to include efi stuff.
I did spend a little time working on re-writing, but after several attempts i'm not quite there, so it's on the back-burner simmering while I try to gather more data and do more reading. I have a working prototype (mostly) that extends it to bypass the need for Mintstick, and does everything I want it to, wipe-format-write-add data partition. But again, that's gonna be useless for efi-only isos that may need the boot partition on the liveUSB.
Gonna be twice the amount of code just to deal with the useless efi crap.
Why would easyOS be pertinent to this topic? It doesn't even use the .iso format from what i've read? To be honest, from reading about it, I think Barry lost a marble or two after he stopped developing Puppy.
No, something in that iso is making that happen, I make liveUSB's all the time with daedalus based isos, my own, vanilla Devuan daedalus, even Devuan excalibur. It's not the kernel version triggering it. It's definitely the iso itself.
That's right. the i386 doesn't do uefi. I'm not aware of any 32-bit uefi systems.
Apparently Crunchbang++ does, the iso Altoid linked to is efi, and won't boot up a live-session on my machine.
Something really wrong with that iso anyway, it's bizarre, downloading it alone caused my browser to lock up at the end of the process. And just looking at it on a usb stick that I burned, it's got a whole lot of odd stuff on it I usually don't see on normal isos.
And it apparently requires an efi partition as Altoid mentioned just to (attempt) to boot.
Uefi is just shit. Pure shit. Like shit with a side of shit-sauce and a shit-shake with some turds on the side.
I don't think computer emergencies are directly comparable to hospital emergencies, so i'm afraid your analogy doesn't work at least for me.
Like it or not, LLM's are likely the way forward, not everybody has the time or patience to search endless links, tutorials and read dozens if not hundreds of man pages...I know it's wearing me right out.
I don't think IRC can be considered as part of the infrastructure of Devuan or any distro for that matter, it's just a handy little outside utility, a simple courtesy that may be helpful.
If I really want eyes on an issue, I post it to the forum first, where it will be easily accessible and seen by many. Then I go on IRC and post a link to the forum thread for maximum coverage.
Yeah after sleeping on it, i'm not sure i'm inclined to put in the work to make it work with efi stuff, I have a couple machines here that will do efi but they're both in compatibility/legacy mode and i'm quite happy with them, and not willing to change that to test some stuff i'll likely never use. Efi is just shit, and I don't feel like stepping in it if I can help it.
It's been a fun project and an awesome learning experience, and now I have a super nice tool that i'll use regularly. Bonus: I un-installed the gnome-disk-utility because now I don't need it anymore, my utility actually does a trick the GDU does not.
@igorzwx I'd rather mess with X-apps than Gnome apps. This CSD theming crap is a deal-breaker. No more Gnome GUI apps in my projects.
As far as themes, thanks for the recommendation, but I already made my own that I like quite a lot.
Ice-Breaker! It's very nice and soothing, but not all blacked out like the truly dark themes.
Aaargh, of course it would be uefi....yeah I don't think i've even got a uefi iso around here anyway, for sure I haven't tested one. crap.
All right, back to the drawing board. Like I needed another reason to dislike uefi.
I've used the utility to write over sticks that already had a second partition just fine, must be something with that uefi partition, and I guess it needs to stay, and also possibly some additional delay needed in the script.
Thanks again Altoid, this is all good info, smacking my forehead right now that I didn't even think about an efi-iso needing a 2nd partition on a liveUSB, seems like a regression if you ask me.
(emoji doing the happy dance!)
Awesome, one last question my friend and i'll stop harassing you, did you add the extra sleep command to the script to get it to work or did the CLI version work for you without having to add the extra code?
Sweet, thank you!!
Just need to try sleep 1 or maybe sleep 2, just add it on:
GUI script : Should be line 125
CLI script : Should be line 106
That's an empty line in both scripts right before the "# Check if the new partition was created" function. It may take more than that, but let's try the simplest thing first.
Lol, if we can get it to work on your set-up i'm pretty sure it's bulletproof!
P.S. I owe you a beer my friend, if you ever find yourself in the Midwest section of the US, give me a shout!
Here's a CLI version of the script, @Altoid I have not added the additional sleep command here, if you test it maybe try it as-is first, and then if it fails at the check, add sleep 1 on line 106, maybe sleep 2. It would be awesome if you could also just try using a regular usb stick plugged in to one of your machines original usb 2 ports.
#!/bin/bash
# Fatstick CLI: Creates a secondary FAT32 data partition on a liveUSB made with Mintstick.
# Copyleft greenjeans 2025, use as you see fit.
# This is free software with NO WARRANTY, use at your own risk!
# Function to display error message and exit
error_exit() {
local error_message="$1"
echo "Error: $error_message" >&2
exit 1
}
# Must run with root privileges
if [ "$EUID" -ne 0 ]; then
error_exit "This script must be run as root (use sudo or su)."
fi
# Display initial prompt
echo "This utility is for use on an existing liveUSB with an ISO-9660 filesystem"
echo "created by Mintstick. It will create a secondary FAT32 data partition labeled"
echo "'DATA' in the remaining space. WARNING: Existing secondary partitions will be"
echo "overwritten, and data on them will be lost."
echo ""
echo "Ensure only one liveUSB with an ISO-9660 filesystem is plugged in."
echo "Run 'lsblk -o NAME,FSTYPE,LABEL' or 'blkid' to check connected devices."
echo ""
echo "Continue? (y/n): "
read -r response
if [ "$response" != "y" ] && [ "$response" != "Y" ]; then
echo "Aborted."
exit 0
fi
# Check for multiple USBs with iso9660 filesystems
ISO_COUNT=$(blkid -o device -t TYPE=iso9660 | wc -l)
if [ "$ISO_COUNT" -gt 1 ]; then
error_exit "Multiple USB devices with ISO-9660 filesystems detected. Unplug all but one and try again. Run 'blkid -o list' to identify devices."
elif [ "$ISO_COUNT" -eq 0 ]; then
error_exit "No USB with ISO-9660 filesystem found. Run 'lsblk -o NAME,FSTYPE,LABEL' and 'blkid' to diagnose."
fi
# Find the USB device with an iso9660 filesystem
USB_PART=$(blkid -o device -t TYPE=iso9660 | head -n 1)
if [ -n "$USB_PART" ]; then
USB_DEV=$(echo "$USB_PART" | sed 's/[0-9]*$//')
fi
# Fallback to lsblk if blkid fails
if [ -z "$USB_DEV" ]; then
USB_PART=$(lsblk -o NAME,FSTYPE | grep iso9660 | awk '{print $1}' | head -n 1)
USB_DEV=$(echo "$USB_PART" | sed 's/[0-9]*$//' | head -n 1)
USB_DEV="/dev/${USB_DEV}"
fi
if [ -z "$USB_DEV" ] || [ ! -b "$USB_DEV" ]; then
error_exit "No USB with ISO-9660 filesystem found. Run 'lsblk -o NAME,FSTYPE,LABEL' and 'blkid' to diagnose."
fi
# Unmount any mounted partitions on the USB
umount "${USB_DEV}"* 2>/dev/null
# Get the partition table and disk info
FDISK_OUT=$(fdisk -l "$USB_DEV" 2>/dev/null)
if [ -z "$FDISK_OUT" ]; then
error_exit "Failed to read disk info with fdisk."
fi
# Extract the end sector of the iso9660 partition
ISO_END=$(echo "$FDISK_OUT" | grep "^${USB_PART}" | awk '{print $4}')
if [ -z "$ISO_END" ]; then
error_exit "Could not determine end sector of iso9660 partition."
fi
# Extract total sectors
TOTAL_SECTORS=$(echo "$FDISK_OUT" | grep "^Disk $USB_DEV" | grep -o '[0-9]\+ sectors' | awk '{print $1}')
if [ -z "$TOTAL_SECTORS" ]; then
error_exit "Could not determine total disk sectors."
fi
# Calculate start and size of the new partition
PART_START=$((ISO_END + 1))
PART_SIZE=$((TOTAL_SECTORS - PART_START))
# Check space (needs at least 1 MB = 2048 sectors)
if [ "$PART_SIZE" -lt 2048 ]; then
error_exit "Not enough free space to create a new partition (need at least 1 MB)."
fi
# Proactively wipe ISO-9660 signatures to prevent Gparted detection issues
echo "Wiping ISO-9660 signatures..."
wipefs -a -t iso9660 "$USB_DEV" 2>/dev/null || {
error_exit "Failed to wipe ISO-9660 signatures on $USB_DEV."
}
# Remove any existing secondary partitions
echo "Removing existing secondary partitions..."
sfdisk --delete "$USB_DEV" 2 2>/dev/null
# Create a new partition using sfdisk
echo "Creating new partition..."
echo "start=$PART_START, size=$PART_SIZE, type=c" | sfdisk --append "$USB_DEV"
if [ $? -ne 0 ]; then
error_exit "Failed to create partition on $USB_DEV."
fi
# Check if the new partition was created
NEW_PART="${USB_DEV}2"
if [ ! -b "$NEW_PART" ]; then
error_exit "Failed to create partition $NEW_PART."
fi
# Refresh the partition table and wait for kernel to recognize new partition
echo "Refreshing partition table..."
partprobe "$USB_DEV"
sleep 2
for i in {1..3}; do
if [ -b "$NEW_PART" ]; then
break
fi
sleep 1
done
if [ ! -b "$NEW_PART" ]; then
error_exit "New partition $NEW_PART not detected by kernel."
fi
# Format the new partition as FAT32
echo "Formatting new partition as FAT32..."
mkfs.vfat -n "DATA" "$NEW_PART" 2>/dev/null
if [ $? -ne 0 ]; then
error_exit "Failed to format $NEW_PART as FAT32."
fi
# Verification of FAT32, 3 tries
for i in {1..3}; do
if blkid -o device -t TYPE=vfat | grep "$NEW_PART" >/dev/null; then
break
fi
sleep 1
done
if ! blkid -o device -t TYPE=vfat | grep "$NEW_PART" >/dev/null; then
error_exit "Could not verify FAT32 filesystem on $NEW_PART, but partition was created. Check with 'lsblk -o NAME,FSTYPE,LABEL'."
fi
# Display success message
echo "Success! New partition $NEW_PART created with FAT32 filesystem, labeled 'DATA'."
Can't speak for Mint or their LMDE, or their themes.
As far as a menu icon, I use the simple menu in Mate, one icon that opens the menu, not the fancy ones.
For that icon, it's pretty simple, the icon is "start-here.png", and I just replace it in my chosen theme with one of my choosing. Don't know if that's helpful or not.
^^^I'm just going by what others have said, again I have no experience with Ventoy myself.
In point of fact i'm working on my own scripts to make a utility to burn iso's to sticks and create additional partitions, of all of them Refracta2usb is the most complete and works the best to do all the things. I'm working on something in between it and Mintstick in terms of functionality. It's tough messing with USB's sometimes, fine line between success and disaster when working with all the things necessary to make it happen.
Arrgh, too bright! I go snowblind with those kinds of themes!
I am warming up quite a bit at the excalibur-deathmetal wall paper (insert jolly roger emoticon here). It's almost perfect, just needs a little tweaking IMO.
First time I saw it, I thought "yes YES Golinux! Come over to the darkside where it's nice and cool, we have cookies!"
LOL!
Devuan is not compatible with Ventoy it seems, have a look at this thread, may be some help:
https://dev1galaxy.org/viewtopic.php?id=7092
Shame that laptop doesn't have an optical drive.
The Devuan net-install works just like the Debian, you can choose to only create a CLI-only iso if desired then install programs after installing/booting it, or at the software section you can choose to add a number of DE's including KDE, but i'm not sure that will give you a core-only KDE, probably installs the whole works, I know if you choose Mate it installs the whole Mate meta-package.
If I want just core stuff, I do the CLI-only, boot that up, then start apt'ing.
Have not used or tested Ventoy myself. You can likely dd the iso manually if you're comfortable using dd.
I use Mintstick typically, it seems to just work with everything so far. Refracta2usb also works great, offering options for multi-boot and persistence that Mintstick does not.
ETA: Welcome to Devuan! It might have some quirks being free of the curse of systemd, but it's well worth the effort in the end, simple and stable.
Wow, even funkier! Okay I think anyone would agree that's a pretty non-traditional and uncommon setup, and after some thought it seems like to me that your wild daisy-chain of things there, has introduced some additional latency which contributed to the errors. Quite frankly i'm amazed it worked at all.
Still it's good exercise in edge-case scenarios and dealing with them. I think maybe just adding a "sleep 1" (or 2) right around line 126, right before the partition check, might make it work for your case.
I also have a cli version of the script, it might be easier to test that in your situation, let me know and i'll post it with an added sleep command in that section.
ETA: thinking more about it, in a newer machine there's probably not even a need to do any of the timeouts. My machine is old and very low spec even for it's time, 2012 Compaq with a dual-core APU @ likely 700-800 mhz actual, and 4gb of old ram.
But of course that's a lot of the point of what I do, I work on older machines and try to make them run, knowing if it works on my machine it's likely to work on anything from the last 15 years, and should work really well on anything newer than 2015 or so.
@golinux, I knew you'd chime in, you dislike that damn file as much as I do, lol. But unfortunately i've had to embrace it.
If it were not for that file, I wouldn't have found a nasty bug in the excalibur version of Mate/Caja that caused it to grow exponentially, causing me to file a bug report, that was actually acted upon immediately by upstream folks and subsequently fixed.
FYI though, I think Mate just likes to complain, even in stable daedalus it writes errors to that file constantly. Openbox is the only set-up so far i've been able to clear completely of errors. Openbox in a lot of ways is better than every DE out there.
For others reading, the name is a misnomer, yes errors get dropped there, but in normal use it simply catalogs events related to login, and then some subsequent operations also get cataloged in that file, if you don't have errors in operation then none get written.
To be clear:
Every time you boot up OR logout/logbackin, the system will do 3 things:
1. Create a brand new .xsession-erros for that session
2. Take the old file and and re-name it .xsession-errors.old
3. Delete the old .xsession-errors.old
You can delete any of the files manually and they won't be recreated for that session. Bleachbit is alo set up to delete both files.
@fsmithred is right, that file is aggravating at times, but can be very helpful when trying to diagnose errors while in session.
Do a fresh boot up, and then before doing anything else, check that file, it will tell you if there's errors during the process of setting up your session.
Okay that's a funky set-up my friend, sd card in a USB 2 converter, plugged into a USB3 slot...That's definitely an edge case, surprised it worked at all.
How you got a USB 3.0 slot on a 2009 machine?
Edit: Really need some more testing, preferably some garden-variety testing using actual USB sticks.
C'mon ya'll, help a brother out, this may not be important to ya, but it increases my knowledge and skill level which I hope to leverage into making myself of more use to Devuan and the community in the years to come, so it will benefit you too as Devuan users.
Edited the OP to provide some context, sorry about that.
I'm kinda excited by this. Mint, like Devuan, is doing some good works for the community and freedom of choice.
Gnome has some good and useful things about it, some nice apps, dang shame they developed a M$ attitude about it.
Although the same thing happened ie: the pop-up with an error for writing the second partition, on checking I saw that the second partiton had been formatted.
You may want to test and see if a short pause somewhere between the creation of the second partition and formatting it to FAT32 would avoid that.
Thanks for testing @Altoid!
Yeah I had similar errors myself multiple times when testing later versions of the script. And sometimes it would error, yet work perfectly.
if you notice there are already some "timeouts" in there that fixed this on my machine at least. That's great info you gave me, seems I may need to extend/add some time in those areas. The script does work fast, too fast it seems for some other parts of the system. Any chance I could get specs of the machine you tested it on?
ETA: Also, model and size of stick?
And yeah, the stick winds up unmounted at the end of the process, but should still show in your file-manager as being present, so you should be able to just click the new partition(s) to mount. Pretty much all of my testing thus far has been in Mate, I need to run some tests in my Openbox partitions (though it should be same result).
@RRQ: Thanks for weighing in on this, I need to study your post a bit and do some research, again, i'm a rookie at this, but blkid seems to work fine for that check, if there's no vfat partition on that stick it's going to error out as it should, which is all i'm after...but yeah it may actually be a superfluous check anyway, i'm working off the premise right now that "if there's anything that gets done, it probably needs an error check". Which is mainly actually for my benefit to make it easier and faster to de-bug, some stuff probably doesn't need to be in the final script I guess.
ETA: Just wanted to re-iterate, I REALLY appreciate any and all comments and testing and suggestions, they are immensely helpful and give me things to consider that I might have not thought about, you guys rock and although my brain hurts a bit right now i'm still having a lot of fun with this stuff.
Would require someone to integrate it into Devuan though. Perhaps someone will step up to take it on . . .
Well above my skill level likely, but i'm going to give that project a little time to mature, then i'm going to start testing it on Devuan, i'll for sure post any results so maybe that will be helpful.