boot раздел на флешке

Приветствую всех.

Ради интереса решил перенести загрузчик с жесткого диска (всё что в /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
Флешка - /dev/sdb с едниственной партицией /dev/sdb4 в ext4. Но с флешки загрузка опять не началась, а сразу с харда.
Попытался так:
grub-install --recheck /dev/sdb
Тот же результат((( Подскажите, что не так делаю? Или дургие способы реализации задуманного, хочется именно своими руками и встроенными "по умолчанию" в арч утилитами, без стороннего софта.

P.S.> С флехи грузиться умею (в BIOS'е все верно), именно с этой флешки ставил Арч.
bs=512
Вы заодно и список разделов перенесли. https://wiki.archlinux.org/index.php/Master_Boot_Record#Backup_and_restoration

Попробуйте лучше переустановить grub на диске, предварительно смонтировав флешку в /boot. Потом грузитесь с диска. Если не получится, ещё раз монтируйте флешку в /boot и ставьте grub уже на неё.
Попробуйте лучше переустановить grub на диске, предварительно смонтировав флешку в /boot.
В таком случае только grub установится в /boot, а MBR встанет на хард, а не на флешку, разве нет? + Если в таком случае у меня сам grub на флешке (/dev/sdb), а гружусь я с харда(/dev/sda), то каким образом флешка примонтируется в /boot?
А каким образом /boot монтируется, когда он на отдельном разделе? Если grub умеет читать разделы до того, как загружена операционка, почему бы ему и флешку не прочитать?
Я не очень понимаю, что вы делаете и зачем лезете dd в MBR.
Чтобы GRUB2 нормально установился в boot-раздел на флешку, надо смонтировать этот раздел в /boot, а потом уже устанавливать груб на флешку.
У меня комп так почти год работал, пока я не заменил IDE-винт через контроллер новым SATA-винтом прямо к материнке. Единственная разница – у меня флешка была действительно нужна, ибо грузиться с IDE через контроллер материнка отказывалась, а флешка была подключена не снаружи корпуса, а изнутри :)
Natrio
А не знаете случайно, как именно grub делает себе "памятку", где /boot искать? Если он в MBR пишет что-то вроде "/boot находится на hd(0,0)", то и мой вариант прокатить должен.
Наиболее вразумительное и последовательное описание работы загрузчика, собранное в одном документе, нашел здесь. Хоть и 2010 года, но суть вещей передает. В официальной документации замучаешься вылавливать тонкости процесса.
По сути вопроса: grub ищет /boot/grub там, где он находился во время выполнения grub-install. Эти сведения заносятся в загрузочные сектора.
По сути вопроса: grub ищет /boot/grub там, где он находился во время выполнения grub-install. Эти сведения заносятся в загрузочные сектора.
Так это понятно, вопрос в том, что именно он туда заносит: указатель на раздел, на сектор, ещё на что-нибудь? /boot ведь может и на другом физическом носителе находиться. А за ссылку спасибо, может быть когда-нибудь придётся разбираться с этим основательно.
Кажется, наткнулся. Если я правильно понял приведённое ниже, то использовать /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.
Если читать, то внимательно и все. А не выдергивать пару строк из контекста. MBR грузит core.img, который встраивается grub-ом в неиспользуемые файловой системой сектора (есть варианты), а вот этот core.img формируется динамически в момент инсталляции и содержит указатель на диск и раздел с /boot
Before 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 достаточно монструозен и наворочен, что бы не уметь поддерживать подобные прихоти.
 
Зарегистрироваться или войдите чтобы оставить сообщение.