Как получить смещение раздела с помощью bash-скрипта?
Я могу использовать parted
чтобы узнать смещение моего изображения.
sudo parted -s image.img unit B print
Model: (file)
Disk /home/user/image.img: 107374182400B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 2097152B 107374182399B 107372085248B primary ext4
Например, раздел начинается с 2097152
,
Как я могу получить 2097152
со скриптом bash?
Я мог бы, вероятно, разобрать вывод, но, возможно, есть более подходящий метод?
2 ответа
Решение
Один вариант, передать вывод в awk
sudo parted -s image.img unit B print |
awk '/^Number/{p=1;next}; p{gsub(/[^[:digit:]]/, "", $2); print $2}'
В случае нескольких разделов в образе и для получения смещения только первого раздела вы можете использовать следующее:
sudo parted -s image.img unit B print | sed 's/^ //g' | grep "^1 " | tr -s ' ' | cut -d ' ' -f2
-
sed
удалит начальный пробел -
grep
извлечет строку для раздела 1 (измените этот номер, если вы хотите другой раздел) -
tr
удалит лишний пробел между словами - окончательный
cut
извлечет второе число в строке, которая является начальным смещением