grub-0.97 не имеет возможности загрузки русских шрифтов, поэтому удобнее воспользоваться grub4dos_0.4.6a с загрузочных образов SSTR или SMBB


Но grub4dos_0.4.6a возможно использовать только с файловой системой не выше EXT3, иначе grldr не загрузится


Большинство загрузчиков (как минимум, grub-0.97 и grub2) по умолчанию устанавливают файл меню /boot/grub/menu.lst, поэтому для совместимости есть смысл аналогично выполнить и для grub4dos

После установки файлы grub4dos доступны в /usr/local/share/grub4dos

Первые два сектора (2 * 512 = 1024 байт) инициируются нулями (нулевой сектор - это 446 байт самого загрузчика + таблица разделов, а с первого сектора начинается MBR-helper)

Теперь необходимо создать, пометить активным и отформатировать раздел, используя подходящую файловую систему (ext2 или ext3)

tc@box:~$ tce-ab (search 'grub4dos')

tc@box:~$ sudo dd if=/dev/zero of=/dev/sda bs=1k count=1

tc@box:~$ sudo fdisk /dev/sda

...n p 1 a 1 t 83 w

tc@box:~$ sudo mke2fs -t ext3 /dev/sda1

Запись загрузчика: нулевой сектор - это 446 байт самого загрузчика + таблица разделов, а с первого сектора начинается MBR-helper. Поэтому запишем 446 байт, далее пропустив начальные 512 байт, записываем оставшуюся часть загрузчика

tc@box:~$ sudo dd if=/usr/local/share/grub4dos/grldr.mbr of=/dev/sda bs=446 count=1

tc@box:~$ sudo dd if=/usr/local/share/grub4dos/grldr.mbr of=/dev/sda seek=512 skip=512 bs=1

Остается скопировать в /boot ядро (vmlinuz) и файловую систему (core.gz) будущей операционной системы, в корень раздела скопировать grldr и создать файл меню /boot/grub/menu.lst

tc@box:~$ sudo mount /dev/sda1 /mnt/sda1/

tc@box:~$ sudo mkdir -p /mnt/sda1/boot/grub

tc@box:~$ sudo mount /mnt/sr0/

tc@box:~$ sudo cp /mnt/sr0/boot/core.gz /mnt/sda1/boot/

tc@box:~$ sudo cp /mnt/sr0/boot/vmlinuz /mnt/sda1/boot/

tc@box:~$ sudo cp /usr/local/share/grub4dos/grldr /mnt/sda1/

tc@box:~$ cat /mnt/sda1/boot/grub/menu.lst

timeout=2

default=0

title Tiny Core Linux

find --set-root --ignore-floppies --ignore-cd /boot/vmlinuz

linux /boot/vmlinuz quiet

initrd /boot/core.gz

Как вариант, запись загрузчика можно выполнить утилитой bootlace.com, которая идет в составе grub4dos

tc@box:~$ sudo bootlace.com /dev/sda

Кроме того, в комплекте grubinst-1.1 присутствует приложение grubmenu.exe, которое позволяет изменить меню загрузки самого grldr (это меню хранится обычным текстом в конце исполняемого grldr, поэтому можно воспользоваться любым редактором бинарных файлов)

 


Linux 5.15.0-70-generic #astra1+ci3 SMP Fri Mar 31 15:57:55 UTC 2023