#!/bin/bash # Blu-Ray archival # by Marc, October 2019 updates and corrections from November 2017 # There's no magic in this; you have to keep this script updated # with the data that needs to be burned and what volumes they are # to be contained on. # For diagnostic and pipelining purposes, this script separates # the preparation and burning functions. You can do everything # serially in one bash instance, or you can prep one disc while # burning an already-prepped disc with two bash instances, # provided you have enough scratch space for both images. # These directories can be tweaked locally. BASEDIR=/media/me/2017.001/scans BIGTEMPDIR=/data # Documentation. help () { cat <<END-OF-HELP Usage: $0 help $0 prep DISC $0 burn DISC $0 free DISC $0 all DISC where DISC is exactly one of: 25gb.01 non-image files and JPEG folders 001 thru 045 25gb.02 PNG folders 035 thru 041 25gb.03 PNG folders 042 thru 048 25gb.04 PNG folders 049, 061 thru 065, 067 thru 070 25gb.05 PNG folders 071 thru 072, 085 thru 089 25gb.06 PNG folders 090, 133 thru 138, wow 25gb.07 CR2 folders 031, 032, 153 25gb.08 CR2 folders 034, 050, 051 25gb.09 CR2 folders 073, 074 25gb.10 CR2 folders 075, 076 25gb.11 CR2 folders 077, 103, 152 25gb.12 CR2 folders 107, 108, 151 25gb.13 CR2 folders 033, 156 25gb.14 CR2 folders 154, 155 25gb.15 CR2 folders 078, cb 25gb.16 CR2 folders 082 thru 084 25gb.17 CR2 folders 104 thru 106 25gb.18 CR2 folders 060, 079, 080 25gb.19 CR2 folders 028, 081 25gb.20 CR2 folders 025, 026 25gb.21 CR2 folders 027, 029, sp 25gb.22 CR2 folders 030, 052 25gb.23 CR2 folders list1, list2 25gb.24 CR2 folders 012, 053, 054 25gb.25 CR2 folders 010, 011, 092 25gb.26 CR2 folders 091, 093, 095 25gb.27 CR2 folders 007, 008 25gb.28 CR2 folders 009, 096 25gb.29 CR2 folders 094, 100, 102 25gb.30 CR2 folders 097, 098, 099 25gb.31 CR2 folders 109, 110 25gb.32 CR2 folders 111, 112 25gb.33 CR2 folders 101, 113, 127 25gb.34 CR2 folders 114, 130 25gb.35 CR2 folders 128, 129 25gb.36 CR2 folders 131, 132 25gb.37 CR2 folders 125, 126 25gb.38 CR2 folders 123, 124 25gb.39 CR2 folders 121, 122 25gb.40 CR2 folders 116, 117 25gb.41 CR2 folders 115, 119 25gb.42 CR2 folders 118, 120 25gb.43 CR2 folders 139, 140 25gb.44 CR2 folders 141, 142 25gb.45 CR2 folders 143, 144 25gb.46 CR2 folders 001, 002 25gb.47 CR2 folders 003, 004 25gb.48 CR2 folders 005, 006 25gb.49 CR2 folders 019, 020 25gb.50 CR2 folders 021, 022 25gb.51 CR2 folders 023, 024 25gb.52 PNG folders ddd, 066, 163, 164, 165, 166, 167 CR2 folder 157 25gb.53 CR2 folders 158, 159 25gb.54 CR2 folders 160, 161, 162 25gb.55 CR2 folders 013, 014 25gb.56 CR2 folders 015, 016 25gb.57 CR2 folders 017, 018 25gb.58 CR2 folders 055, 056, 057 25gb.59 CR2 folders 058, 059 25gb.60 CR2 folders 146, 147 25gb.61 CR2 folders 145, 148 25gb.62 CR2 folders 149, 150 25gb.63 JPG folders 046 thru 110 25gb.64 JPG folders 111 thru 167, cb, ddd, list1, list2, sp, tests, wow 100gb.01 folders 001 thru 008 100gb.02 folders 009 thru 017 100gb.03 folders 018 thru 026 100gb.04 folders 027 thru 042 100gb.05 folders 043 thru 058 100gb.06 folders 059 thru 078 100gb.07 folders 079 thru 094 100gb.08 folders 095 thru 106 100gb.09 folders 107 thru 115 100gb.10 folders 116 thru 124 100gb.11 folders 125 thru 138 100gb.12 folders 139 thru 149 100gb.13 folders 150 thru 160 100gb.14 folders 161 thru 167, cb, ddd, list1, list2, sp, wow 100gb.15 old scans, misc, and JPEG previews of ALL folders These assignments were last audited per this script in October 2019. END-OF-HELP exit 1 } catalog () { while read path shortdisc longdisc; do if [[ $1 == $shortdisc || $1 == $longdisc ]]; then echo $path fi done <<ENDOFINV cr2/folder.001 25gb.46 100gb.01 cr2/folder.002 25gb.46 100gb.01 cr2/folder.003 25gb.47 100gb.01 cr2/folder.004 25gb.47 100gb.01 cr2/folder.005 25gb.48 100gb.01 cr2/folder.006 25gb.48 100gb.01 cr2/folder.007 25gb.27 100gb.01 cr2/folder.008 25gb.27 100gb.01 cr2/folder.009 25gb.28 100gb.02 cr2/folder.010 25gb.25 100gb.02 cr2/folder.011 25gb.25 100gb.02 cr2/folder.012 25gb.24 100gb.02 cr2/folder.013 25gb.55 100gb.02 cr2/folder.014 25gb.55 100gb.02 cr2/folder.015 25gb.56 100gb.02 cr2/folder.016 25gb.56 100gb.02 cr2/folder.017 25gb.57 100gb.02 cr2/folder.018 25gb.57 100gb.03 cr2/folder.019 25gb.49 100gb.03 cr2/folder.020 25gb.49 100gb.03 cr2/folder.021 25gb.50 100gb.03 cr2/folder.022 25gb.50 100gb.03 cr2/folder.023 25gb.51 100gb.03 cr2/folder.024 25gb.51 100gb.03 cr2/folder.025 25gb.20 100gb.03 cr2/folder.026 25gb.20 100gb.03 cr2/folder.027 25gb.21 100gb.04 cr2/folder.028 25gb.19 100gb.04 cr2/folder.029 25gb.21 100gb.04 cr2/folder.030 25gb.22 100gb.04 cr2/folder.031 25gb.07 100gb.04 cr2/folder.032 25gb.07 100gb.04 cr2/folder.033 25gb.13 100gb.04 cr2/folder.034 25gb.08 100gb.04 png/folder.035 25gb.02 100gb.04 png/folder.036 25gb.02 100gb.04 png/folder.037 25gb.02 100gb.04 png/folder.038 25gb.02 100gb.04 png/folder.039 25gb.02 100gb.04 png/folder.040 25gb.02 100gb.04 png/folder.041 25gb.02 100gb.04 png/folder.042 25gb.03 100gb.04 png/folder.043 25gb.03 100gb.05 png/folder.044 25gb.03 100gb.05 png/folder.045 25gb.03 100gb.05 png/folder.046 25gb.03 100gb.05 png/folder.047 25gb.03 100gb.05 png/folder.048 25gb.03 100gb.05 png/folder.049 25gb.04 100gb.05 cr2/folder.050 25gb.08 100gb.05 cr2/folder.051 25gb.08 100gb.05 cr2/folder.052 25gb.22 100gb.05 cr2/folder.053 25gb.24 100gb.05 cr2/folder.054 25gb.24 100gb.05 cr2/folder.055 25gb.58 100gb.05 cr2/folder.056 25gb.58 100gb.05 cr2/folder.057 25gb.58 100gb.05 cr2/folder.058 25gb.59 100gb.05 cr2/folder.059 25gb.59 100gb.06 cr2/folder.060 25gb.18 100gb.06 png/folder.061 25gb.04 100gb.06 png/folder.062 25gb.04 100gb.06 png/folder.063 25gb.04 100gb.06 png/folder.064 25gb.04 100gb.06 png/folder.065 25gb.04 100gb.06 png/folder.066 25gb.52 100gb.06 png/folder.067 25gb.04 100gb.06 png/folder.068 25gb.04 100gb.06 png/folder.069 25gb.04 100gb.06 png/folder.070 25gb.04 100gb.06 png/folder.071 25gb.05 100gb.06 png/folder.072 25gb.05 100gb.06 cr2/folder.073 25gb.09 100gb.06 cr2/folder.074 25gb.09 100gb.06 cr2/folder.075 25gb.10 100gb.06 cr2/folder.076 25gb.10 100gb.06 cr2/folder.077 25gb.11 100gb.06 cr2/folder.078 25gb.15 100gb.06 cr2/folder.079 25gb.18 100gb.07 cr2/folder.080 25gb.18 100gb.07 cr2/folder.081 25gb.19 100gb.07 cr2/folder.082 25gb.16 100gb.07 cr2/folder.083 25gb.16 100gb.07 cr2/folder.084 25gb.16 100gb.07 png/folder.085 25gb.05 100gb.07 png/folder.086 25gb.05 100gb.07 png/folder.087 25gb.05 100gb.07 png/folder.088 25gb.05 100gb.07 png/folder.089 25gb.05 100gb.07 png/folder.090 25gb.06 100gb.07 cr2/folder.091 25gb.26 100gb.07 cr2/folder.092 25gb.25 100gb.07 cr2/folder.093 25gb.26 100gb.07 cr2/folder.094 25gb.29 100gb.07 cr2/folder.095 25gb.26 100gb.08 cr2/folder.096 25gb.28 100gb.08 cr2/folder.097 25gb.30 100gb.08 cr2/folder.098 25gb.30 100gb.08 cr2/folder.099 25gb.30 100gb.08 cr2/folder.100 25gb.29 100gb.08 cr2/folder.101 25gb.33 100gb.08 cr2/folder.102 25gb.29 100gb.08 cr2/folder.103 25gb.11 100gb.08 cr2/folder.104 25gb.17 100gb.08 cr2/folder.105 25gb.17 100gb.08 cr2/folder.106 25gb.17 100gb.08 cr2/folder.107 25gb.12 100gb.09 cr2/folder.108 25gb.12 100gb.09 cr2/folder.109 25gb.31 100gb.09 cr2/folder.110 25gb.31 100gb.09 cr2/folder.111 25gb.32 100gb.09 cr2/folder.112 25gb.32 100gb.09 cr2/folder.113 25gb.33 100gb.09 cr2/folder.114 25gb.34 100gb.09 cr2/folder.115 25gb.41 100gb.09 cr2/folder.116 25gb.40 100gb.10 cr2/folder.117 25gb.40 100gb.10 cr2/folder.118 25gb.42 100gb.10 cr2/folder.119 25gb.41 100gb.10 cr2/folder.120 25gb.42 100gb.10 cr2/folder.121 25gb.39 100gb.10 cr2/folder.122 25gb.39 100gb.10 cr2/folder.123 25gb.38 100gb.10 cr2/folder.124 25gb.38 100gb.10 cr2/folder.125 25gb.37 100gb.11 cr2/folder.126 25gb.37 100gb.11 cr2/folder.127 25gb.33 100gb.11 cr2/folder.128 25gb.35 100gb.11 cr2/folder.129 25gb.35 100gb.11 cr2/folder.130 25gb.34 100gb.11 cr2/folder.131 25gb.36 100gb.11 cr2/folder.132 25gb.36 100gb.11 png/folder.133 25gb.06 100gb.11 png/folder.134 25gb.06 100gb.11 png/folder.135 25gb.06 100gb.11 png/folder.136 25gb.06 100gb.11 png/folder.137 25gb.06 100gb.11 png/folder.138 25gb.06 100gb.11 cr2/folder.139 25gb.43 100gb.12 cr2/folder.140 25gb.43 100gb.12 cr2/folder.141 25gb.44 100gb.12 cr2/folder.142 25gb.44 100gb.12 cr2/folder.143 25gb.45 100gb.12 cr2/folder.144 25gb.45 100gb.12 cr2/folder.145 25gb.61 100gb.12 cr2/folder.146 25gb.60 100gb.12 cr2/folder.147 25gb.60 100gb.12 cr2/folder.148 25gb.61 100gb.12 cr2/folder.149 25gb.62 100gb.12 cr2/folder.150 25gb.62 100gb.13 cr2/folder.151 25gb.12 100gb.13 cr2/folder.152 25gb.11 100gb.13 cr2/folder.153 25gb.07 100gb.13 cr2/folder.154 25gb.14 100gb.13 cr2/folder.155 25gb.14 100gb.13 cr2/folder.156 25gb.13 100gb.13 cr2/folder.157 25gb.52 100gb.13 cr2/folder.158 25gb.53 100gb.13 cr2/folder.159 25gb.53 100gb.13 cr2/folder.160 25gb.54 100gb.13 cr2/folder.161 25gb.54 100gb.14 cr2/folder.162 25gb.54 100gb.14 png/folder.163 25gb.52 100gb.14 png/folder.164 25gb.52 100gb.14 png/folder.165 25gb.52 100gb.14 png/folder.166 25gb.52 100gb.14 png/folder.167 25gb.52 100gb.14 cr2/folder.cb 25gb.15 100gb.14 png/folder.ddd 25gb.52 100gb.14 cr2/folder.list1 25gb.23 100gb.14 cr2/folder.list2 25gb.23 100gb.14 cr2/folder.sp 25gb.21 100gb.14 png/folder.wow 25gb.06 100gb.14 jpg/folder.001 25gb.01 100gb.15 jpg/folder.002 25gb.01 100gb.15 jpg/folder.003 25gb.01 100gb.15 jpg/folder.004 25gb.01 100gb.15 jpg/folder.005 25gb.01 100gb.15 jpg/folder.006 25gb.01 100gb.15 jpg/folder.007 25gb.01 100gb.15 jpg/folder.008 25gb.01 100gb.15 jpg/folder.009 25gb.01 100gb.15 jpg/folder.010 25gb.01 100gb.15 jpg/folder.011 25gb.01 100gb.15 jpg/folder.012 25gb.01 100gb.15 jpg/folder.013 25gb.01 100gb.15 jpg/folder.014 25gb.01 100gb.15 jpg/folder.015 25gb.01 100gb.15 jpg/folder.016 25gb.01 100gb.15 jpg/folder.017 25gb.01 100gb.15 jpg/folder.018 25gb.01 100gb.15 jpg/folder.019 25gb.01 100gb.15 jpg/folder.020 25gb.01 100gb.15 jpg/folder.021 25gb.01 100gb.15 jpg/folder.022 25gb.01 100gb.15 jpg/folder.023 25gb.01 100gb.15 jpg/folder.024 25gb.01 100gb.15 jpg/folder.025 25gb.01 100gb.15 jpg/folder.026 25gb.01 100gb.15 jpg/folder.027 25gb.01 100gb.15 jpg/folder.028 25gb.01 100gb.15 jpg/folder.029 25gb.01 100gb.15 jpg/folder.030 25gb.01 100gb.15 jpg/folder.031 25gb.01 100gb.15 jpg/folder.032 25gb.01 100gb.15 jpg/folder.033 25gb.01 100gb.15 jpg/folder.034 25gb.01 100gb.15 jpg/folder.035 25gb.01 100gb.15 jpg/folder.036 25gb.01 100gb.15 jpg/folder.037 25gb.01 100gb.15 jpg/folder.038 25gb.01 100gb.15 jpg/folder.039 25gb.01 100gb.15 jpg/folder.040 25gb.01 100gb.15 jpg/folder.041 25gb.01 100gb.15 jpg/folder.042 25gb.01 100gb.15 jpg/folder.043 25gb.01 100gb.15 jpg/folder.044 25gb.01 100gb.15 jpg/folder.045 25gb.01 100gb.15 jpg/folder.046 25gb.63 100gb.15 jpg/folder.047 25gb.63 100gb.15 jpg/folder.048 25gb.63 100gb.15 jpg/folder.049 25gb.63 100gb.15 jpg/folder.050 25gb.63 100gb.15 jpg/folder.051 25gb.63 100gb.15 jpg/folder.052 25gb.63 100gb.15 jpg/folder.053 25gb.63 100gb.15 jpg/folder.054 25gb.63 100gb.15 jpg/folder.055 25gb.63 100gb.15 jpg/folder.056 25gb.63 100gb.15 jpg/folder.057 25gb.63 100gb.15 jpg/folder.058 25gb.63 100gb.15 jpg/folder.059 25gb.63 100gb.15 jpg/folder.060 25gb.63 100gb.15 jpg/folder.061 25gb.63 100gb.15 jpg/folder.062 25gb.63 100gb.15 jpg/folder.063 25gb.63 100gb.15 jpg/folder.064 25gb.63 100gb.15 jpg/folder.065 25gb.63 100gb.15 jpg/folder.066 25gb.63 100gb.15 jpg/folder.067 25gb.63 100gb.15 jpg/folder.068 25gb.63 100gb.15 jpg/folder.069 25gb.63 100gb.15 jpg/folder.070 25gb.63 100gb.15 jpg/folder.071 25gb.63 100gb.15 jpg/folder.072 25gb.63 100gb.15 jpg/folder.073 25gb.63 100gb.15 jpg/folder.074 25gb.63 100gb.15 jpg/folder.075 25gb.63 100gb.15 jpg/folder.076 25gb.63 100gb.15 jpg/folder.077 25gb.63 100gb.15 jpg/folder.078 25gb.63 100gb.15 jpg/folder.079 25gb.63 100gb.15 jpg/folder.080 25gb.63 100gb.15 jpg/folder.081 25gb.63 100gb.15 jpg/folder.082 25gb.63 100gb.15 jpg/folder.083 25gb.63 100gb.15 jpg/folder.084 25gb.63 100gb.15 jpg/folder.085 25gb.63 100gb.15 jpg/folder.086 25gb.63 100gb.15 jpg/folder.087 25gb.63 100gb.15 jpg/folder.088 25gb.63 100gb.15 jpg/folder.089 25gb.63 100gb.15 jpg/folder.090 25gb.63 100gb.15 jpg/folder.091 25gb.63 100gb.15 jpg/folder.092 25gb.63 100gb.15 jpg/folder.093 25gb.63 100gb.15 jpg/folder.094 25gb.63 100gb.15 jpg/folder.095 25gb.63 100gb.15 jpg/folder.096 25gb.63 100gb.15 jpg/folder.097 25gb.63 100gb.15 jpg/folder.098 25gb.63 100gb.15 jpg/folder.099 25gb.63 100gb.15 jpg/folder.100 25gb.63 100gb.15 jpg/folder.101 25gb.63 100gb.15 jpg/folder.102 25gb.63 100gb.15 jpg/folder.103 25gb.63 100gb.15 jpg/folder.104 25gb.63 100gb.15 jpg/folder.105 25gb.63 100gb.15 jpg/folder.106 25gb.63 100gb.15 jpg/folder.107 25gb.63 100gb.15 jpg/folder.108 25gb.63 100gb.15 jpg/folder.109 25gb.63 100gb.15 jpg/folder.110 25gb.63 100gb.15 jpg/folder.111 25gb.64 100gb.15 jpg/folder.112 25gb.64 100gb.15 jpg/folder.113 25gb.64 100gb.15 jpg/folder.114 25gb.64 100gb.15 jpg/folder.115 25gb.64 100gb.15 jpg/folder.116 25gb.64 100gb.15 jpg/folder.117 25gb.64 100gb.15 jpg/folder.118 25gb.64 100gb.15 jpg/folder.119 25gb.64 100gb.15 jpg/folder.120 25gb.64 100gb.15 jpg/folder.121 25gb.64 100gb.15 jpg/folder.122 25gb.64 100gb.15 jpg/folder.123 25gb.64 100gb.15 jpg/folder.124 25gb.64 100gb.15 jpg/folder.125 25gb.64 100gb.15 jpg/folder.126 25gb.64 100gb.15 jpg/folder.127 25gb.64 100gb.15 jpg/folder.128 25gb.64 100gb.15 jpg/folder.129 25gb.64 100gb.15 jpg/folder.130 25gb.64 100gb.15 jpg/folder.131 25gb.64 100gb.15 jpg/folder.132 25gb.64 100gb.15 jpg/folder.133 25gb.64 100gb.15 jpg/folder.134 25gb.64 100gb.15 jpg/folder.135 25gb.64 100gb.15 jpg/folder.136 25gb.64 100gb.15 jpg/folder.137 25gb.64 100gb.15 jpg/folder.138 25gb.64 100gb.15 jpg/folder.139 25gb.64 100gb.15 jpg/folder.140 25gb.64 100gb.15 jpg/folder.141 25gb.64 100gb.15 jpg/folder.142 25gb.64 100gb.15 jpg/folder.143 25gb.64 100gb.15 jpg/folder.144 25gb.64 100gb.15 jpg/folder.145 25gb.64 100gb.15 jpg/folder.146 25gb.64 100gb.15 jpg/folder.147 25gb.64 100gb.15 jpg/folder.148 25gb.64 100gb.15 jpg/folder.149 25gb.64 100gb.15 jpg/folder.150 25gb.64 100gb.15 jpg/folder.151 25gb.64 100gb.15 jpg/folder.152 25gb.64 100gb.15 jpg/folder.153 25gb.64 100gb.15 jpg/folder.154 25gb.64 100gb.15 jpg/folder.155 25gb.64 100gb.15 jpg/folder.156 25gb.64 100gb.15 jpg/folder.157 25gb.64 100gb.15 jpg/folder.158 25gb.64 100gb.15 jpg/folder.159 25gb.64 100gb.15 jpg/folder.160 25gb.64 100gb.15 jpg/folder.161 25gb.64 100gb.15 jpg/folder.162 25gb.64 100gb.15 jpg/folder.163 25gb.64 100gb.15 jpg/folder.164 25gb.64 100gb.15 jpg/folder.165 25gb.64 100gb.15 jpg/folder.166 25gb.64 100gb.15 jpg/folder.167 25gb.64 100gb.15 jpg/folder.cb 25gb.64 100gb.15 jpg/folder.ddd 25gb.64 100gb.15 jpg/folder.list1 25gb.64 100gb.15 jpg/folder.list2 25gb.64 100gb.15 jpg/folder.sp 25gb.64 100gb.15 jpg/folder.tests 25gb.64 100gb.15 jpg/folder.wow 25gb.64 100gb.15 misc 25gb.01 100gb.15 old 25gb.01 100gb.15 ENDOFINV } fail () { echo $* echo Disc operation aborted. exit 1 } cd $BASEDIR if [ $? -ne 0 ]; then echo Failed to find $BASEDIR exit 3 fi # process command line for what in $*; do case $what in prep) DO_PREP=1 ;; burn) DO_BURN=1 ;; free) DO_FREE=1 ;; all) DO_PREP=1 DO_BURN=1 DO_FREE=1 ;; help) DO_HELP=1 ;; *) if [[ $DISC ]]; then fail Limit one disc per script invocation. fi DISC=$what if [[ ${DISC:0:5} == 25gb. ]]; then IMSIZE=24176640K elif [[ ${DISC:0:6} == 100gb. ]]; then IMSIZE=96184320K fi ;; esac done if [[ $DO_PREP || $DO_BURN || $DO_FREE ]]; then if [[ ! $DISC ]]; then fail Must specify which disc to prep/burn/free. fi DIRS_ON_DISC=$(catalog $DISC) if [[ ! $DIRS_ON_DISC ]]; then fail Invalid disc or operation specified. fi else DO_HELP=1 fi if [[ $DO_HELP ]]; then help; fi # sanity check SHA1 checksum for this script cd bin shopt -s extglob sha1sum !(SHA1SUM) | diff - SHA1SUM if [[ $? -ne 0 ]]; then echo SHA1 checksums in ./bin are wonky! exit 1 fi shopt -u extglob cd .. # necessary paths IM=$BIGTEMPDIR/bd-r.$DISC.udf MNT=$BIGTEMPDIR/bd-r LOOP=`losetup -f` # prep: create UDF filesystem and fill it if [[ $DO_PREP ]]; then date +"Starting prep at %H:%M" # Make a UDF image and mount it. rm -rf $IM $MNT mkdir $MNT # Here is how to determine what fits on an unformatted BD-R: # # $ dvd+rw-mediainfo /dev/sr0 # ... # READ FORMAT CAPACITIES: (25 GB) # unformatted: 12219392*2048=25025314816 # 00h(3000): 11826176*2048=24220008448 # 32h(0): 11826176*2048=24220008448 # 32h(0): 5796864*2048=11871977472 # 32h(0): 12088320*2048=24756879360 (growisofs chooses this, 256 MiB) # ... # READ FORMAT CAPACITIES: (50 GB) # unformatted: 24438784*2048=50050629632 # 00h(6000): 23652352*2048=48440016896 # 32h(0): 23652352*2048=48440016896 # 32h(0): 11200512*2048=22938648576 # 32h(0): 24307712*2048=49782194176 (why same 256 MiB?) # ... # READ FORMAT CAPACITIES: (100 GB) # unformatted: 48878592*2048=100103356416 # 00h(c000): 47305728*2048=96882130944 # 32h(0): 47305728*2048=96882130944 # 32h(0): 30790656*2048=63059263488 # 32h(0): 48092160*2048=98492743680 (why different, 1536 MiB?) # ... # # What growisofs is doing for me (as of 7.1-10) is supporting that # last 32h line, that is, 12088320 blocks. As of 15 May 2018, the # single, double, and triple-layer (25, 50, 100 GB) I have in house # let me have 12088320, 24307712, and 48092160 blocks of 2048 bytes. # # My file allocation policy is that the combined apparent size of all # files can be up to 99.5% of the UDF image file. An experiment showed that # actual usage past 99.6% is obtainable. So 93,460 MiB cutoff on 100GB discs. # create empty image truncate -s $IMSIZE $IM # Default blocksize is 512 (disk), which won't mount on BD-r. # Default revision is 2.50, which isn't reading the superblock for me. # Can you say "fragile solution"? mkudffs --vid=n50ch.$DISC --label=n50ch.$DISC --blocksize=2048 --udfrev=2.01 $IM # loop mount sudo losetup $LOOP $IM sudo mount -o bs=2048 $LOOP $MNT sudo chown me.me $MNT rm -rf $MNT/lost+found # transfer files date +"Filling image at %H:%M" for a in $DIRS_ON_DISC; do rsync -a --relative $a $MNT done # these files go on EVERY disc rsync -a bin doc $MNT # inventory list for digest-checker script pushd $MNT find . -name SHA1SUM >DIGESTS popd # experiment if false; then echo echo You may view the mounted image now before continuing, then type echo " kill -CONT" $BASHPID echo kill -STOP $BASHPID fi # unmount image and free loop device sudo umount $LOOP sudo losetup -d $LOOP fi # burn: dd UDF image onto optical medium if [[ $DO_BURN ]]; then date +"Starting burn at %H:%M" growisofs -Z /dev/sr0=$IM echo Please label the newly-burned $DISC, containing: for a in $DIRS_ON_DISC; do echo " "$a; done fi if [[ $DO_PREP || $DO_BURN ]]; then date +"Complete at %H:%M" fi # if [[ $DO_FREE ]]; then rm -rf $IM $MNT fi exit 0