| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > про жесткий диск |
| Автор: banich 29.10.2006, 21:49 |
| Допустим, что из MBR жесткого диска я узнал, что LBA-адрес первого extended раздела равен X. По идее если я cделаю так: fd=open("/dev/hda",O_RDONLY)) lseek(fd,X,0); то попаду в нулевой сектор этого расширенного раздела, где должна располагаться его собственная таблица разделов. почему-то этого не происходит, может я всё совсем не так делаю? Помогите плз PS вообще задание заключается в том, чтобы подсчитать количество всех primary, extended и logical разделов на диске... |
| Автор: MAKCim 29.10.2006, 22:14 |
| banich LBA адрес побайтно считается? По-моему поблочно |
| Автор: banich 29.10.2006, 23:03 |
| спасибо большое! |
| Автор: banich 1.11.2006, 00:20 |
| Все по той же задаче: чтобы разобраться, я почитал вот эту статью http://www.opennet.ru/base/dev/hdd_struct.txt.html, в которой даже приведена готовая программа. Вот результат ее работы на моем компьютере: Num Bootable Start Total Id Type 1 * 63 34812792 0x07 HPFS/NTFS 2 34812855 61432560 0x07 HPFS/NTFS 3 96245415 216331290 0x0F Win Ext'd (LBA) 5 171204768 141371937 0x07 HPFS/NTFS А вот что пишет fdisk: Устр-во Загр Начало Конец Блоки Id Система /dev/hda1 * 63 34812854 17406396 7 HPFS/NTFS /dev/hda2 34812855 96245414 30716280 7 HPFS/NTFS /dev/hda3 96245415 312576704 108165645 f W95 расшир. (LBA) /dev/hda5 171204768 312576704 70685968+ 7 HPFS/NTFS /dev/hda6 96245541 114671969 9213214+ 83 Linux /dev/hda7 114672033 115700129 514048+ 83 Linux /dev/hda8 115700193 117804644 1052226 82 Linux своп / Solaris /dev/hda9 117804708 171204704 26699998+ 83 Linux Скорее всего, я как-то не так пытаюсь сослаться на второй extended раздел, используя данные из таблицы первого. В статье сказано, что нужно брать адрес 1-го логического раздела от начала винча + размер этого лог диска Скажите пожалуйста, как сделать правильно... |
| Автор: MAKCim 1.11.2006, 10:35 | ||
Что за второй extended? Я тут только 1 вижу Если у тебя есть адрес extended раздела - не вижу проблемы получить все остальное Приведи свой код |
| Автор: banich 2.11.2006, 18:49 | ||
скорее всего что-то не так с функции read_ext_ptable() |