Решил я собрать собственный LFS. Причин тут несколько:

  • Давно хотелось и чесалось.
  • Присутствует желание лучше понять устройство операционной системы.
  • Нужно мигрировать с 32-битной архитектуры на 64. Инструкцию для Debian нашел, но лучше бы иметь запасную систему на всякий случай.
  • У меня достаточно устойчивый набор программного обеспечения, поэтому есть представление о том, что именно мне нужно.

Следовать по возможности буду этим инструкциям, однако не повторяя их полностью. Иначе смысл сборки дистрибутива для себя полностью теряется. Насчет скорости процесса так же вопросы, ибо я ленив. Но думаю за месяц справлюсь.

Выделение раздела для системы

Я сделал достаточно просто — отмонтировал /home и отрезал от него 10 Гб места под root’ом программой GParted. Это достаточно простая и полезная программа:
Интерфейс GParted

Как вариант, можно загрузиться с live-cd той же Ubuntu и проделать те же манипуляции.

Подготовка к началу

Добавление глобальных переменных для пользователя

Предположим, что у нас в системе есть пользователь user. В файл /home/user/.bashrc занесём следующие строки:

  1. Точка монтирования устройства с собираемой ОС:
    export LFS64="/mnt/x64lfs"
  2. Аббревиатура системы, на которой происходит сборка:
    export LFS64_HOST="i586-cross-linux-gnu"
  3. Аббревиатура системы, для которой происходит сборка:
    export LFS64_TARGET="x86_64-unknown-linux-gnu"
  4. Флаги компилятора, для целевой системы:
    export BUILD64="-m64 -march=native"
  5. Включаем путь к приложения из в будующем созданной папки для пользователя:
    PATH=/cross-tools/bin:$PATH

Теперь можно выйти из терминала и зайти в него снова, чтобы данные глобальные переменные обновились.

Монтирование раздела и создание папок

Теперь можно подключить раздел, подготовленный для будущей операционной системы:
#mkdir $LFS64 #mount /dev/XXX $LFS64
Где /dev/XXX — собственно раздел.

Затем необходимо создать несколько папок и сделать символические ссылки на корень системы:

  1. Для временной системы, на базе которой будет происходить сборка основной:
    # mkdir $LFS64/tools # ln -sv $LFS64/tools /
  2. Для кросскомпилятора с x32 на x64:
    # mkdir -v $LFS64/cross-tools # ln -sv $LFS64/cross-tools /
  3. Для исходных текстов программ:
    # mkdir -v $LFS64/sources # ln -sv $LFS64/sources /

Осталось дать пользователю user права на чтение и запись в этих папках:
# chown -v user $LFS64/tools # chown -v user $LFS64/cross-tools # chown -v user $LFS64/sources

На это приготовления заканчиваются, следующий шаг — сборка кросскомпилятора.

Навигация по записям