Когда вам было лет 5-6 это умел каждый кто интересовался компами…
(MBR у HDD такой самый, и в те времена были даже заражающие его вирусы, так что каждый умел читать/писать/редактировать его с помощью всяких утилит типа Norton DiskEdit или даже просто в MS Debug)
Не могу я радоваться! Мои любимые игры: Wolfenstein 3D, Doom I и II, Duke Nukem 3D, Redneck Rampage. Правда они 16-ти битные, но все же! Денди и тоже любил.
За теоретическую (и асм-практическую) часть спасибо, интересно.
Но вот огород городить ради мультибута с флешки смысла не было. То же самое можно сделать, не разбивая её на разделы. Вручную или с помощью готового софта. Вот, например, WinSetupFromUSB делает это с помощью grub. У меня на флешке с её помощью разместились BartPE, Ubuntu 10.04 LiveCD, Windows XP и Windows 7. И добавил бы ещё кое-что, но место закончилось.
Правда,
Люди с техническим складом ума вообще много чего способны натворить, когда простое решение слишком… простое )
И это прекрасно. Иначе бы до сих пор на лошадях ездили, в лучшем случае.
Можно много интересных идей и знаний упустить, если каждый раз задумываться «а зачем?».
В свое время писал собственный загрузчик с проверкой пароля при включении компьютера до загрузки системы, так вот приобретенные знания помогли вручную восстановить «нечаянно» убитую таблицу разделов на ноутбуке, а написание «голых» программ на FASM пригодилось при создании шелл-кодов.
а вы случайно не подскажете как в такую флешку добавить еще несколько win7?
с хр это пролазит, а вот с седьмыми виндами чтото я копаюсь и пока неполучилось. перед выбором редакций при установке выдает ошибку
спасибо.
Насколько я понимаю, только на разные партиции.
Но существует специальный трюк. Если нужно несколько редакций одной битности — дистрибутив легко превращается в «универсальный», который при установки даёт выбрать редакцию. Так что в конечном итоге установщика нужно только два: x86 и x64.
Для этого нужно удалить из дистрибутива один файл, точное название не помню, но это гуглится.
надо подредактировать файл install.win удалить ненужные и экспортировать нужные редакции, но это костыль, правда работает
нагуглил еще один вариант, через imdisk но у меня что-то пошло не так и в итоге выдает ошибку. youtu.be/uaOmDS15ZWg?t=27s
Да вы извращенец, батенька!!!
Не буду углубляться в подробности, просто приведу в пример старую статью.
Первый раздел можно дополнительно форматнуть в FAT/NTFS и он будет читаться виндой, как вы и обещали толпе.
Не могу не упомянуть о замечательном опенсорсном MBR, который я всегда использую в таких случаях (пакет в Debian mbr, команда install-mbr). Ее функционал один в один совпадает с тем, что описано в топике.
А почему бы просто не проинсталить на флешку граб и кинуть на нее пачку iso фаилов. У меня так сделано + на том же разделе FreeDOS чтобы всякие системные утилитки можно было просто копированием туда добрасывать
товарищ господин, вот эти цитаты явно лишние, по-моему тут никому не надо объяснять как пользоваться fdisk и dd. вы просто бы диаграммку нарисовали, мол, в результате должно быть так.
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Отличная статья. Позволю себе добавить, что в открытой программе Testdisk есть возможность переписать mbr на свой, который позволяет выбирать раздел. Правда, там по умолчанию идёт загрузка с первого, а если не вышло — тогда отображается меню выбора, но это правится патчем пары байт.
Из статьи не понял смысла, зачем понадобился фокус с перемещением записей о разделах и форматированием очередного первого раздела. Не проще ли (раз уж всё равно залезли в Linux ради fdisk) в Линуксе же и отформатировать все три раздела командой mkfs.vfat?
P.S. Я тут не стал расписывать, как на такую флешку ставить операционки, но без подмены записей в partitions там тоже не обошлось, чтобы инсталляторы видели нужный раздел
Хотел как-то сделать флешку с двумя разделами и второй раздел выделить под Linux Live USB.
При том было требование — первый диск должен быть пустым (Windows вправе переформатировать диск)
Тогда я так и не смог сделать задуманное, видать терпения не хватило, забил и остановился на slax
Надеюсь когда нибудь процесс таких вот манипуляций с флешками упростится и придет в массы.
Упростить можно легко! Например, дробим fdisk`ом (нужен линь), затем переходим в Windows и с помощью утилиты (которую я планирую написать), автоматизированно выбираем какой раздел должен быть виден операционке. Делаем с этим разделом что хотим (форматируем, устанавливаем ОСи, интсалляторы ОСей, неполное форматирование не убивает MBR), а затем этой же утилитой переключаемся на другой. В конце просто отображаем список разделов и помечаем все той же тулзой активные. Собственно заливка кода загрузчика тоже на совести утилиты.
Но если уж совсем упростить, то можно и дробильную часть засунуть в утилитку, тогда удастся отказаться от Linux`а.
Вопрос в другом — какой части аудитории это интересно?
Пользуюсь случаем хочу спросить, а на USB 3.0 флешки этот метод подойдет?
У меня есть предположение, что скорость их работы будет низка (usb2.0) при загрузке с них…
Пока способ работы MBR неизменен, а он не менялся лет 100, этот способ работает и с флешками и со съемными жесткими дисками и даже с дисками, подключенными по SATA =)
Насчет скорости работы — а почему бы тогда скорости не опуститься до уровня USB 1.0? USB — интерфейс программно-аппаратный. В 3.0 заложены как железные решения увеличения пропускной способности, так и скорее всего разработан новый стек протоколов работы с ним. Я в этом направлении не копал, но думаю тут возникнет множество факторов, влияющих на скорость загрузки с флешки
Написанное, конечно впечатляет. У меня у самого была похожая ситуация, когда с одной флэшки надо было разные ОС ставить, вернее сначала ОС поставить а потом на флэшку clonezilla записать, чтобы образ снять.
Но я нашел путь попроще: />YUMI – Multiboot USB Creator Она распаковывает известные образы на флэшку и делает multiboot, а если ей образ неизвестен пробует его поставить ка iso на флэшку.
По поводу Windows и разделов флэшки: Деталей не помню, но в свое время когда была проблема загрузки Windows с флэшки, ее решали заменой драйверов для флэш накопителей и в итоге Windows видел влэшку как обычный HDD и соответствено все разделы.
Периодически нужно устанавливать систему, грузиться с live-CD.
С выходом GRUB2 эта задача упростилась несказано. Теперь есть возможность загрузить компьютер с iso-образов, которые лежат на флешке.
Для начала отформатируем нашу флешку:
#mkfs.vfat -n «rescue» /dev/sdb1
Если у нас несколько исошников — таким же образом прописываем и остальные.
Создаем каталог /mnt/boot/iso и копируем туда наш iso-образ.
Теперь отмонтируем флешку:
#umount /mnt/
И все. С нашей флешки можно загружаться.
Для добавления новых образов нужно только скопировать его в /mnt/boot/iso и дописать новый пункт в /boot/grub/grub.cfg на флешке.
Разве ISO образ при загрузке таким способом не копируется в память? Помню когда-то пытался делать такую флешку, но остановило предупреждение в статье что оно годно только для небольших ISO. Если у меня iso файл размером 7 гигов, а памяти 2, то как я понимаю ваш способ бесполезен?
AFAIK всё она видит, просто не монтирует автоматом (букву не назначает)
удём в Управление компьютером -> Управление дисками
назначаем дополнительным разделам буквы вручную
а большинство контроллеров usb-flash умеют аппаратно эмулировать отдельные устройства: несколько флешек, cd/dvd, флопик, только чтение
на flashboot.ru/ большая коллекция сервисных утилит для подобных мероприятий
Я перепрошил микроконтролер флешки с помощью какой то китайской проги, и теперь и винда и биос видит 2 флешки сразу. Они как отдельные устройства видятся.
Один раз у меня флешка заглючила, нашел программу для восстановления прошивки, и там были настройки позволяющие сделать 2 раздела. Названия не помню, тем более для разных флешек нужны разные проги, погуглите «восстановление флешек».
> Чтобы после загрузки BIOS компьютер начинал грузиться с флешки, один из ее разделов должен быть активным (значение первого байта в записи partitions 0x01)
Это в принципе вариант по умолчанию. Можно обойтись без активных разделов вообще, если прописать в MBR grub или lilo — те могут грузить любой раздел.
Но ваш вариант весьма изящен, да и работа на асме внушает уважение.
статья конечно занимательная с теоретической стороны, но как практическое решение я бы однозначно не стал применять. Вместо этого можно воспользоватся возможностями контролера на флешке(практически все современные умеют дробить флеш на разделы и они все будут видны в винде, а некоторые еще позволяют эмулировать USB-CDROM) или как уже выше написали воспользоватся GRUB
В общем ваши пожелания и предложения принимаются в комментариях.
Возможность запустить микроядро L4 Pistachio и несколько модулей к нему. GNU grub умеет и с флешки, но Ваше решение интересней. Т.е. хотелось бы поддержку Multiboot Specification в объёме, достаточном для загрузки Pistachio.
Наверное это уже наглость с моей стороны, но хочется также версию загрузчика для архитектуры ARM.
Кстати, первый раз вижу человека, который написал загрузчик для «чужих» операционных систем. Моё почтение.
С момента публикации статьи я из беззаботного студента успел превратится в запаренную лошадь, бегающую по 1000 и 1 работе в поисках счастья =) Если вдруг конечно у меня появится свободное время, то я капну в сторону этой вашей таинственной Pistachio. Хотя если стараться приближаться к поддержке сразу всех ОС и архитектур, то в конце концов можно нечаянно породить еще одного монстрика в духе GRUB
За теоретическую (и асм-практическую) часть спасибо, интересно.
Но вот огород городить ради мультибута с флешки смысла не было. То же самое можно сделать, не разбивая её на разделы. Вручную или с помощью готового софта. Вот, например, WinSetupFromUSB делает это с помощью grub. У меня на флешке с её помощью разместились BartPE, Ubuntu 10.04 LiveCD, Windows XP и Windows 7. И добавил бы ещё кое-что, но место закончилось.
Правда,
MBR для флешки своими руками или как сделать из одного устройства три