Как вычислить начальный адрес раздела от MBR

При использовании целого жесткого диска для песней могло бы быть возможно зафиксировать личинку.

От приглашения оболочки попробуйте эту команду ниже

#grub-install --recheck /dev/hda

После того выхода к перезагрузке.

Если установка личинки не работает на Вас, можно попытаться зафиксировать ее вручную от подсказки личинки. От подсказки личинки

grub> root (hd0,0)

Принятый, что Вы установили свою начальную загрузку на Вашем первом разделе. Иначе замените последнее '0' соответствующим числом. После этого

grub> setup (hd0)

Затем выход и перезагрузка.

2
задан 15 December 2011 в 22:04
3 ответа

Разделы начинаются с 1be (000001BE)

Чтобы выяснить, где находится 1be, перейдите к смещению (смещение - это первый столбец) 0001b0. Теперь на 0001b0: считайте в шестнадцатеричном формате, чтобы найти E. Например, если мы посмотрим на первый набор чисел после 0001b0: 0000, мы посчитаем первые две цифры (00) как 0, а затем вторые две как 1 ... продолжаем считать, пока не дойдем до E что на 8001 (80 - «E»). Это начало таблицы разделов, которая всегда составляет 16 байт, поэтому заканчивается на 3801 (или предпоследнем наборе чисел в строке смещения 0001c0).

Адрес LBA всегда начинается с 8 и заканчивается на 11. Итак, если мы смотрим на наш первый раздел (8001–3801) и считаем до 8, в итоге получаем 3f00 (3f - «8»), а конец - 0000 (последние два 00 - «11»). Таким образом, весь адрес LBA - 3f00 0000, НО мы должны изменить порядок, потому что он имеет формат с прямым порядком байтов и нам нужен шестнадцатеричный формат. Для этого разбейте число на 3f 00 00 00
00 00 00 3f <- «обратный»

Повторите процесс от до остальной информации о разделе - остановитесь, если найдете все 0. Примечание: у вас не может быть более 4 (основных) разделов.

1
ответ дан 3 December 2019 в 10:59

Зависит от ОС, системы и формата файловой системы.

Википедия - хороший ресурс по этой теме: http://en.wikipedia.org/wiki/ Master_boot_record

Начните следовать макету. Записи в таблице разделов начинаются с 000001BE ... с 16-байтовой записи раздела ...

пропуская не очень важные биты ...

1-й раздел - NTFS (000001C3) и начинается с 0000003f ( посмотрите на 4 байта с прямым порядком байтов, начиная с 000001c6) и размером 01388acf (посмотрите на 4 байта в прямом порядке, начиная с 00001ca)

Если вы не можете прочитать страницу Википедии и понять ее .. . тебе, вероятно, не следовало этим заниматься ... или следовало лучше учиться в классе.

1
ответ дан 3 December 2019 в 10:59

Я считаю, что наибольшая проблема с пониманием шестнадцатеричного представления таблицы разделов связана с проблемой порядка байтов . ПК Intel основаны на архитектуре с прямым порядком байтов с обратным порядком байтов для представления многобайтовых чисел. Таким образом, номер смещения сектора LBA, например 01388b3b , хранится как 3b8b 3801 - который находится прямо в вашей таблице разделов MBR, начиная с 0x01dd. Тот факт, что число повторяется сразу после этого, является просто совпадением - длина раздела просто равна смещению LBA раздела.

1
ответ дан 3 December 2019 в 10:59

Теги

Похожие вопросы