Рубрика «mbr»

Пишем загрузчик на Ассемблере и С. Часть 2 - 1

В предыдущей статье я рассказал о процессе загрузки, а также продемонстрировал написание загрузочного кода на C и ассемблере, в том числе с вложением инструкций последнего в код первого. При этом мы написали несколько простых программ для проверки работоспособности внедренного в загрузочный сектор кода. В этой же статье мы рассмотрим процесс сегментации и чтения данных с дискеты в ходе загрузки, а также их вывод на экран.

Здесь я ограничусь написанием программы на ассемблере и ее копированием в загрузочный сектор образа дискеты 3.5”, после чего мы, как и в прошлой статье, протестируем записанный загрузочный код при помощи эмулятора bochs. Для реализации этих задач я задействую службы BIOS, что позволит нам лучше понять их функционирование и более уверенно работать в реальном режиме (Real Mode). Читать полностью »

Пишем загрузчик на Ассемблере и C. Часть 1 - 1

Эта статья представляет собой ознакомительный материал о написании загрузчика на С и Ассемблере. Сразу скажу, что здесь я не буду вдаваться в сравнение производительности итогового кода, созданного на этих языках. В этой работе я просто вкратце изложу процесс создания загрузочного флоппи-образа путем написания собственного кода с последующим его внедрением в загрузочный сектор устройства. Все содержание будет разделено на цикл из трех статей, так как сразу сложно изложить всю нужную информацию и о компьютерах, и об устройствах загрузки, и о написании самого кода. В первой части я поясню наиболее общие аспекты компьютерной науки и суть процесса загрузки, а также обобщу значение и важность каждого этапа, чтобы упростить их понимание и запоминание. Читать полностью »

Разворачивал в очередной раз Linux-образ на USB-drive (почему-то им оказался Manjaro, но это совсем другая история), и в голову пробрались странные мысли: BIOS увидел флешку, а дальше-то что? Ну да, там MBR, скорее всего GRUB и… А раз в MBR затесался чей-то кастомный код, значит и простой человек из Адыгеи может запрограммировать что-нибудь на «большом» компьютере, но вне операционной системы.

А так как делать такие штуки на языках высокого уровня слишком жирно, а ассемблеров мы не знаем, будем шпарить прямо на опкодах для 8086.

Назад к истокам: рулим компьютером прямо из MBR - 1

Читать полностью »

Эта история о том, как простая переустановка затянулась на несколько дней.

И как я пытался подружить EFI и Legacy в MacBook Pro.

image

Предыстория

В 2018 году я себе приобрел в личное пользование MacBook Pro 15 дюймов, конца 2011 года. Можно уже сказать что он старый, да только на замену прошлого Lenovo он был просто как атомный реактор.

Очень удачно попался с нестандартной комплектацией, а 1680х1050 экраном и увеличенной графикой. И кажется что всё хорошо, можно пользоваться и будет тебе счастье, только для работы одной Mac OS будет мало и через некоторое время я стал ставить на его Windows. И тут я встретил большие проблемы.
Читать полностью »

1. Введение

Как оказалось, разметка физической памяти мобильных устройств (МУ) это малоописанный раздел знаний, необходимых разработчику. Т.к. память существует во всех устройствах, созданных на основе микропроцессоров или микроконтроллеров, а их уже миллиарды, то это еще и очень-очень востребованный раздел знаний.

Эта статья посвящена аспектам разметки памяти только МУ, т.к. именно здесь существует тесно свитый разными производителями клубок из файлов описания разметки при почти полном отсутствии теоретических данных о структуре самих этих файлов.

Разметка физической памяти МУ формируется на основании таблиц или списков описаний параметров разделов памяти. Практически каждая фирма-производитель МУ имеет свою форму (структуру) этих таблиц. Тем не менее, все описания параметров разделов имеют много общего, что позволяет рассматривать их в едином контексте.

На основе таблиц описаний затем формируются файлы разметки памяти, которые в виде образов разделов прошиваются непосредственно в память МУ.
Читать полностью »

Вы когда-нибудь задумывались о том, как загружается компьютер? Независимо от аппаратуры и операционной системы, все компьютеры при загрузке используют или традиционный метод BIOS-MBR, или более современный UEFI-GPT, реализованный в последних версиях ОС.

В этой статье мы сравним структуры разделов GPT и MBR; GPT означает GUID Partition Table, а MBR — Master Boot Record. Начнём с того, что разберём сам процесс загрузки.

В следующих главах выделяются различия между стилями разделов GPT и MBR, в том числе приводятся инструкции, как осуществить преобразование между двумя стилями, и советы, какой из них выбрать.
Читать полностью »

Многим компаниям требуются сервера с высокопроизводительной дисковой подсистемой большой емкости, которая достигается за счет использования большого количества высокопроизводительных дисков. Имеем случай, когда компания использовала решение из 10 HDD с интерфейсом SAS емкостью 600 GB, организованных в массив RAID 50 (полезная емкость массива 600*8=4800 GB). Данный RAID 50 представляет из себя комбинированный массив, который рассматриваем как два массива RAID 5, объединенных в массив RAID 0. Данное решение позволяет получить более высокую скорость записи на массив в сравнении с обычным RAID 5 с таким же количеством дисков-участников, потому что для формирования блока четности требуется меньшее число операций чтения с дисков участников (скоростью расчета самого блока четности можно пренебречь в силу того, что он представляет весьма малую нагрузку для современных RAID контроллеров). Также в RAID 50 в некоторых случаях отказоустойчивость будет выше, так как допустима потеря до двух дисков (при условии, что диски из разных массивов RAID 5, входящих в данный RAID). В рассматриваемом нами случае со слов системного администратора произошел отказ 2 дисков, которые привели к остановке RAID массива. Затем последовали действия системного администратора и сервисного отдела компании продавца сервера, которые не могут быть описаны в силу сбивчивых и противоречащих друг другу показаний.
Читать полностью »

Наверняка почти у каждого пользователя ОС Linux и ОС Windows, а я имею в виду именно тех, у кого, в силу ряда причин, установлены обе системы, время от времени возникал вопрос: «А нельзя ли, черт возьми, придумать способ, с помощью которого можно было бы устанавливать эти системы в произвольном порядке? Без порчи настроек загрузчика?» Ведь если ставим сначала Windows а потом Linux всё хорошо — линуксовый загрузчик (например GRUB) обычно подхватывает bootmgr. Если ставить в обратном порядке то увы. Даже с использованием GPT + EFI. В случае с EFI нет опасности перезаписи MBR, зато таки есть один нюанс, который лично мне не нравится — установщик Windows в режиме EFI хоть и не перезаписывает сектора диска своим кодом, но зато переопределяет NVRAM, подсовывая туда путь к своему загрузчику. Так что функционал GBUB всё равно приходится восстанавливать. В настройках штатного установщика нет опций для кастомизации процесса установки загрузчика. А что если… не использовать стандартный установщик?! Ну, или почти не использовать…

Ручная установка Windows 7-8-8.1-10 в систему с загрузчиком GRUB2 - 1

И такой способ есть. И основан он на технологии установки Windows, которую мы имеем в её дистрибутивах начиная с «семерки». Способ работает для случая Windows версий 7/8/8.1/10, как в случае с MBR + BIOS системы, так в случае с EFI + GPT. Установить систему можно как в раздел HDD, так и на VHD. При этом функционал установщика нужен нам в общем-то для запуска программы настройки BCD-хранилища конфигурации загрузчика. Вместо установочного диска можно использовать загрузочный носитель на основе WinPE. Если бы утилитам bcdedit.exe и BootICE была *nix альтернатива, весь процесс развертывания системы можно было бы вообще выполнить в среде Linux.

Читать полностью »

Появляется такая задача не часто, но все-же, нужно преобразовать уже установленную систему, загружаемую в BIOS (или UEFI режиме) в UEFI режим (в BIOS соответственно).
Кому интересно, читаем далее:
Читать полностью »

Добрый день Уважаемые!

Решил написать небольшую заметку о своем печальном опыте в работе с дисками более 3Тб, GPT, UEFI. Цель простая — съэкономить чье то время. Запись будет без коррекции орфографии и пунктуации, поэтому заранее прошу прощения.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js