Добрый вечер.
Я, конечно, в последнее время не занимался системным программированием под юникс, но могу посоветовать тебе следующие идеи (всё равно других нет
)
- для подключения различных hdd тут может быть неск. вариантов: либо ты подключил диск на выключенный компьютер (тогда вопрос отпадает) либо подрубил usb устройство (флешка или винт). то в этом случае ядро автоматически определяет что к ней подключено, на это отвечает gnome-mount пакет. Возможно тебе стоит посмотреть какой-нибудь сигнал.
(но в похожего рода утилите я просто видел кнопку - refresh, которая помогла бы тебе избежать этого, а просто осуществлять пересмотр всех подключённых устр-в)
- для монтирования на него ф/с тебе стоит просто создать временную папку и смонтировать в неё. либо позволить гному самому это сделать.
- любая работа с витом: форматирование, запись на диск... всё это реализовано в gparted. посмотри этот пакет и его исходники. очень удобная вещь и довольно проста в изучении (я об исходниках). я сам просто изучаю libgtkmm и мне была она интересна. там ты найдёшь ответы на свои первые вопросы
- по-поводу записи в сектора, опять таки может пригодится исходних fdisk но я думаю он оч. сложен в понимании, потому попробовать могу предложить тебе сперва просто считать с устройства /dev/sdX[n] мне кажется раз эти устройства доступны для dd значит и записать в них можно напрямую.
- кол-во секторов я думаю тебе поможет тот же gparted. я например сейчас вызвал команду dmesg и получил число секторов так:
[ 32.448938] sd 0:0:0:0: [sda] 160836480 512-byte hardware sectors (82348 MB)
может быть тебе это пригодится для размышлений (а может быть эта информация содержится в /proc каталоге где-нибудь)
Вот думаю собстсвенно всё, что я могу предложить. В своё время у меня была задумка сделать программу на подобие WinHex для линукса для работы с ж/д. но что-то нет вдохновения и пока это так. одни мысли.
Удачи Вам, в Вашей, так сказать "одной программе" :)