Всё о MBR, Boot-Record, Геометрии дисков (флешек) - Дополнения - Основные Инструкции - Руководства - Мультизагрузочная Флешка Как сделать Загрузочную Флеш
Пользовательского поиска
Среда, 07.12.2016, 19:24
Приветствую Вас Гость | RSS
Главная | Руководства | Регистрация | Вход
Меню Проекта
Категории каталога
Форма входа
Логин:
Пароль:
Поиск
Мы Рекомендуем:
Мнение Общественности
Какую файловую систему на флешке вы предпочитаете?
1. NTFS
2. FAT-16/32
3. Ext-2/3
4. Другую
Всего ответов: 4907
Статистика

Всего на Сайте: 7
Гостей: 7
Пользователей: 0
GreenFlash
Главная » Статьи » Основные Инструкции » Дополнения

Всё о MBR, Boot-Record, Геометрии дисков (флешек)
Всё о MBR, Boot-Record, Геометрии дисков (флешек)

Так уж исторически сложилось, что после покупки флеш-брелков они форматируются как FDD, тобишь большая дискета. Ну и стандартные процедуры форматирования (по крайней мере та же WinXP) делают тоже самое, считают устройство дискетой и форматируют как дискету. Это важно! По сравнению с HDD дискета НЕ ИМЕЕТ MBR, таблицы разделов, а по первому сектору находится Boot-Record. Соответственно загрузиться с такого устройства можно ТОЛЬКО в режиме эмуляции FDD и все, других вариантов нет. А чтобы получить загрузочное устройство - нужно просистемить (вписать Boot-Record) дискету, т.е. загрузчик помещается в первый сектор.
Т.к. вам в большинстве случаев усиленно хочется установить grub4dos в MBR, то все очень просто - нет MBR, нет конфетки. Т.е. фигушки. Такое грузиться не будет ни при каких обстоятельствах. При необходимости получить именно загрузочную USB-дискету - вписывать загрузчик нужно в Boot-Record!!! И только в него. Но это не все, нужно будет также поправить grldr (HEX-edit'ором) или пересборкой grldr из исходников, с целью исключить из встроенного меню строку игнорирования поиска menu.lst с дискет.
Прочитать вышенаписанное 100 раз и осознать раз и навсегда. После осознания приходит логический вывод, лучше использовать режим эмуляции HDD, на котором я более подробно и остановлюсь.
Для начал читать тут:

Главная загрузочная запись
MBR под микроскопом
Master Boot Record (MBR)
Традиционная логическая структура жёсткого диска
Логическая структура жесткого диска

Если осилили, то значит уже сделан большой шаг))).
Как вы (я надеюсь) уяснили структуры организации FDD и HDD существенно отличаются и следовательно нет какого-либо иного способа получить USB-HDD, кроме как воссоздать структуру HDD на флешке.
Вот тут и начинается самое интересное. Заботясь о том, что пользователи бараны и не знают о том чего они хотят, Microsoft позаботилась о том, чтобы вы не смогли создать HDD-организацию данных, если устройство видимое Windows считается флопиком.
Какой можно найти выход из сложившейся ситуации?

1. Сказать операционке, что она работает с HDD и нивалнует)))
Hitachi Microdrive
После чего можно обычными методами бить флешку на разделы, форматировать и все будет хорошо.

2. Создать структуру через сторонние программы, которым пофигу то, что думает по поводу типа носителя Windows
HP USB Disk Storage Format Tool (HPUSBFW_Special)
Но другой вопрос насколько верно подобные утилиты воссоздают структуру и геометрию диска.

3. Сделать все ручками. Описывать не буду, слишком многа букаф.
Исходя из того, что структура размещения служебных данных меняется - нет безболезненного способа смены вида носителя HDD<->FDD без потери данных, т.к. многое нужно пересчитывать. Теоретически такую программу сделать можно, но нафиг никому (из тех кто знает как) не нужно.

Вот тут встает еще один интересный вопрос:

А чем поглядеть - правильно ли созданна структура служебных областей? Есть ли MBR? Что с Boot-Record? Как поживает Partition Table и все ли нормально с геометрией?
Вот вам ряд программ (ссылки давать не буду, искать лениво, гугл вам в помощь):

1. Acronis Disk Director
2. Paragon Partition Manager
3. WinHEX
4. Да в принципе что угодно, что позволит как минимум поглядеть в HEX-виде различные сектора диска, а в иделе сможет показать дешифрованную информацию, т.к. читать HEX-коды можно, но неудобно.

Итого, только в том случае, если вы знаете, что флешка со структурой данных HDD-типа, имеет смысл устанавливать grub4dos в MBR!!!
Ну где должен жить MBR вы уже в курсе? В первом секторе))), там где на FDD вместо этого живет Boot-Record. Интересуют именно 512 байт. Если представляете что и как - достаточно одного взгляда, чтобы точно и определенно сказать (поглядев в HEX-код) MBR перед вами или BR (Boot-Record).
Кстати, таблица разделов живет в тех же 512 байтах, т.е. настоятельно не рекомендую ручками переносить этот сектор с другого винчестера))). Править таблицу в таких случаях надо. Акронисы и некоторые другие программы умеют сами пересчитывать таблицу размещения, так что пользуйтесь ими.
На всякий случай, в очередной раз: прописать стандартную MBR можно:

1. Через консоль восстановления (fixmbr)
2. Из под Win98/Dos (fdisk /mbr)
3. Сторонними программами
4. Из предварительно созданной копии (тупо скопировать 512 байт в первый сектор)
5. Из любого другого MBR (но потом поправить Partition Table)
При этом предпочтение нужно отдавать более новым версиям MBR (Master Boot Record - тока щаз догадался, что до сих пор не расшифровал), т.к. они местами отличаются...

Назначение стандартного MBR достаточно простое - предварительная загрузка, определение активного раздела, передача управления на Boot-Record активного раздела.
Нестандартные MBR могут делать свои действия, и нестандартных MBR много))), практически все загрузчики пишутся в MBR перенакрывая стандартную функциональность и расширяя ее своей (grub4dos не исключение)
Но тут есть еще ряд проблем:

1. А фиг его знает как и что BIOS читает с MBR при старте с устройства или же BIOS может быть "заточен" под стандартный MBR и ниче другое (т.е. могут быть проблемы)
2. Тупо могут быть ошибки в коде нестандартного MBR (grub4dos тоже этим грешит, ошибки правятся, и не факт, что их сейчас нет или не появятся новые)
3. Пресловутая геометрия, о которой будет чуть ниже (и позже).

Достоинства помещения grub4dos или иного загрузчика в MBR - в большинстве случаев не нужен Boot-Record, т.е. он может быть поврежден или отсутствовать, при этом загрузчик сможет все равно работать (как пример: chainloder /ntldr - загрузка непосредственно лоадера { да, да... это тоже загрузчик))) } ntldr минуя Boot-Record)
Ну и еще одно достоинство - вроде как просто все это... и достаточно хорошо документировано.

Далее по программе непонятное слово "геометрия" применительно к дискам (флешкам).
Перечитать еще раз (а лучше несколько раз)
Главная Загрузочная Запись - Master Boot Record (MBR)
Когда компьютеры были маленькими, а о законе Мура особенно никто не задумывался, тогда была CHS))), и хотя щаз LBA, но наследие прошлого осталось. Кстати, человеку свойственно на одни и теже грабли наступать неоднократно, вот тому подтверждение:
LBA-48
Короче говоря, так уж исторически сложилось, что некоторые вещи поменять нельзя, и хоть есть более логичные и казалось бы очевидные способы адресации все до сих пор завязано на CHS (Cylinder-Head-Sector), т.е. цилиндр, головка, сектор. И даже не думайте искать на флешке цилиндры с головками. Биосу побарабану, они должны быть и они есть))).
Теперь вернемся к флешкам. Дело в том, что количество ячеек памяти на флеш-памяти конечно и дешифратор работает тоже с определенным набором адресов (ну с поправкой на блочный принцип доступа). Про трансляции рассказывать не хочу, да и это не важно. Просто уясните один факт: в MBR все в CHS, с учетом LBA-адресации и цифери должны быть там правильные, т.к. при попытке доступа за пределы флешки - ничего хорошего из этого не получится.
Более того, правильная геометрия нужна: для старта некоторых операционных систем, для правильной работы загрузчиков и менеджеров, для корректной работы программ модифицирующих ФС и разделы. Но в тоже время, некорректная геометрия не обязательно приведет к тому что у вас не будет грузиться что-либо))). Тут все зависит от того как повезет, как BIOS отработает и какую операционку вы стартануть пытаетесь.
Отчего возникают проблемы с геометрией? Дык напомню, изначально имелась флешка размеченная как флопик, а вы пытаетесь сделать из нее HDD (где как минимум есть смещение на границу головки для выравнивания, согласно некоторых стандартов, для примера 63 сектора [хотя не факт, может меняться]). Ну и далее вся пляска начинается от объема флешки, где высчитывается количество получаемых секторов, и расчитываются границы раздела.
Дык вот, после пересчета некоторыми программами (аля форматерами) вполне может получится что значения CHS "вылазят" за пределы флешки или наоборот не дотягивают до конца, и как итог: получаем CHS<>LBA разной степени тяжести. А они должны быть равны.
Что тут можно сделать?

1. Вручную пересчитать))) размер раздела и скорректировать таблицу так, чтобы все совпадало. Тяжело, но можно. Формулы пересчета глядеть по ссылке выше.
2. Воспользоваться чем-нить, что сделает расчеты для вас))). Ну как пример я знаю Partition Magic (есть на том же Хирене). Т.е. алгоритм действий (дубово простой, но рабочий):
а) Сначала уменьшаем последний (или единственный раздел) в каком-нить Акронисе или Парагоне
б) Загружаем Parition Magic и в нем расширяем до конца диска
Если не сделать шаг a) то Parition Magic при старте скорее всего ругнется на левую геометрию и попробует ее починить))). Иногда он чинит насмерть :). Если же вы подсунете уменьшенный раздел, то ругаться не должен, а растянет его корректно.

Да, кстати, про LARGE-адресацию забудьте. Это был неудачный мутант, которого сейчас найти проблематично.
И напоследок, в grub4dos последних версий появились дополнительные параметры к команде geometry --tyne --sync (рекомендую ознакомиться).
И как итог: надеюсь после прочтения этой части вы точно можете сказать что у вас все впорядке с геометрией???

Таааак...
Ну будем считать что на данном этапе у вас диск с правильной HDD-структурой и правильной геометрией диска.
Далее размышлизмы по поводу загрузчиков... Как уже писалось выше grub4dos в MBR может давать весьма странные эффекты на некоторых компьютерах (ошибки BIOS, ошибки grub4dos, ошибки User'а), посему моя личная рекомендация: оставьте MBR родным!!! Нефиг там делать grub4dos.
Но всеже перечислю варианты их плюсы и минусы:

1. grub4dos в MBR.
"+" - относительная простота установки, практически все утилиты пытаются его именно туда запхать, исключены промежуточные этапы в загрузке, т.е. Boot-Record раздела в принципе не нужен;
"-" - возможны проблеммы с совместимостью на материнках с кривым биосом.

2. Стандартный MBR и grub4dos в Boot-Record.
"+" - гораздо бОльшая совместимость с оборудованием,
"-" - более тяжело его туда вписать, необходимость контроля того чтобы загрузчик находился в активном разделе (критично если на флешке несколько разделов), выполняется двухэтапная загрузка MBR->Boot-Record.

3. Стандартный MBR и стандартный Boot-Record.
"+" и "-" практически все относящееся к пункту 2. Единственное, что grub4dos еще дополнительно нужно прописывать в boot.ini (плюс нужен ntldr в корне флешки) если загрузочный сектор у вас от NT, если от Win9x/Dos то лучше не морочить голову и вписать от NT )))

4. Стандартный MBR и патченый стандартный Boot-Record от NT.
Все то что для пункта 3, только можно обойтись без ntldr и boot.ini (патчится сектор на предмет замены ntldr на grldr), уточню, что просто переименовывать файл grldr в ntldr с неизменным загрузочным сектором не желательно. Может глючить.

5. Извращения типа Plop в MBR -> Grub4dos в Boot-Record и еще какая-нить хрень прикручена... (рассматривать извращения не буду: многабукаф,глюкаф и прочих особенностей).

Я просто не в состоянии расмотреть все комбинации установки и предугадать все нюансы ваших действий, поэтому следующая часть в картинках будет о том, как сделать работающую флешку по наиболее рабочему (на мой взгляд) методу используя то что есть под рукой (для того чтобы можно было показать в картинках).

Комментарии к картинкам))) :

1. Измывательства над флешкой начнем с того, что нафиг грохнем первые 128 секторов флешки (взято отболды, с запасом)


2. Совершенно нормально, что сейчас флешка не считается чем-то удобоворимым для операционки


3. Отформатируем ее стандартными средствами (шоб поглядеть что из этого получится)


4. Доформатировалась, щаз пустая.


5. Вот этот скрин интересен, обратите внимание на сектор 1 - MBR нифига там нету, и хотя в свойствах стиля раздела написано, что-то про MBR, но на практике в HEX-эдиторе видно, что это наглая ложь и провокация. Вот какую ерундень мы получим, если будем пытаться форматировать стандартными методами.


6. Акронис не хотит работать с FDD, он просто не показывает их как устройства для работы... Парагон в этом смысле более непревередливый. Плевать он хотел на тип устройства и флешка в нем отображается. Здесь я и подчищу сектор 1, чтобы видеть что в него будет вписано.
Внимание!!! После любых модификаций MBR или Boot-Record флешку обязательно "передернуть", т.е. отключить и потом подключить. Иначе механизм кеширования сыграет с вами неинтересную шутку и вы будете долго ломать голову - че происходит и почему что-то куда-то не пишется...


После передергивания флешки (напомню 1 сектор забит нулями) она уже не FDD, а просто неразмеченное блочное устройство, которое прекрасно разбивается на разделы и форматируется как HDD.


После форматирования (и "передергивания") акронис опознал флешу))) и уже соглашается с ней работать, собственно вы перед собой видите MBR, опознать сможете по характерным строкам.


В Boot-Record (CHS=0,1,1=63 сектор) какая-то фигня от Парагона))), возможно даже рабочая (не проверял).


Поскольку я не уверен в корректности MBR и Boot-Record, то поступаю очень просто:

1. Гружу консоль восстановления (если кто не в курсе ее можно установить на винчестер с помощью команды "путь к инсталлу winXP\I386\WINNT32.EXE /cmdcons")
2. fixmbr флешка (например fixmbr f:)
3. fixboot флешка (например fixboot f:)

Все, после этих действий я уверен, что имею стандартные MBR и Boot-Record. Как вы можете заметить - перезаписываетя не весь сектор))), маркеры остались от Парагона (ну и фиг с ними, потом на свои исправлю)


Как исправляются маркер и label раздела вы видите:


А вот тут (от нефиг делать я попробую новую утилю, которую до этого ниразу не тестировал, а заодно погляжу че она делает, т.е. совмещаю приятное с полезным)
Grub4DOS Toolbox for Windows, GUI installer for grub4dos
Собственно, как вы можете видеть я щаз поставлю grub4dos в BR раздела, а MBR оставлю стандартным.


Ну вброшу на флешку эмулятор и загрузчик grldr, а заодно (как описывал в теоретической части) поставлю активность на раздел


Окончательная доводка (всеже меняю маркеры), а то в прошлый раз отмену нажал))). Ну и заодно показываю че щаз в BR (63 сектор) и копии BR (которая находится в 69 секторе и содержит старый BR от Парагона). Найдите 10 отличий


Усе, запускаю эмулятор и гляжу геометрию новыми командами. Тут я еще и показал как ее отфиксить средствами grub4dos новой версии, но сам еще эту фичу особо не тестил, т.к. Парагон создал раздел с правильной геометрией, что меня несказанно удивило... Я пересчитал и все сошлось. Появляется уважение к разработчикам Парагона, т.к. после форматера от HP у меня всегда была "левая" геометрия которую приходилось править.

Вот и все... И если кто-то еще меня спросит - почему у него не стартует grub4dos, то вы уж извините. Буду посылать на юга и читать факинг мануалы.

P.S. Свою миссию я выполнил, если кто оформит статью - хвала ему и почет. Я этим безобразным делом заниматься (от природной лени) не буду.

Ну и добавлю от себя. KDn'у огромный РЕСПЕКТ за проделанную работу.
Если найдете где-то ошибки, пишите, будем исправлять :)

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



Источник: http://KDn
Категория: Дополнения | Добавил: npu3pak (19.03.2009) | Автор: Александр
Просмотров: 81385 | Комментарии: 27 | Рейтинг: 5.0/24
Всего комментариев: 271 2 »
avatar
1
Александр (npu3pak), вам тоже большое спасибо, сам я оформлением точно не занялся бы)))
avatar
2
Я использую кингстон и апасер ))там все супер и исправлять ничего не надо зачем забивать голову такой информацией если есть готовые 100 рабочие решения ???а так прочитал весьма познавательно)))
avatar
3
Я отвечу на ворос "зачем забивать голову такой информацией если есть готовые 100 рабочие решения ???"
Давайте возмем например вот такое:
Зачем эксковаторщику капать яму, когда есть уже готовые выкопанные?
Ну эт шутка. НО... всё это надо для того, чтобы понимали как всё устроенно и как всё работает. или проще говоря "Для повышения образованности"
avatar
4
Флешка JetFlash TS512MJF2B не получилось. Хотя на 2Гига и 8Гиговая пошла, от того же Transcend. Пробовал на ноутбуке. Определяется как USB-KEY. Пробовал на разных компьютерах. Скорее всего такая флешка. Уж больно старая.
avatar
5
спасибо при3раку! но утилитка Grub4dos toolbox не хочет записывать в br,может ей моя виста не даёт...как бы это обойти?
avatar
6
Почитал,нравится. Пытался делать все как сказано с простой USB-RM FDD (removable,так читается в биос у меня). И не идет,тоесть Grub грузится но не находит файл menu.lst потомучто он почемуто не определяет формат партиций флэшки(может чтото другое). Мне грузится консоль , после чего я пишу find --set-root /grldr и только тогда я уже могу пользоватся menu.lst и команда "root" мне показывает что моя флэшка это (fd0) NTFS.Буду узнавать у автора статьи как патчить grldr чтобы он искал menu.lst на usb-fdd tongue
avatar
7
Да кстати smile Писать надо не fixmbr f: а надо fixmbr \Device\Harddisk2 ( это пример,реально у вас буква флэшки может отличатся ) . Узнать какой у вас "Device" можно командой "map" из консоли восстановления (где вы и пишите fixboot и fixmbr)
avatar
8
Спасибо за статью, мне она очень помогла. smile
Хорошо, что проблема рассматривается в целом - от теории к практической реализации и с описанием основных "подводных камней".
А насчет "готовых 100 рабочих решений" - они хороши в типичных ситуациях. Если же дело доходит до тонкой настройки, как было в моем случае, то приходится вникать в подробности. Именно это и помогает сделать данная статья.
avatar
9
Вроде бы и не в ламер,а сисадмин. Все сделал как описано, один раз на вин 7, потом на ХР, не получилось ( В обеиx случаях при загрузке с флешки, пишет "NTLDR is missing" (((
Corsair Flash Voyager 32Gb
avatar
10
Все получилось, проблема была в Windows 7 ) На ХР все гуд
avatar
11
Огромное спасибо, все получилось и заработало, материнка Asus P5GC-MX/1333
Флешка Transcend V95 8Gb
avatar
12
Получил я подарок в виде NTLDR is missing. Патчинг BR на GRLDR не помог. Потом понял, что скачал какой-то левый grub4dos-0.4.5b-2010-10-03. Попробовал с grub4dos-0.4.4-2009-10-16 и все встало на свои места.
avatar
13
РЕСПЕКТ за проделанную работу smile
Однако не в каменном веке живем...
Все это делает программка FlashBoot которую можно хапнуть тут http://rghost.net/3209682
avatar
14
Quote

^V▐ FlashBoot is a tool to convert Windows XP/Vista/7 ▌^V
^V▐ installation CD/DVD to bootable USB disk, useful for Windows ▌^V

В статье идёт речь несколько о другом.
avatar
17
Also, using FlashBoot you can create blank bootable USB flash with minimal set of system files and then manually tune it for your needs, or convert a full-featured bootable CD-ROM or floppy disk to bootable USB Flash keeping all functionality. Different operating systems are supported: Windows 7/Vista, Windows XP, SysLinux-based disks, GRUB4DOS disks, Linux kernel etc.

И он делает HDD флэшку к тому же с правильной геометрией...
Если не опробовал функционал не выдергивай контекст неправильный smile

avatar
15
Quote ("npu3pak")
5. Вот этот скрин интересен, обратите внимание на сектор 1 - MBR нифига там нету, и хотя в свойствах стиля раздела написано, что-то про MBR, но на практике в HEX-эдиторе видно, что это наглая ложь и провокация. Вот какую ерундень мы получим, если будем пытаться форматировать стандартными методами.
Честно говоря в упор не вижу что первый сектор пустой..

А так же на скринах:
http://greenflash.at.ua/_pu/0/s19066.jpg
http://greenflash.at.ua/_pu/0/s90883.jpg
http://greenflash.at.ua/_pu/0/s57496.jpg
отличаются тока ID и label, т.е. по сути изменений не наблюдается..

Я канеш понимаю, что суть статьи как из фдд сделать хдд, тем более что у меня с флэхи все грузится и работает и в нтфс и в фат, но хотелось бы понять, то ли я не догоню, то ли скрины не особо корректны..?

avatar
16
> в упор не вижу что первый сектор пустой..
Я тоже.
Это не мешает MBR в нём отсутствовать.
avatar
18
Теоретически да могут быть данные не относящиеся к MBR, а практически в 1 секторе должны быть данные MBR (если это HDD) cool
Самому себе и своей статье не стоит противоречить... cool
avatar
20
Он и не писал, что MBR пустой или что-то подобное.
Он написал, что MBR там нет и это факт, т.к. в данном случае там сейчас PBR (Partition Boot Record).
Так что он не противоречит своей статье.
avatar
19
Спасибо, статья годная, по ней переделал свою флешку, теперь вроде с правильной геометрией cool
Ну и как бонус - используются стандартный MBR и BR от MS, никакого мусора, разве что в BR заменил NTLDR на GRLDR. Кстати говоря, на семёрке не нужно грузить консоль восстановления, можно просто достать из установщика винды (boot.wim) или восстановительной среды bootsect и ей воспользоваться.
avatar
21
Доброе время суток!
Приобрёл себе внешний USB HDD Verbatim Pocket Drive 1.8" 250GB в надежде сделать его загрузочным и в дальнейшем использовать, как большую загрузочную флешку. Поставил на него Grub4dos. Но к моему сложению не все биосы его видят, а те что видят не позволяют стартовать с него. cry
Может кто сталкивался с таким девайсом? Подскажите можно его как-то сделать загрузочным?
avatar
22
Вот если бы ещё видео урок создать было бы не плохо
avatar
23
как много букыв....
чем перечислять, какие программы в мире существуют, писать конкретные действия. а то принтскринов понаделали непонятно с чего
avatar
24
Если я поделил флешку на разделы акронисом и теперь она определяется как локальный диск , как сделать чтобы она вновь определялась как съемный носитель???
avatar
25
Это какие то старые данные GRUB4DOS прекрасно пишеться в MBR ФЛЭШКИ wacko
1-20 21-22
avatar
Copyright GreenFlash © 2016
Рейтинг@Mail.ru