В системе самому диску-накопителю соответствует некий файл устройства. Например,
/dev/sda
Разделам на накопителе соответствует файл устройства
/dev/sdaX
А как правильно получить эти имена файлов? В Shell скрипте, в Perl скрипте, или ещё как-то - Си, или др., код, может быть. Но лучше - Shell утилиты и Perl.
В вопросе есть ещё и второй слой. Совсем шикарно было бы знать, как получить имена не только для MBR, но и для GPT (Guided Partition Table). Но, для начала, хоть бы и про MBR узнать.
Есть тупой вариант ответа: распарсить вывод
sudo fdisk -l /dev/sda
Это могу, но это трудоёмко и не очень-то это красиво. Хотя, для MBR, вполне себе вариант. Что-то ещё?
Можно
sudo parted --list --machine /dev/sda
Этот вариант интереснее. Она работает с GPT, она выдаёт удобное для парсинга.
Как это вообще делают? Что смотреть?