Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: Using udfutils to create a data BD-R image on Linux #40

Closed
pbrunnen opened this issue Jun 9, 2020 · 3 comments
Closed

Question: Using udfutils to create a data BD-R image on Linux #40

pbrunnen opened this issue Jun 9, 2020 · 3 comments

Comments

@pbrunnen
Copy link

pbrunnen commented Jun 9, 2020

Hello pali,
I posted this on stack exchange without much success, so I hope it is Ok that I post my question here.

I'm attempting to script burning data Blu-ray media for a large collection of files. I want to generate image files on one server to be burned onto BD-R DL (50GB) media at a later point on another workstation. Some of my files are in the 5-6GB range each, which is why I want to UDF to avoid needing to split them.

I know that genisoimage will work to some degree with experimental udf support and I'm likely going to have to use that method, but I wanted to better understand the udf tools and I'm not finding a lot of documentation which explains the situation. I've been looking at mkudffs (I'm on v2.1 from debian buster) but I'm having a bit of trouble with them...

I made the UDF image like this:

$ mkudffs --media-type=bdr --label "test" disk1.udf 24414062
filename=disk1.udf
label=test
uuid=5ec05b12f5d75d8c
blocksize=2048
blocks=24414062
udfrev=2.50
vatblock=319
start=0, blocks=16, type=RESERVED 
start=16, blocks=4, type=VRS 
start=20, blocks=76, type=USPACE 
start=96, blocks=16, type=MVDS 
start=112, blocks=16, type=USPACE 
start=128, blocks=1, type=LVID 
start=129, blocks=95, type=USPACE 
start=224, blocks=16, type=RVDS 
start=240, blocks=16, type=USPACE 
start=256, blocks=1, type=ANCHOR 
start=257, blocks=31, type=USPACE 
start=288, blocks=24413760, type=PSPACE 
start=24414048, blocks=14, type=USPACE 

I then attempted to use the image by loop mounting it:

$ mount -o loop,rw disk1.udf /mnt/usb

$ mount |grep usb
disk1.udf on /mnt/usb type udf (ro,relatime,utf8)

But I am unable to write to it...

I assume that it is mounting as read-only because as the man pages indicate blu-ray uses UDF revision 2.50 and the linux kernel only supports read-write support on UDF revisions up to 2.01.

My questions are:

  1. So how is one supposed to use the mkudffs tool to make a blu-ray UDF image?
  2. Am I missing a way to feed the data in during the creation?
  3. Or can mkudffs convert the image after creation?
  4. Why would mkudffs have a '--close' and '--read-only' parameter if it only makes a blank filesystem and it would need to be read-write in order to put data on it?
  5. Is there a way to packet-write to the image file?

Thanks!

@pali
Copy link
Owner

pali commented Jun 9, 2020

I assume that it is mounting as read-only because as the man pages indicate blu-ray uses UDF revision 2.50 and the linux kernel only supports read-write support on UDF revisions up to 2.01.

Exactly.

  1. So how is one supposed to use the mkudffs tool to make a blu-ray UDF image?

Currently in the way how you used it. Problem is that there is no linux tool which can copy new file into UDF 2.50 or UDF 2.60 image.

  1. Am I missing a way to feed the data in during the creation?

mkudffs does not support putting files during formatting. In the same way works also mke2fs (for ext2/3/4), it does not support putting new files during formatting.

  1. Or can mkudffs convert the image after creation?

No it cannot.

  1. Why would mkudffs have a '--close' and '--read-only' parameter if it only makes a blank filesystem and it would need to be read-write in order to put data on it?

To have feature complete support for formatting UDF filesystems

  1. Is there a way to packet-write to the image file?

Sorry, but I do not understand this question. Packet writing is a technique/operation how to write data/packets to optical media, e.g. something like implementation of "write" syscall.

@pali
Copy link
Owner

pali commented Jun 9, 2020

Basically I do not know any non-comercial Linux tool which can create non-empty BD-R UDF image (2.50+) with files. There is paid Nero for Linux which support it.

My plan was to extend mkudffs to allow "putting" files/directory during formatting, but I have not had time to implement it yet. So it would have been the first free Linux tool for pre-formatting UDF 2.50+ discs. But I do not see that I would have time for it in near future. Of course patches for such implementation are welcome!

@pbrunnen
Copy link
Author

Hello pali,
Thank you kindly for your response.

To have feature complete support for formatting UDF filesystems

Ok, I can certainly appreciate that point. I thought that I was just missing something in how to use it.

  1. Is there a way to packet-write to the image file?

Sorry, but I do not understand this question. Packet writing is a technique/operation how to write data/packets to optical media, e.g. something like implementation of "write" syscall.

Ok. My thought was that maybe the way to write to an image file would be similar to how you would use a burner (like a virtual burner dev node). But I get that this is not the case...

Basically I do not know any non-comercial Linux tool which can create non-empty BD-R UDF image (2.50+) with files. There is paid Nero for Linux which support it.

Ah, Ok. I had not considered Nero, but that would be a fine option.

My plan was to extend mkudffs to allow "putting" files/directory during formatting, but I have not had time to implement it yet. So it would have been the first free Linux tool for pre-formatting UDF 2.50+ discs. But I do not see that I would have time for it in near future. Of course patches for such implementation are welcome!

Understandable... I appreciate that, but I think that scope is outside of my capability.

Thank you again ever so much!
-Cheers, Peter.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants