|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Ramazan Jah-Far 2:5020/400 04 Aug 2004 00:28:15 To : Aleksey Barabanov Subject : Re: parted zeroes extended-PT bootcode :/ -------------------------------------------------------------------------------- Hi! In fido7.ru.linux, Aleksey Barabanov wrote: >>>> Заодно выяснил, что проведение данной операции >>>> сопровождается subject-ом. В hda4 жил LILO. RIP ;) AB> Тогда что значит написанное и отмеченное выше. Как понимать "жил". Я думал, что это очевидно. Hа hda десяток разделов. hda1-hda3 -- primary partitions, конкретно (для интересующихся): hda1 -- DOS hda2 -- маленький NT system (ntldr+boot.ini+ntdetect.com) hda3 -- /boot от Debian hda4 -- это т.н. extended partition (тип 0x0f). В данном контексте это вообще один сектор с bootcode и partition table. В смысле, это не /boot раздел от некоего линукса. :) hda4 был помечен в главной partition table (a.k.a. MBR) как активный. Там сидел "first stage" от LILO. Т.е. сектор начинался так: fa eb 21 01 b4 01 4c 49 4c 4f 16 05 c5 99 0a 41 |..!...LILO.....A| ^^^^ :) После parted-а получаем: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| ^^^^ :( И так вплоть до адреса 0x1bf (с 0x1be по 0x1fd идут 4 partition records, в 0x1be ноль (inactive), 2 последних записи в extended partitions не используются (соотв. там тоже нули), в 0x1fe лежит 0x55, в 0x1ff -- 0xaa). Вообще, помечать extended partition как активный -- старый гнусный хак. :) MBR bootcode от четвёртой NT, к примеру, такое надругательство не выносил. AB> А на какой стадии умер lilo. Он был убит parted-ом после (?) изменения размера hda7. BTW, я перераспределил размеры hda7/hda8, оба ext3, на обоих уже не было ценной информации. Обычно я все resize произвожу при помощи fdisk, методом dump/restore. AB> Что-то успел квакнуть, т.е. ликнуть ? Компьютер просто завис. Hа экране -- сообщения BIOS о найденных портах, PnP и прочей требухе. Вот почему так происходит: В MBR лежит: 1. partition table, в которой hda4 помечен активным, 2. bootcode производства Micro$oft corp. версии от W2k. Этот bootcode загружает в память (не помню куда, в 0x7c000, что ли?) первый сектор от "активного" hda4. Конец сектора помечен т.н. boot signature (55 AA), поэтому bootcode из MBR считает его "нормальным". MBR's bootcode передаёт управление на загруженный сектор, а там вместо очередного bootcode -- нули, байт эдак через 0x1be :) сменяющиеся данными extended partition table. IMHO, рано или поздно CPU спотыкается об invalid opcode и происходит halt (вероятно, в обработчике по умолчанию). -- Bye! Ramazan --- ifmail v.2.15dev5.3 * Origin: UkrNet (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/9140f8b2e3fa.html, оценка из 5, голосов 10
|