Решил я собрать собственный LFS. Причин тут несколько:
- Давно хотелось и чесалось.
- Присутствует желание лучше понять устройство операционной системы.
- Нужно мигрировать с 32-битной архитектуры на 64. Инструкцию для Debian нашел, но лучше бы иметь запасную систему на всякий случай.
- У меня достаточно устойчивый набор программного обеспечения, поэтому есть представление о том, что именно мне нужно.
Следовать по возможности буду этим инструкциям, однако не повторяя их полностью. Иначе смысл сборки дистрибутива для себя полностью теряется. Насчет скорости процесса так же вопросы, ибо я ленив. Но думаю за месяц справлюсь.
Выделение раздела для системы
Я сделал достаточно просто – отмонтировал /home и отрезал от него 10 Гб места под root’ом программой GParted. Это достаточно простая и полезная программа:
Как вариант, можно загрузиться с live-cd той же Ubuntu и проделать те же манипуляции.
Подготовка к началу
Добавление глобальных переменных для пользователя
Предположим, что у нас в системе есть пользователь user. В файл /home/user/.bashrc занесём следующие строки:
- Точка монтирования устройства с собираемой ОС:
export LFS64="/mnt/x64lfs"
- Аббревиатура системы, на которой происходит сборка:
export LFS64_HOST="i586-cross-linux-gnu"
- Аббревиатура системы, для которой происходит сборка:
export LFS64_TARGET="x86_64-unknown-linux-gnu"
- Флаги компилятора, для целевой системы:
export BUILD64="-m64 -march=native"
- Включаем путь к приложения из в будующем созданной папки для пользователя:
PATH=/cross-tools/bin:$PATH
Теперь можно выйти из терминала и зайти в него снова, чтобы данные глобальные переменные обновились.
Монтирование раздела и создание папок
Теперь можно подключить раздел, подготовленный для будущей операционной системы:
#mkdir $LFS64 #mount /dev/XXX $LFS64
Где /dev/XXX – собственно раздел.
Затем необходимо создать несколько папок и сделать символические ссылки на корень системы:
- Для временной системы, на базе которой будет происходить сборка основной:
# mkdir $LFS64/tools # ln -sv $LFS64/tools /
- Для кросскомпилятора с x32 на x64:
# mkdir -v $LFS64/cross-tools # ln -sv $LFS64/cross-tools /
- Для исходных текстов программ:
# 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
На это приготовления заканчиваются, следующий шаг – сборка кросскомпилятора.