Você pode obter informações de partição de /sys
, precisamente de /sys/block/<disk>/<partition>/{start,size}
.
Esta função shell pode ajudá-lo ::
print_partitions()
{
local disk="$1"
local part
local template="%-6s %16s %16s %16s\n"
printf "$template" Part. "First sector" "Last sector" "# sectors"
for part in "/sys/block/$disk/"sd*; do
st="$(cat "$part/start")"
sz="$(cat "$part/size")"
end=$((st + sz - 1))
printf "$template" "${part##*/}" "$st" "$end" "$sz"
done
}
Uso:
$ print_partitions sdd
Part. First sector Last sector # sectors
sdd1 2048 2099199 2097152
sdd3 2099200 3907029167 3904929968
Nota: os setores aqui são setores de 512 bytes.
Para um despejo completo das suas partições:
for disk in /sys/block/sd*; do
print_partitions "${disk##*/}"
echo
done
Note que você também pode ter substituído informações preciosas no início da primeira partição, como um superbloco ext, mas essa é outra história .