Syslinux: створення меню завантажувача
Мені захотілося зробити свій "рятувальний" LiveCD що б там було все що мені потрібно і нічого лішнего.В якості основи я вирішив взяти консольную версію SlavankaOS в якій вже майже все було, залишилося тільки додати пару програм і "прикрутити" меню. Ось на меню треба зупинитися детальніше. Я три роки року використовував RIPLinux як "рятувального" диска і точно знаю що мені потрібно від меню:
- щоб можна було завантажитися з ядер 32-біт і 64-біт,
- щоб був memtest86 +,
- детектор обладнання,
- щоб можна було пропустити завантаження з cdrom і завантажитися з жорсткого диска,
крім того познайомившись з функціоналом syslinux я вирішив додати можливість перезавантаження і виключення живлення комп'ютера. і ще мені потрібно було щоб система з таймаут сама завантажувалася, тому що часто доводиться перевіряти "голі" системник без моніторів і клавіатур через ssh.
Syslinux, крім того що він простий і ефективний завантажувач, забезпечує додатковий функціонал засобами невеликих програм не вимагають для роботи операційної системи. В Slackware-13.1 вони знаходяться в
Необхідно розуміти, що якщо isolinux призначений для роботи в файлової системі iso9660, де довжина імені файлу може бути досить довгою, то syslinux працює в файлових системах fat16 / fat32 і тут ім'я файлу обмежена dos-форматом 8.3, отже файли для завантажувача повинні відповідати цьому формату .
спершу скопіюємо необхідні модулі в робочий каталог livecd
cp -v /usr/share/syslinux/menu.c32 / tmp / livecd
cp -v /usr/share/syslinux/chain.c32 / tmp / livecd
cp -v /usr/share/syslinux/hdt.c32 / tmp / livecd
cp -v /usr/share/syslinux/reboot.c32 / tmp / livecd
cp -v /usr/share/syslinux/poweroff.com / tmp / livecd
Memtest86 + можна скачати з початкових кодів та зібрати, а можна скачати готовий з офіційного сайту
для визначника обладнання потрібні будуть файли зі списком модулів ядра
cp -v / lib / modules / `uname -r` / modules.pcimap / tmp / livecd
і списком PCI плат
DEFAULT menu.c32
PROMPT 0
TIMEOUT 300
MENU TITLE ---------------- SlavankaOS v.1 Recovery -------------------
LABEL linux32
MENU LABEL kernel 2.6.33.4 32-bit
MENU DEFAULT
KERNEL linux32
APPEND vga = normal initrd = rootfs.cgz root = / dev / ram0 rw vt.default_utf8 = 1 acpi_enforce_resources = lax
LABEL linux64
MENU LABEL kernel 2.6.33.4 64-bit
KERNEL linux64
APPEND vga = normal initrd = rootfs.cgz root = / dev / ram0 rw vt.default_utf = 1
LABEL memtest
MENU LABEL Memtest86 +
KERNEL memtest
APPEND -
LABEL hardware
MENU LABEL Hardware Detection Tool
KERNEL hdt.c32
APPEND modules_pcimap = modules.pci pciids = pci.ids memtest = memtest
LABEL mbr
MENU LABEL Skip CD-ROM Boot
KERNEL chain.c32
APPEND hd0 0
LABEL reboot
MENU LABEL Reboot
KERNEL reboot.c32
LABEL poweroff
MENU LABEL Power off
KERNEL poweroff.com