Rarog |
|
Темы:
10
Сообщения:
188
Участник с: 22 января 2013
|
Приветствую всех. Ради интереса решил перенести загрузчик с жесткого диска (всё что в /boot) на флешку, чтобы без флешки загрузиться было невозможно. Цель: в порядке загрузки BIOS ставим usb drive на первое место, с флешки стартует grub и дальше загружает арч, либо передает управление форточкам. Использовать флеху в роли ключа. Копировал текущее содердимое /boot на флешку и удалял его из /boot (boot кстати на отдельном разделе /dev/sda2), пытался загружаться с флешки, но BIOS просто проигнорировал флешку и начал загружаться снова с харда, где мне уже улыбалась консоль восстановления граба. Тогда, вернув всё в рабочее состояние, я решил, что на флешке нет MBR, которая бы передала управление грабу и сделал следующее: dd if=/dev/sda of=/home/andrey/MBR/mbr-backup bs=512 count=1 dd if=/home/andrey/MBR/mbr-backup of=/dev/sdb bs=512 count=1 Попытался так: grub-install --recheck /dev/sdb P.S.> С флехи грузиться умею (в BIOS'е все верно), именно с этой флешки ставил Арч. |
lampslave |
|
Темы:
32
Сообщения:
4801
Участник с: 05 июля 2011
|
bs=512Вы заодно и список разделов перенесли. https://wiki.archlinux.org/index.php/Master_Boot_Record#Backup_and_restoration Попробуйте лучше переустановить grub на диске, предварительно смонтировав флешку в /boot. Потом грузитесь с диска. Если не получится, ещё раз монтируйте флешку в /boot и ставьте grub уже на неё. |
Rarog |
|
Темы:
10
Сообщения:
188
Участник с: 22 января 2013
|
Попробуйте лучше переустановить grub на диске, предварительно смонтировав флешку в /boot.В таком случае только grub установится в /boot, а MBR встанет на хард, а не на флешку, разве нет? + Если в таком случае у меня сам grub на флешке (/dev/sdb), а гружусь я с харда(/dev/sda), то каким образом флешка примонтируется в /boot? |
lampslave |
|
Темы:
32
Сообщения:
4801
Участник с: 05 июля 2011
|
А каким образом /boot монтируется, когда он на отдельном разделе? Если grub умеет читать разделы до того, как загружена операционка, почему бы ему и флешку не прочитать? |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
Я не очень понимаю, что вы делаете и зачем лезете dd в MBR. Чтобы GRUB2 нормально установился в boot-раздел на флешку, надо смонтировать этот раздел в /boot, а потом уже устанавливать груб на флешку. У меня комп так почти год работал, пока я не заменил IDE-винт через контроллер новым SATA-винтом прямо к материнке. Единственная разница – у меня флешка была действительно нужна, ибо грузиться с IDE через контроллер материнка отказывалась, а флешка была подключена не снаружи корпуса, а изнутри :) |
lampslave |
|
Темы:
32
Сообщения:
4801
Участник с: 05 июля 2011
|
Natrio А не знаете случайно, как именно grub делает себе "памятку", где /boot искать? Если он в MBR пишет что-то вроде "/boot находится на hd(0,0)", то и мой вариант прокатить должен. |
kurych |
|
Темы:
0
Сообщения:
1394
Участник с: 06 ноября 2011
|
Наиболее вразумительное и последовательное описание работы загрузчика, собранное в одном документе, нашел здесь. Хоть и 2010 года, но суть вещей передает. В официальной документации замучаешься вылавливать тонкости процесса. По сути вопроса: grub ищет /boot/grub там, где он находился во время выполнения grub-install. Эти сведения заносятся в загрузочные сектора. |
lampslave |
|
Темы:
32
Сообщения:
4801
Участник с: 05 июля 2011
|
По сути вопроса: grub ищет /boot/grub там, где он находился во время выполнения grub-install. Эти сведения заносятся в загрузочные сектора.Так это понятно, вопрос в том, что именно он туда заносит: указатель на раздел, на сектор, ещё на что-нибудь? /boot ведь может и на другом физическом носителе находиться. А за ссылку спасибо, может быть когда-нибудь придётся разбираться с этим основательно. |
lampslave |
|
Темы:
32
Сообщения:
4801
Участник с: 05 июля 2011
|
Кажется, наткнулся. Если я правильно понял приведённое ниже, то использовать /boot на другом физическом носителе grub не может, потому что пишет в MBR только номер сектора, номер диска не указывает.An MBR image is generated (aka boot.img), and grub-setup writes it to the MBR area of the computer’s boot device. This generated image contains code to load a single hard-wired sector from disk, which itself contains an array of (sector,len) address ranges. The MBR code then iterates over this array loading all those sector ranges into memory. The single sector to load is the address of the first block in the core.img file, effectively loading file core.img from disk. |
kurych |
|
Темы:
0
Сообщения:
1394
Участник с: 06 ноября 2011
|
Если читать, то внимательно и все. А не выдергивать пару строк из контекста. MBR грузит core.img, который встраивается grub-ом в неиспользуемые файловой системой сектора (есть варианты), а вот этот core.img формируется динамически в момент инсталляции и содержит указатель на диск и раздел с /bootBefore writing to disk, core.img is modified to insert hard-wired values for the disk# and partition# of the filesystem on which /boot/grub exists, ie which it should mount using the linked-in filesystem driver.Так что можно и на другом физическом диске. Grub достаточно монструозен и наворочен, что бы не уметь поддерживать подобные прихоти. |