[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Narrowing down problem source



Thomas Schmitt wrote:
Hi,

Richard Owlett wrote:
Block count: 1941504
...
1941504+0 records in
1941504+0 records out

This is ok.

Block count: 2284052
...
1941504+0 records in
1941504+0 records out

This is not ok.

The variable "block" was computed correctly, but program "dd"
did not retrieve enough blocks.
(I wonder whether it's a bug or a feature that it does not
  report an error. At least this behavior is reproducible.)

It seems that the system does not tell "dd" the block count of
the new DVD but the count of the previous one.

What do you get from this command

   echo "Device block count: $(expr $(cat /sys/class/block/sr0/size) / 4)"

inserted in the script after the line
   echo "Byte count: $(expr $blocks '*' 2048)"

(The /sys filesystem is an inexhaustible source of wonders.)


"Device block count" <> "blocks"
HOWEVER, resulting *.iso for DVD1 and DVD2 are the same size even though input sizes were different.

Output of script command below:

Script started on Mon 21 Sep 2015 08:44:20 AM CDT

N=0

F="JessieDVD"

E='.iso'

while true

  do

    let N=N+1

echo "Insert medium, wait until blinking ends, press Enter key (or Ctrl+C to end)"

    read dummyvar

    blocks=$(expr $(/sbin/isosize /dev/sr0) / 2048)

    echo "Block count: "$blocks

    echo "Byte count: $(expr $blocks '*' 2048)"

DEVICEBLKCOUNT=$(expr $(cat /sys/class/block/sr0/size) / 4)

    echo "Device block count: "$DEVICEBLKCOUNT

    FILENAME=$F$N$E

    echo "The output file will be $FILENAME"

    echo ""

    dd if=/dev/sr0 bs=2048 count=$DEVICEBLKCOUNT of=$FILENAME

    echo ""

    echo "next lines are output of ls and isosize commnds"

    ls -l $FILENAME

    /sbin/isosize $FILENAME

    echo "about to repeat loop"

    echo ""

  done

]0;richard@debian-8: ~richard@debian-8:~$
]0;richard@debian-8: ~richard@debian-8:~$ N=0
]0;richard@debian-8: ~richard@debian-8:~$
]0;richard@debian-8: ~richard@debian-8:~$ F="JessieDVD"
]0;richard@debian-8: ~richard@debian-8:~$
]0;richard@debian-8: ~richard@debian-8:~$ E='.iso'
]0;richard@debian-8: ~richard@debian-8:~$
]0;richard@debian-8: ~richard@debian-8:~$ while true

  do

    let N=N+1

     echo "Insert medium, wait until blinking ends, press Enter key (or Ctrl+C
 to end)"

    read dummyvar

    blocks=$(expr $(/sbin/isosize /dev/sr0) / 2048)

    echo "Block count: "$blocks

    echo "Byte count: $(expr $blocks '*' 2048)"

DEVICEBLKCOUNT=$(expr $(cat /sys/class/block/sr0/size) / 4)

    echo "Device block count: "$DEVICEBLKCOUNT

    FILENAME=$F$N$E

    echo "The output file will be $FILENAME"

    echo ""

    dd if=/dev/sr0 bs=2048 count=$DEVICEBLKCOUNT of=$FILENAME

    echo ""

    echo "next lines are output of ls and isosize commnds"

    ls -l $FILENAME

    /sbin/isosize $FILENAME

    echo "about to repeat loop"

    echo ""

  done
Insert medium, wait until blinking ends, press Enter key (or Ctrl+C to end)
Block count: 1941504
Byte count: 3976200192
Device block count: 1941504
The output file will be JessieDVD1.iso

1941504+0 records in
1941504+0 records out
3976200192 bytes (4.0 GB) copied, 762.909 s, 5.2 MB/s

next lines are output of ls and isosize commnds
-rw-r--r-- 1 richard richard 3976200192 Sep 21 08:57 JessieDVD1.iso
3976200192
about to repeat loop

Insert medium, wait until blinking ends, press Enter key (or Ctrl+C to end)

Block count: 2284052
Byte count: 4677738496
Device block count: 2284064
The output file will be JessieDVD2.iso

1941504+0 records in
1941504+0 records out
3976200192 bytes (4.0 GB) copied, 2655.4 s, 1.5 MB/s

next lines are output of ls and isosize commnds
-rw-r--r-- 1 richard richard 3976200192 Sep 21 09:43 JessieDVD2.iso
4677738496
about to repeat loop

Insert medium, wait until blinking ends, press Enter key (or Ctrl+C to end)
^C
]0;richard@debian-8: ~richard@debian-8:~$ exit

Script done on Mon 21 Sep 2015 09:43:50 AM CDT


Reply to: