Lines 138-144
require_512_byte_sector_size_()
Link Here
|
138 |
peek_() |
138 |
peek_() |
139 |
{ |
139 |
{ |
140 |
case $# in 2) ;; *) echo "usage: peek_ FILE 0_BASED_OFFSET" >&2; exit 1;; esac |
140 |
case $# in 2) ;; *) echo "usage: peek_ FILE 0_BASED_OFFSET" >&2; exit 1;; esac |
141 |
case $2 in *[^0-9]*) echo "peek_: invalid offset: $2" >&2; exit 1 ;; esac |
141 |
case $2 in *[!0-9]*) echo "peek_: invalid offset: $2" >&2; exit 1 ;; esac |
142 |
dd if="$1" bs=1 skip="$2" count=1 |
142 |
dd if="$1" bs=1 skip="$2" count=1 |
143 |
} |
143 |
} |
144 |
|
144 |
|
Lines 146-152
poke_()
Link Here
|
146 |
{ |
146 |
{ |
147 |
case $# in 3) ;; *) echo "usage: poke_ FILE 0_BASED_OFFSET BYTE" >&2; exit 1;; |
147 |
case $# in 3) ;; *) echo "usage: poke_ FILE 0_BASED_OFFSET BYTE" >&2; exit 1;; |
148 |
esac |
148 |
esac |
149 |
case $2 in *[^0-9]*) echo "poke_: invalid offset: $2" >&2; exit 1 ;; esac |
149 |
case $2 in *[!0-9]*) echo "poke_: invalid offset: $2" >&2; exit 1 ;; esac |
150 |
case $3 in ?) ;; *) echo "poke_: invalid byte: '$3'" >&2; exit 1 ;; esac |
150 |
case $3 in ?) ;; *) echo "poke_: invalid byte: '$3'" >&2; exit 1 ;; esac |
151 |
printf %s "$3" | dd of="$1" bs=1 seek="$2" count=1 conv=notrunc |
151 |
printf %s "$3" | dd of="$1" bs=1 seek="$2" count=1 conv=notrunc |
152 |
} |
152 |
} |
Lines 155-161
poke_()
Link Here
|
155 |
gpt1_pte_name_offset_() |
155 |
gpt1_pte_name_offset_() |
156 |
{ |
156 |
{ |
157 |
local ss=$1 |
157 |
local ss=$1 |
158 |
case $ss in *[^0-9]*) echo "$0: invalid sector size: $ss">&2; return 1;; esac |
158 |
case $ss in *[!0-9]*) echo "$0: invalid sector size: $ss">&2; return 1;; esac |
159 |
expr $ss \* 2 + 56 |
159 |
expr $ss \* 2 + 56 |
160 |
return 0 |
160 |
return 0 |
161 |
} |
161 |
} |
Lines 167-173
gpt_corrupt_primary_table_()
Link Here
|
167 |
case $# in 2) ;; *) echo "$0: expected 2 args, got $#" >&2; return 1;; esac |
167 |
case $# in 2) ;; *) echo "$0: expected 2 args, got $#" >&2; return 1;; esac |
168 |
local dev=$1 |
168 |
local dev=$1 |
169 |
local ss=$2 |
169 |
local ss=$2 |
170 |
case $ss in *[^0-9]*) echo "$0: invalid sector size: $ss">&2; return 1;; esac |
170 |
case $ss in *[!0-9]*) echo "$0: invalid sector size: $ss">&2; return 1;; esac |
171 |
|
171 |
|
172 |
# get the first byte of the name |
172 |
# get the first byte of the name |
173 |
local orig_pte_name_byte |
173 |
local orig_pte_name_byte |
Lines 188-194
gpt_restore_primary_table_()
Link Here
|
188 |
case $# in 3) ;; *) echo "$0: expected 2 args, got $#" >&2; return 1;; esac |
188 |
case $# in 3) ;; *) echo "$0: expected 2 args, got $#" >&2; return 1;; esac |
189 |
local dev=$1 |
189 |
local dev=$1 |
190 |
local ss=$2 |
190 |
local ss=$2 |
191 |
case $ss in *[^0-9]*) echo "$0: invalid sector size: $ss">&2; return 1;; esac |
191 |
case $ss in *[!0-9]*) echo "$0: invalid sector size: $ss">&2; return 1;; esac |
192 |
local orig_byte=$3 |
192 |
local orig_byte=$3 |
193 |
poke_ $dev $(gpt1_pte_name_offset_ $ss) "$orig_byte" || return 1 |
193 |
poke_ $dev $(gpt1_pte_name_offset_ $ss) "$orig_byte" || return 1 |
194 |
} |
194 |
} |
195 |
- |
|
|