The way I do it is I rip the cd I have to FLAC or MP3, then I mix the songs I want and burn it to a “music CD”. You do not want to make a data cd as computers usually try to burn by default.
I can rip em no problem. I "ripped" this one and am totally "just making a backup." Where I got 14 audio files is of little consequence, I would like to put those audio files on a blank disk which I have purchased.
The problem is I do not know how to get the files from brasero to the disk. They're all in brasero, the only options I have are "name" (we'll call it Keasby Nights), and a dropdown menu with "image file" as the only option, and a button labeled "burn." So naturally, you click "burn" right? Ok, well now it pops up with a file picker on /home/. What now?
I did a bit of googling and it seems like "Brasero" had widespread popularity. I found this:https://documentation.suse.com/sles/12-SP5/html/SLES-all/cha-gnome-burn.html, but can't test it because I haven't had a disk drive in at least a decade. Since this is forum meant for noobs, please let me know if you need guidance on how to install Brasero and I would be happy to help. From there, it has a GUI and should be quite familiar to anyone who used Winamp, itunes, or windows media player back in the day.
Thank you for your assistance. The issue isn't "how to install brasero" however.
As per the documentation, it says
1. Select Project › New Project › New Audio Project.
2. Drag and drop the individual audio tracks to the project directory. The audio data must be in WAV or Ogg Vorbis format. Determine the sequence of the tracks by moving them up or down in the project directory.
3. Click Burn. A dialog opens.
4. Specify a drive to write to.
5. Click Properties to adjust burning speed and other preferences. When burning audio CDs, choose a lower burning speed to reduce the risk of burn errors.
6. Click Burn.
My issue is during 4.
The dialog pops up just as you'd expect. Where do I choose to save the file? It defaults to being open on /home/, however I think if I save it there, the files will not be on my disk, they'll be in my home dir. Where is the disk?
Aha! I understand now. So, on Linux, everything is a file. Even Disk Drives, CDs, flash drives, etc. I think this may be the root of your confusion. Instead of new drive D:// popping up somewhat parallel to your C:// file system (as it would in Windows), it shows up inside your existing file system.
You were on the right path before. The cdrecord command you ran seems to have correctly told you the location of the CD in your file system (/dev/sr0) . I imagine this changes with distro and hardware, but I'm not sure because my CD burning days predate my Linux days. If you want to make sure that this is indeed the correct place to save the file, then run the command again with the CD removed. If it disappears, then you've got it.
The closest thing I've done is install raspberry OS to a flash drive, which often shows up as /dev/sd0, so it seems like you were very much on the right track. The /dev folder means "device", so most hardware peripherals will have some kind of presence here.
Yes that is indeed what I seek, thank you!
Well so it seems it is on /dev/sr0, because I have found some help on burning the disk through CLI with cdrecord itself, and sox to convert the files to .cdr format. The disk is now "burning" (well, it sounds like it! We'll see if it plays here shortly), but I would like to find out how to use brasero to do it.
For now though I can write a script to convert all the files in a given dir to .cdr and then auto burn them to the disk if this works though which ain't too shabby.
It looks like Brasero would handle all of that kind of Media Management stuff for you, so try it out before you reinvent the wheel.
Well that's the thing, I still haven't figured out how to make brasero actually do anything, but I have already written and tested my first version of my script and it's burning my second disk now. On this test I've figured out another line I need to add to improve it (and make it clean up the .cdr files after itself.) So, unless I can find someone with better instructions on brasero than "just do it" it seems I'm stuck with reinvention.
Incidentally, is it better for me to call sudo inside the script for cdrecord -v
or should I not use it inside and instead run sudo myscript
for the whole thing?
I think Ideally you should be able to run it as you instead of root or sudo. I'm assuming you are needing sudo since you don't have access to the burner as your user.
Do an "ls -lah" on your cd burner. I think you said it was /dev/sr0 so "ls -lah /dev/sr0" and see if it is owned by root:root or hopefully root:disk or something like that. The format is "user:group" so I'm hoping it is owned by a group that you can simply add your user to.
If it is owned by another group, you can just run "sudo usermod -aG disk user" replace disk with the group that shows on the ls command and user with your user.
If that burner is owned by root:root, there is a way to change that. But that gets very complicated. And I'm not sure its worth the effort for you unless you are wanting to learn more. Point 4.3 here: https://wiki.archlinux.org/title/Udev
In which case to directly answer your question, I'd personally prefer to sudo the script instead of adding sudo in the script. But at the end of the day, I don't think it matters too much for this specific use case.
Looks like root, I think. It says
brw-rw----+ 1 root cdrom 11, 0 Aug 18 14:13 /dev/sr0
no ":" though oddly, so maybe I can run
sudo usermod -aG cdrom $USER
?
Edit: looks like it throws the same error as not sudoing, wodim no write mode specified blah blah. It did add me to the cdrom group though. Although now it won't work with sudo, how do I remove myself from the cdrom group?
Edit again: Wait, I got it working with another disk, the one I was just trying may have been too big to fit on the disk but throwing the same error as when I didn't use sudo. Burning this one with sudo, will test again without when it finishes. Thankfully I have a stack of these disks lol I can do this all day.
Ok, still need sudo. Without sudo it just exits without writing to the disk. I guess what I thought was warnings is just standard incomprehensible readout, but yeah without sudo (or if the files are too big for the disk) it just exits and finishes out my script removing the .cdr files.
My bad thought it was printed as "user:group" and not "user group".
When you add yourself to a group you need to either log out and log back in or reboot in order for it to take effect. So maybe next time you log in try it without sudo again.
Oh cool thanks I'll log out and try again. Ran into another issue in my script I'm trying to work around now though: I disconnected and reconnected the drive, now it's /dev/sr1!
So, I guess I need to have my script run cdrecord -checkdrive
, and then take that answer as a variable $CDROM and pump it back into cdrecord -v dev=/dev/$CDROM -audio yadda yadda
.
This is getting a liiitle above my head lmao.
Edit: logged out and in, no dice, still sudo. Now to figure out this checkdrive issue...
if you want to take a break, I can ask somebody I know who might have a bit more experience with this.
I think I need one! Lol, I'll happily take a break, thanks for the help and let me know what your friend says!
I messaged him. No guarantees or anything, but he was my forum guy before I was your forum guy.
Thanks! Lol I've been a forum guy once or twice myself but this one is above me!
Ahhh, so apparently in the man page for cdrecord it mentions it needs to be ran as root since it uses "real time scheduling" to write. So even if you have proper permissions to use the cd burner, you still need root to run it. I made a bad assumption that you were having to use root since you didn't have permissions as your use to write to it.
If you don't need to parse the output of "cdrecord -checkdrive" then setting that var is pretty trivial.
CDROM=$(cdrecord -checkdrive)
If that outputs more than just the string you need, that gets a little headachey. Grep/awk/sed/sort/uniq/regex are all very powerful and esoteric.
That being said, the man page also mentions that most users will not have to specify "dev" at all as it should figure it out automatically. So you might be ok with axing the "dev" part of the command instead of feeding it the device path.
AH! Oh well no harm no foul, I can run my script as root, I trust me!
Cdrecord -checkdrive does output a whole mess of stuff:
Device was not specified. Trying to find an appropriate drive...
Detected CD-R drive: /dev/sr0
Device type : Removable CD-ROM
Version : 0
Response Format: 2
Capabilities :
Vendor_info : 'Slimtype'
Identification : 'eNAU108 8 '
Revision : 'XL0A'
Device seems to be: Generic mmc2 DVD-R/DVD-RW.
Using generic SCSI-3/mmc CD-R/CD-RW driver (mmc_cdr).
Driver flags : MMC-3 SWABAUDIO BURNFREE FORCESPEED
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
And the only part I need is the part that says /dev/sr0/.
I will try deleting the /dev/ part entirely though and see what happens (probably tomorrow evening). If it works that'll be perfect. Thanks!
Edit: No dice, dev=/dev/sr0 is needed in my case.
This is a very goofy workaround for you that doesn't actually check what the device is. Only checks if /dev/sr0 exists and if yes, use that if no then use /dev/sr1. Better solution below this block. But leaving it because I kind of like it's jankiness.
if [ -e /dev/sr0]; then
DEVICE="/dev/sr0"
else
DEVICE="/dev/sr1"
fi
Not elegant and a little janky but works.
This will work better. We are taking the output of -checkdrive, searching for "Detected" and sending that to awk. We are telling awk to split that line into columns based on this character ":" and to print the second column. That should give you an output of " /dev/sr0" with a space in front.
DEVICE=$(cdrecord -checkdrive | grep Detected | awk -F ":" '{print $2}')
That should work. But if you absolutely must kill the whitespace for some reason we can add trim to the end like so
DEVICE=$(cdrecord -checkdrive | grep Detected | awk -F ":" '{print $2}' | tr -d ' ')
There might be a more elegant solution by using the output of "cdrecord -scanbus" instead. No clue though since I don't have the hardware to verify from here. Hope that helps!
This looks like it'll work perfectly, thank you! When I get home from work I'll play around with -scanbus and see if it works out first, then I'll try with the space and if no dice I'll try without the space!
I'm also going to try k3b and see how that works as another poster was saying, but at this point I think I prefer the script lmao!
hey, man. I'm sorry you felt like I was saying "just do it". I'd be happy to help more, but I don't have a CD ROM to test with. I just assumed the GUI would be more self explanatory. Like I said above, I've never had to burn a CD on Linux. Please remember that the Linux community is made of volunteers. Getting frustrated at them doesn't really make them want to help, especially since I literally cannot help anymore than I have without a CD rom in my hands. If you want to ship one to me, I'd be happy to figure out Brasero and walk you through it. Since that is clearly unreasonable, remember that these forums are populated by well-intentioned people doing their best.
I mean it's not your fault, that's what the documentation for brasero says. It doesn't tell me how to "select where to save it" or whatever their exact verbiage is however, and the hard part is even getting people to understand what my issue is. You may not have been able to answer my main question but you helped me work around it, sorta, and for that I am grateful. I just wish the documentation and every comment helping didn't just say "download brasero" (which I clearly have already done as per my question) or "use this link which says 'brasero: just do it.'"
Tbf I'm sure most people don't bother to try and solve things themselves before posting, but I've already seen the brasero instructions that were linked because I did, and it still doesn't tell me what I need to select to get the files on the disk, it just tells me that I need to select something. Again I think selecting /dev/sr0 will replace and overwrite sr0 as per the warning, so I do not think it is the correct answer, and so far nobody has given any alternatives as to what the answer might be, instead offering suggestions on how to download brasero or that darn link again.
And as to reinventing the wheel:
Now I'm trying to get my script to run cdrecord -checkdrive
and pipe that answer into my script, the damn thing is now on /dev/sr1!
oh! I'm more of a debian guy than a fedora guy which is why this is a bit out of my depth, but /dev/sr1 is just the equivalent of the E:// drive (that is, for whatever reason, you OS mounted it as a new disk). Perhaps this means it burned successfully?
Unfortunately, yeah, not all documentation can cover the entirety of Linux design from the bottom up and back in this era, Linux was used almost exclusively by academics at universities. As such, the documentation was never written for a general user. It has come a very long way since then, but back when cd roms were common, it was a thousand times worse. Also, YouTube didnt work on Linux at all, so you had to be really committed to fuck around with it.
Yeah I was able to burn a few successfully but not with brasero, found a reddit post where someone was just using cdrecord and I've now wrote a script to just call cdburner
(my script) and just burn all the files in the directory to a disk.
Now I just need to figure out how to take the output of cdrecord -checkdisk
which gives
Detected CD-R drive: /dev/sr1
Device type : Removable CD-ROM
Version : 0
Response Format: 2
Capabilities :
Vendor_info : 'Slimtype'
Identification : 'eNAU108 8 '
Revision : 'XL0A'
Device seems to be: Generic mmc2 DVD-R/DVD-RW.
Using generic SCSI-3/mmc CD-R/CD-RW driver (mmc_cdr).
Driver flags : MMC-3 SWABAUDIO BURNFREE FORCESPEED
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
And take the Detected CD-ROM Drive: /dev/sr1
part, or rather just the /dev/sr1
part of that in particular, and use that as a variable called $cdrom or something, and pipe that back into cdrecord -v speed=8 dev=$cdrom -audio -pad -nofix *.cdr
that does the burning. At the moment I have to edit the /dev/sd[X] part of the script before I call it.
Also, check out this article:
https://dev.to/softwaresennin/linux-directory-structure-simplified-a-comprehensive-guide-3012
It goes over basic folder structure for Linux so that you have a rough idea where something like C://Users/User/Program Files lives in it's equivalent form on Linux.
Thanks this is super helpful! I'll be saving this one to pdf for future reference too!
Maybe try k3b, a CD burning program by the KDE project instead. It always worked well for me.
I'll have to get to an internet connection, which coincidentally I'll be doing in a few minutes while I take a break from this and go to a friend's house. I'll download it while I'm there, thanks!
How are you replying? Lol.
Phone has internet, house does not. Shocking I know but most people are paying for 2 internet connections, phone and house, while at the moment I'm only paying for one (phone) until I get a router and figure out this whole openwrt business. I'm just being lazy on it.
I can hotspot but I'm severely limited (like 5gb iirc, dogshit) and am only using that for emergencies atm, which installing k3b would count except I am already at a friends house and have it installed, so I could just do that instead. But now I'm drinking beer, and when I get home I'll probably eat, sleep, wake up and go to work, and then try out k3b. Or I'll try it tonight when I get home, but probably not lol. C'est la vie!
Yes, I guessed. I was just being flippant. Enjoy the buddy times. Make sure you share one of your beers for the free internet they are paying for.
I definitely recommend trouble shooting and trying when you get home. Slightly buzzed always goes well for me. Or, I completely miss something blaringly obvious, like plugging something in. One or the other.
If youre driving to work, I'd say it does count as an emergency! But I'm glad you could conserve your data.
Me too! Lol. He's actually not paying for it either, his brother is, but I did nonetheless lol, thanks dad (or mom or gender neutral parental unit, whatever sarcastic parent you identify with, I'm inclusive.)
It's definitely plugged in, it works with CLI cdrecord. I just would like to find a GUI to match.
Naw I'll be working tomorrow before working on my computer stuff I mean. Drinking now, no working!
yeah, burning and saving is probably not the same. /dev/sr0 is just a so called device node. it is a special file with two numbers that are an interface to control the drive. if this file gets borked (eg. replaced by a disk image) you can recreate it using the numbers with mknod, or likely udev or something will recreate it at boot when all the hardware is detected, which triggers events to create them.
i remember vaguely there used to be links to the proper device nodes being created, usually called /dev/cdrw or /dev/cdrom maybe check for those, preferably rw and maybe yours is dvdrw or so.
good luck
I do see what appears to be a /dev/cdrom, but if I click it, it says "a file named cdrom already exists. Do you want to replace it? The file already exists in dev. Replacing it will overwrite it's contents." Just like it says with /dev/sr0. That can't be right. It's trying to save the image of this audio cd as "cdrom" under /dev/. Am I supposed to do /dev/cdrom/keasbynights or something?
no. no. that's correct. Linux is warning you that you're about to burn to the disk which will overwrite any files that are there (rewritable CD Roms are a thing and Linux doesn't necessarily know what kind it is). It's just warning you that in either case, you're writing to the disk.
It's also no uncommon to have two locations. for example, on my Ubuntu install, I have several /dev/sdX (replace X with a sequential number). One for each physical disc. Those also show up in a folder called /mnt/media but I'm not 100% why. There's probably some subtle difference that exists for security reasons that's documented.... somewhere.
Ah ok, that may be the ticket then, but it makes me really nervous to brick the drive itself or "sr1" itself. There used to be an /dev/cdrom but that is gone now.
Another user says that you're not going to brick the drive and that anything you do will probably be fixed by a reboot. If you want to be sure you're not writing to the main file system drive, the best method is to physically disconnect the device to see that the dev/srX disappears when you do so. At least, that's the method I've always used when burning SD cards for a raspberry pi.
I'll give it a shot when I'm back at it, thanks! I don't mean bricking my ssd though I mean bricking the liteon optical drive.
Look at the top level comment by the user, lurch. If I'm understating him correctly, a reboot should fix it in case that happens. Generally you need to run the dd
command to brick stuff in the way you're imagining. It's short for either disk duplicator or disk destroyer (if you fuck up). I suspect the cdrecord
utility would prevent you from doing anything too stupid on accident.
The dd command is exactly what scares me about it haha, I've bricked adapters before!
Cdrecord is going just fine with the command I'm using but the GUI for brasero is what is still confusing me. I got k3b though so once I'm back at that disk drive (likely tomorrow) I'll give that a shot, and try to just say "yes" to that overwrite of sr0 (or sr1 or whatever it is at the time) on brasero.
If in reading lurch's comment correctly, he says it's /dev/cdrom and not srX, but that the wrong thing won't break anything.
Well /dev/cdrom disappeared on me and hasn't come back, /dev/sr0 is the correct device (when using cdrecord) unless my charger is plugged in, then it's /dev/sr1.
But cool, as long as it won't break anything I'll try it!
You really should try k3b. Brasero was always kind of a joke by comparison in my experience. For example, k3b easily let's you run diagnostics on your dependencies, so you can check that they are present and correct.
Just got it downloaded! I'll give it a shot (probably tomorrow evening)! Thanks!
Any luck? Was just reading through the thread and curious if k3b is the way to go?
No, it still wouldn't recognize my external drive and all the suggestions to try for my script didn't work. I'm still using the somewhat janky but working script I wrote around cdrecord originally.
linux4noobs
linux4noobs
Noob Friendly, Expert Enabling
Whether you're a seasoned pro or the noobiest of noobs, you've found the right place for Linux support and information. With a dedication to supporting free and open source software, this community aims to ensure Linux fits your needs and works for you. From troubleshooting to tutorials, practical tips, news and more, all aspects of Linux are warmly welcomed. Join a community of like-minded enthusiasts and professionals driving Linux's ongoing evolution.
Seeking Support?
- Mention your Linux distro and relevant system details.
- Describe what you've tried so far.
- Share your solution even if you found it yourself.
- Do not delete your post. This allows other people to see possible solutions if they have a similar problem.
- Properly format any scripts, code, logs, or error messages.
- Be mindful to omit any sensitive information such as usernames, passwords, IP addresses, etc.
Community Rules
- Keep discussions respectful and amiable. This community is a space where individuals may freely inquire, exchange thoughts, express viewpoints, and extend help without encountering belittlement. We were all a noob at one point. Differing opinions and ideas is a normal part of discourse, but it must remain civil. Offenders will be warned and/or removed.
- Posts must be Linux oriented
- Spam or affiliate links will not be tolerated.