GRUB — Загрузка дискетных образов

Posted: 2015-08-07 in IT, Software
Метки:,

Задача: Есть тестовый стенд для жестких дисков (старый 433-й дохлерон + PCI-SATA-контроллер), на котором помимо линукса со всякими страшными тулзами (из которых особо опасны mkfs, parted, dd и особенно — hdparm ) иногда надо грузить дискетные образы с Victoria / MHDD или подобным низкоуровневым DOS-софтом. Можно, конечно, найти старый дисковод, положить рядом пачку дискет — но это медленно, ненадёжно, неудобно и криво.

Правильный путь — воспользоваться функциями загрузчика GRUB, который умеет необычайно гибко управлять загрузкой.

Образы дискет с MHDD / Victoria — мелкие, поэтому сперва кладём их в какой-нибудь каталог. Я положил в /boot/iso:
[root@XJIAM-1 /]# ls -lh /boot/iso
итого 5,7M
-rw-r--r-- 1 root root 1,5M ноя 30 2011 MHDD-4.6.img
-rw-r--r-- 1 root root 1,5M ноя 30 2011 Victoria-3.4.img
-rw-r--r-- 1 root root 1,5M фев 2 2015 Victoria-3.5.2.img
-rw-r--r-- 1 root root 1,5M ноя 30 2011 Victoria-3.5.img

Теперь надо просто добавить в /boot/grub2/grub.cfg (или лучше — в /etc/grub.d/40_custom или подобное) следующие строчки:
menuentry 'Virtual Floppy - Victora 3.5' {
linux16 /boot/memdisk floppy
initrd16 /boot/iso/Victoria-3.5.img
}

menuentry 'Virtual Floppy - Victora 3.4' {
linux16 /boot/memdisk floppy
initrd16 /boot/iso/Victoria-3.4.img

}

menuentry 'Virtual Floppy - MHDD 4.6' {
linux16 /boot/memdisk floppy
initrd16 /boot/iso/MHDD-4.6.img
}

То есть пишем название пункта меню, ядро — memdisk, в качестве образа начальной ФС — указываем дискетный образ. Ребутимся, и видим в меню загрузчика рядом с ядрами линукса и всякими аварийными режимами загрузки добавленные нами пункты. Загрузка занимает считанные секунды (максимум), и никакого диджейства флоппиками.

Аналогично этот самый memdisk умеет грузить бутабельные ISO-шки, лежащие файлами на линуксячьих разделах. Так что организовать локальную загрузку что доса, что виндовса, что образов болванок или дискет с помощью GRUB — довольно тривиально.

Пользуемся и радуемся.

Обсуждение закрыто.