Re: BD-RE mount problem
Hi,
> # xorriso -scsi_log on -dev /dev/sr0 -format "full"
> ...
> xorriso : FAILURE : libburn indicates failure with formatting.
It should have reported the SCSI error (will have to dig for that).
That error came with command FORMAT UNIT
> FORMAT UNIT
> 04 11 00 00 00 00
> To drive: 12b
> 00 82 00 08 00 b4 74 00 c2 00 30 00
> +++ sense data = 70 00 05 00 00 00 00 0E 00 00 00 00 26 00 00 89 00 08
> +++ key=5 asc=26h ascq=00h ( 4 ms)
This would be
5 26 00 INVALID FIELD IN PARAMETER LIST
The drive does not want to format that medium.
At least not with Format Type 0x30, Sub-type 2.
Well, that's what dvd+rw-format tried too.
The refusal to re-format does not necessarily have to be related
to the failure to run mkudffs.
> The failure to format is just on this system, which is the only one I have
> locally with a BluRay writer. The other system was just a failure to mount
> after formatting.
Formatting a BD-RE may or may not erase its data (i.e. the filesystem).
I would consider it normal that a BD-RE cannot be mounted after a
re-format with no successful mkudffs.
So the theory that something in your computer broke down
is not outruled yet.
Did you tamper with udev ? Install new peripherals ?
Why do all block device writers so obstinately scream "read-only" ?
> xorriso -outdev /dev/sr0 -blank as_needed \
> -md5 on -add /usr/local/bin
> ...
> Writing to '/dev/sr0' completed successfully.
Ok. It is not the drive to blame. It allowed several SCSI write
commands.
xorriso uses the generic SG_IO driver, which directly performs
SCSI transactions with the drive.
dd, mkudffs, et.al. use the block device driver, which itself would
use the SG_IO driver ... if it was not broken on your machine.
Expert question:
What can make the kernel throw EROFS, probably on write(2) ?
Device file permissions seem not to be the reason.
Gary:
Can you compile and run this C program ?
---------------------------------------------------------------------------
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
main()
{
int fd, ret;
char buf[2048];
fd = open("/dev/sr0", O_RDWR);
printf("open: fd= %d , errno= %d\n", fd, errno);
if(errno)
perror("open");
memset(buf, 0, 2048);
ret = write(fd, buf, 2048);
printf("write: ret= %d , errno= %d\n", ret, errno);
if(errno)
perror("write");
close(fd);
}
---------------------------------------------------------------------------
E.g. with code in file open_sr0.c :
cc -g -o open_sr0 open_sr0.c
and then
./open_sr0
With an empty drive i get
open: fd= -1 , errno= 123
open: No medium found
write: ret= -1 , errno= 9
write: Bad file descriptor
I assume that you, with a BD-RE loaded, get errno= 30,
"Read-only file system" at write.
Have a nice day :)
Thomas
Reply to: