Volgograd

Волгоград Linux User Group

Организована 23 ноября 2002 года

Проект заморожен Птн Июл 6 02:11:14 MSD 2012


Вход:  Пароль:  

ГраблеВодство/articles/CreateLinuxFlashRoute


Оглавление документа

О чем и зачем

Что нужно

  • ALTLinux Master 2.4 и выше.
  • собранный в этой системе hasher и hasher-priv
  • модифицированные скрипты radlinux
  • ide-flash размером не менее 128 Mb 
  • голова и прямые руки :)

Подготовка

Первым делом устанавливаем parent-систему на жесткий винт, настраиваем apt.
Прописываем себя в /etc/sudoers

Создаем где-нибудь на винте директорию buildroot, распаковываем туда install.tar.bz2 (положить сюда его).

install.tar.bz2

Содержимое:


Для нас интерес представляют только три файла: Makefile, functions и profiles/install/default

Содержимое Makefile


Скрипт functions



Содержимое profiles/install/default

Минимальный список пакетов нужный для нашей системы (список приведен для ALTLinux Master 2.4)


Как это работает

Заходим в наш buildroot и выполняем команду
Затем make.
В результате чего выполняются следующие действия:
Вызывается скрипт functions c передачей параметра profiles/install/default
В profiles/install/default как уже отмечалось ранее лежит минимальный список пакетов
В functions выполняются, следующие действия
  • удаляется папка install со старой системой, если такая была
  • создается install
  • создается локальная копия структуры apt (подробнее)
  • вызывается init_root
  • в init_root — apt-ом закачиваем пакеты указанные в profiles/install/default вместе с зависимостями
  • создается предварительная структура в новом buildroot'е для нормальной работы rpm mkdir -p $ROOT/{bin,etc/rpm,usr/lib/rpm,var/lib/rpm}
  • эти пакеты устанавливаются в $buildroot/install командой rpm -i --root $buildroot/install имя_пакета
  • потом вызывается инициализация rpm-базы в новой системе rpm --initdb --root $buildroot/install
  • выходим из init_root
  • удаляем лишнее из новой системы rm -rf $ROOT/{.in,/usr/share/doc,/usr/share/man,/usr/share/locale}
  • вызываем ldconfig в новой системе chroot $ROOT ldconfig
  • и типа на этом заканчиваем functions и возвращаемся в make
Далее по Makefile идет копирование файлов из hotfixes/default в install, что дает нам возможность, после каждого раза не править в новой системе такие файлы как sudoers и всякое такое...
Далее задаем в новой системе пароль для root'а, создаем пользователя comeinuser, чтобы иметь возможность зайти по ssh, ему тоже пароль придумываем. Меняем права на /bin/su, делаем мелкие правки и так далее.
Копируем содержимое buildroot/install на заготовленную флешку, делаем туда chroot, правим grub, делаем grub-install /dev/флешка. И вперед. Получаем систему на ~90 Mb. Нормальный роутер.