blake7984 Posted August 23, 2007 Posted August 23, 2007 This question is mainly directed to lightning, but help from anyone would certainly be welcome. I need to be able to bulk modify the ISO and UDF volume labels on saved ISO files. Modifying the ISO label is not a problem, but the UDF one is more difficult. Through some research I've found the ISO label begins at byte 32809 and is 32 bytes long with no checksum bytes. I've found the UDF label stored at 7 different byte locations in the ISO, such as bytes 65562, 67702, 71766 and a few more (including 1 location that varies). My main issue is that there seem to be checksum bytes associated with each of these label locations, which I have found patterns for, but cannot figure out how they are calculated still. If anyone would be willing to discuss with me in more detail how to edit the labels in the file please let me know. My main request here is that someone can either help me figure out how the UDF label can be edited, or if ImgBurn could (soon preferably) perhaps include command line support for volume renaming. Any help would be greatly appreciated. Thanks, -Blake
dontasciime Posted August 23, 2007 Posted August 23, 2007 Not sure I understand exactly what your asking but at the time you create the ISO and just before burning would be the best bet to doing this. You can still alter it if you have the ISO by typing name then click the green icon this will then duplicate the label to other fields applicable to filesystem type as for bulk No idea I always do it at point of building ISO
blake7984 Posted August 23, 2007 Author Posted August 23, 2007 Well, my issue is more aimed at having an automated way to fix the volume labels for hundreds of pre-existing ISO images and to more quickly (and more automatically) label future ones. As I said earlier, if ImgBurn added a command line option for renaming this would work for me, but I need a method that doesn't require mouse clicks and such. I would also be open to any other command line based utility that could do this, but so far I have found none. -Blake
LIGHTNING UK! Posted August 23, 2007 Posted August 23, 2007 Read the UDF specs, all the descriptors are detailed in there. Most of the places you're seeing the volume label are probably fake ones... there are only 2 descriptors that have room for the real field and the label is only read from the 'logical volume descriptor'. Each descriptor has it's own sector and at the start there's a tag that has 2 crc fields. Again, the UDF specs tell you how to calculate them. The files you want are: emca-167.pdf udf102.pdf Google the names and I'm sure you'll find them.
blake7984 Posted August 24, 2007 Author Posted August 24, 2007 Yea I had been looking over those same spec files some before you mentioned them, but I never was able to get anywhere with them. Knowing that 'logical volume descriptor' is the field I'm looking for helps, but I'm still not able to get these CRC calculations correct. I'm using the same CRC calculation as before from the udf102 document on page 81 section "6.5 CRC Calculation", is this the right way to calculate it? I have a test string I'm trying it on which fills the full 126 characters, and I tried doing the calculation on that string both with and without the ending character which shows length (127 in this case). My CRC never seems to match (what I'm guessing is) the CRC generated by ImgBurn. I've found a total of 5 locations where the entire 126 character label is written out in the header, the main 2 I'm looking at and working with right now are at byte 67702 and 71766. For those two locations, I'm guessing the CRC is at bytes 67593 and 71689 respectively and is 2 bytes long each? I wasn't able to figure out proper locations for the descriptor based on the spec files, I suppose I'm looking in the wrong spots. Sorry for all the annoying questions, but any help is greatly appreciated. I'll continue working to see what I can figure out until hopefully getting a little more feedback. Thanks, -Blake
LIGHTNING UK! Posted August 24, 2007 Posted August 24, 2007 You shouldn't think of these things being at certain fixed locations, they're not. You need to parse the file system properly and follow all the offsets, looking at the tagid's of each descriptor until you find one you know how to manipulate and want to change. Create some structures so you can refer to the fields by name and not just as an offset. The TAG at the start of a descriptor has 2 CRC values (well ok, one's just a checksum). One is for the entire descriptor (minus the tag I think) and the other is for the tag itself, including the other CRC. (2.2.1, page 13) At the end of the UDF 1.02 pdf it tells you how you should read a UDF disc. It's 6.9.2 on page 90. Yes the info in 6.5 is correct for calculating the crc.
blake7984 Posted August 24, 2007 Author Posted August 24, 2007 I didn't realize the UDF label locations weren't fixed since the ISO label is at a fixed location, and out of the two separate ISO files I compared, they shared the same locations for 6 of the 7 label locations. I suppose I will have to parse through it as you said though. A good bit more complicated than I originally expected and hoped, but I will see what happens. You gave me some good information to get started with, though I'll probably be back sometime soon with questions. Thanks for all the help, -Blake
LIGHTNING UK! Posted August 24, 2007 Posted August 24, 2007 ISO9660 only uses the 1 descriptor though and it's always at sector 16. UDF has loads of descriptors and they can be in different places depending on which ones are present.
blake7984 Posted August 24, 2007 Author Posted August 24, 2007 Well, after a few hours of staring at these specs and finding where all of these descriptors and tags are at in a couple headers, I believe I've decided its not time effective for me to make this application. Though I believe I could create a working product, I probably wouldn't trust the application to not corrupt the ISO since there are so many factors to take into consideration (even simple things like NSR02 vs NSR03). So I've pretty much decided to do things the manual way with ImgBurn. However, as a last request/suggestion, it would be nice if you would consider adding in a command line method of changing the ISO and UDF labels in a future version. Though this is obviously not very useful to most people, it could sure help a few of us out a lot . The main reason I would request this is just because you've put so much power in the command line interface already, that it seems like a fairly useful addition. Thanks for all the help though, I still may look into this some more, and I will most likely make a bulk label viewer to go through and check all my exisiting ISOs for correct name format. I definitely learned much more about the UDF format than I ever planned to. -Blake
LIGHTNING UK! Posted August 24, 2007 Posted August 24, 2007 The CLI stuff only manipulates existing GUI settings. As changing the volume label obviously isn't just a setting somewhere (you have to bring up the 'change volume label' screen, load the file, change the fields etc) it's not possible to do it - well, not without loads of feature specific coding. You do actually need a CLI app for this, not a GUI one that just happens to accept a few CLI switches.
blake7984 Posted August 24, 2007 Author Posted August 24, 2007 Ahh I see. I was imagining a imgburn.exe /chglabel_udf "my new label here" /src "c:\myiso.iso" type setup, but I see your point about accepting simple switches versus performing actual actions. Oh well, was worth a shot. Guess you can always add it somewhere on your list of things to do when terribly bored. Thanks again, -Blake
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now