Грузимся с USB-драйва с помощью GRUB

Материал из Wiki.UnixForum.org

Перейти к: навигация, поиск

Грузимся с USB-драйва с помощью GRUB

В ветхозаветные времена GRUB широко использовался для того, чтобы делать загрузочные дискеты. Такие дискеты позволяли пользователям загружаться в любую ОС, лишь бы она распознавалась загрузчиком. Это очень помогало при восстановлении системы и при исправлении косяков в MBR (Master Boot Record - главная загрузочная запись). Время шло, сейчас у компьютеров часто вообще нет дисководов, но зато они могут загружаться с USB-дисков. GRUB естественным путём адаптировался к USB-винчестерам. Перед тем, как заставлять USB-накопитель загружаться с GRUB, сначала убедитесь, что он правильно отформатирован с поддерживаемой файловой системой (BSD FFS, DOS FAT16 и FAT32, Minix fs, Linux ext2fs, ReiserFS, JFS, XFS, и VSTa fs). Затем выполните следующие шаги под рутом или пользователем, который может запускать команды через sudo.

Первым шагом будет монтирование USB-диска. Во многих дистрибутивах устройства хранения USB монтируются автоматически, когда система распознает их. Если в случае с вашим дистрибутивом это не так, то нужно установить пакет sg3-utils, который предоставляет приложения для управления SCSI-устройствами. (Linux определяет USB-диски, как SCSI). Затем запустите

sg_scan -i

, чтобы отобразить список устройств. Найдите в этом списке то, которое описывает ваше устройство, и отметьте для себя к какому из /dev/sg* оно относится.
Запустите

sg_map

, чтобы узнать, как устройство фактически отображается на систему. Должно быть соответствие между /dev/sg* и /dev/sd* именами. На моей машине USB-драйв определяется как /dev/sda1, так что команды:

# mkdir /mnt/usb
   # mount /dev/sda1 /mnt/usb

будут монтировать в только что созданный каталог /mnt/usb устройство /dev/sda1.
Скопируйте загрузочные stage-файлы на ваш USB-диск. Stage-файлы -- это исполняемые файлы, которые входят в состав GRUB. Нужно скопировать именно те stage-файлы, которые подходят для используемой файловой системы на вашем USB-диске. В GNOME для определения файловой системы щелкните правой кнопкой мыши на иконке диска и выберите "Свойства" из меню; информация об используемой файловой системе есть на вкладке "Volume". Если не запущен GNOME, то можно определить файловую систему, используя fdisk
В итоге, должно быть скопировано три файла: stage1, stage2 и stage-файл для вашей файловой системы. (пример ниже использует e2fs stage-файл для файловой системы ext2). Как только эти файлы скопированы, вам нужно отмонтировать устройство, для того, чтобы создать MBR.

mkdir /mnt/usb/grub
   cp /boot/grub/stage* /boot/grub/e2fs_stage1_5 /mnt/usb/grub/
   umount /mnt/usb

Конечным шагом будет установка загрузочной записи на диск. MBR представляет собой 512 байт скрытой области на диске, зарезервированной специально для загрузки. Для установки MBR воспользуйтесь GRUB-шелл - простая командная оболочка, которая используется для связанных с GRUB задач.

grub
         grub> device (hd0) /dev/sda
         grub> root (hd0,0)
         grub> setup (hd0)
         grub> quit

device говорит GRUB'у, какое устройство использовать при обработке команд.
root устанавливает партицию, с которой GRUB будет грузится по-умолчанию. Это тот раздел, на который скопированы stage-файлы. GRUB начинает отсчёт не с единицы (1),а с нуля (0).
setup создает MBR на USB-драйве.
quit выводит вас из командной оболочки GRUB.
На данный момент GRUB установлен и можно загружаться с USB-диска. Когда вы загрузитесь, то окажетесь прямо в консоли GRUB. Для информации о том, что можно делать в этой командной оболочке обращайтесь к документации по командной строке GRUB.
Если вы, как в старые добрые времена, все же хотите использовать дискеты, убедитесь, что они отформатированы в FAT и замените везде, где встречается /dev/sda1 на /dev/fd0 и hd0 на fd0


Англоязычный источник: http://enterprise.linux.com/article.pl?sid=07/06/04/141244

Перевод: pktfag, литературная обработка: Juliette

Личные инструменты
see also