Программа для перевода (sys/iso)linux.cfg в lst-файлы - Дополнения - Основные Инструкции - Руководства - Мультизагрузочная Флешка Как сделать Загрузочную Флеш
Пользовательского поиска
Понедельник, 05.12.2016, 01:21
Приветствую Вас Гость | RSS
Главная | Руководства | Регистрация | Вход
Меню Проекта
Категории каталога
Форма входа
Логин:
Пароль:
Поиск
Мы Рекомендуем:
Мнение Общественности
Для каких целей вам нужна Мультизагрузочная флешка?
1. Для установки ОС
2. Для работы с HDD (Ghost, Acronis, и.т.д.)
3. Для диагностики железа
4. Для работы в загруженной с флешки ОС типа Windows
5. Для Саморазвития
6. Для переноса информации
7. Для работы в загруженной с флешки ОС типа Linux
8. Для несанкционированного доступа к запароленным компам
9. Для работы в загруженных с флешки других ОС
10. Просто, чтоб было
11. Мне она вообще не нужна
Всего ответов: 21610
Статистика

Всего на Сайте: 8
Гостей: 8
Пользователей: 0
GreenFlash
Главная » Статьи » Основные Инструкции » Дополнения

Программа для перевода (sys/iso)linux.cfg в lst-файлы
Программа для перевода (sys/iso)linux.cfg в lst-файлы

В одной теме меня спросили, как я "перевожу" конфигурационные файлы syslinux'а в lst-файлы. Я описал алгоритм и подумал, что он достаточно прост, чтобы его можно было автоматизировать.
AutoIt3 - язык достаточно простой, поэтому уже через час программа была готова. Её можно скачать в уже скомпилированном виде, вот здесь: http://narod.ru/disk/7398902000/menulst.exe.html.
Некоторые антивирусы ругаются на AutoIt-програмы (он запаковывает их UPX'ом, которого антивирусы почему-то боятся), поэтому, чтобы Вы не волновались, можете скомпилировать самостоятельно, скачав компилятор здесь.
Вот исходный код программы:
Code

; программа для перевода (sys/iso)linux.cfg в .lst файлы от grub4dos
; написана 5 апреля 2009 года
; допускаются любые виды распространения и использования
#NoTrayIcon
$file = FileOpenDialog("Выберите конфигурационный файл sys/isolinux", @WorkingDir, "Syslinux(syslinux.cfg)|Isolinux(isolinux.cfg)|Все файлы(*.*)")
If @error Then Exit
$hndl = FileOpen($file, 0)
If $hndl = -1 Then
  MsgBox(16, "Ошибка", "Не удалось открыть файл!")
  Exit
EndIf
$l = 1
Dim $data[1024]
Dim $ndata[1024]
$kernel = InputBox("Введите путь к ядру","Введите полный путь к файлу kernel относительно корня флешки, например, /slax/boot/kernel")
If @error Then Exit
$initrd = InputBox("Введите путь к initrd","Введите полный путь к файлу initrd отностельно корня флешки, например, /slax/boot/initrd.gz")
If @error Then Exit

; сообщить о чтании данных
SplashTextOn("","Чтение даных из файла...","300","20","-1","-1",1,"","","")

While 1
  $data[$l] = FileReadLine($hndl,$l)
  If @error = -1 Then ExitLoop
  $l = $l + 1
WEnd

; сообщить об обработке данных
SplashTextOn("","Обработка данных...","200","20","-1","-1",3,"","","")

For $i = 1 To $l
  Select
  Case StringInStr($data[$i],"#") > 0
  $ndata[$i] = $data[$i]
  Case StringInStr($data[$i],"label") > 0
  $ndata[$i] = Label($data[$i],$i)
  Case StringInStr($data[$i],"kernel") > 0  
  $ndata[$i] = Kernel($data[$i],$i)
  Case StringInStr($data[$i],"append") > 0
  $ndata[$i] = Append($data[$i],$i)
  Case Else
  $ndata[$i] = "#"&$data[$i]
  EndSelect
Next

Func Label($text,$number)
  $cut = StringInStr($data[$number],"label")+5
  Return "title "&StringTrimLeft($text,$cut)
EndFunc

Func Kernel($text,$number)
  $cut = StringInStr($data[$number + 1],"append")+6
  Return "kernel "&$kernel&" "&StringTrimLeft($data[$number + 1],$cut)
EndFunc

Func Append($text,$number)
  Return "initrd "&$initrd
EndFunc

$nfile = $file&".lst"
$nhnd = FileOpen($nfile,1)

; сообщить о записи данных
SplashTextOn("","Запись данных в файл "&$nfile&"...","250","20","-1","-1",3,"","","")

For $i = 1 To $l
  FileWriteLine($nhnd,$ndata[$i]&@CRLF)
Next

MsgBox(64,"Обработка завершена","Перевод завершён, результаты записаны в файл "&$nfile)
Категория: Дополнения | Добавил: Sh1td0wn (05.04.2009) | Автор: Иван
Просмотров: 3627 | Комментарии: 9 | Рейтинг: 5.0/6
Всего комментариев: 9
avatar
1
Cпасибо
avatar
2
biggrin пасиб чувак!, с помощью нее наконец запустил YLMF OS)
avatar
3
спасибо, полезная штука
avatar
4
Огромное спасибо biggrin
avatar
5
Спасибо!
avatar
6
так эта прога параметры загрузки ядра достает??
avatar
7
Вроде того. Рекомендую один раз постигнуть и действовать вручную, т.к. есть некоторые моменты, которые эта программа не обрабатывает.
avatar
8
Честно сказать я не вижу смысла в этой программе. Понять как переводить с (sys/iso)linux.cfg в lst-файлы очень просто. И если б люди не ленились, то за полчаса можно разобраться.
Лучше скажите мне как можно узнать всевозможные параметры того. или иного ядра? Ну т.е. часто вижу как в lst в параметрах загрузки ядра, люди добавляют что-то от себя. Вот как можно узнать какие вообще параметры можно добавлять? А ещё лучше и описание этих параметров, что какие дают и зачем их использовать. smile
avatar
9
ага, тоже интересно откуда берутся эти параметры...
avatar
Copyright GreenFlash © 2016
Рейтинг@Mail.ru