YurinKonstantin / alfs

Automated Linux From Scratch (ALFS)

Home Page:https://github.com/mattwind/alfs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Автоматизированный Linux с нуля 10.0 (SysV)

Протестировано с Debian 10 Buster (Не мной). Ос собирается на ubuntu, но запусть образ на виртуалке или реальном железе не получается. Выдает: VFS: Cannot open root device "nvme0n1p5" or unknown-block(0,0): eror -6 Please append a correct "root=" boot option; here are the availabe partitionns: Kernel panic - not syncing: VFS: Uable to mount root fs on unknon-block(0,0)

Если кто найдет ошибку или сможет запустить ОС, то напишите решений

*Этот проект основан на официальной книге LFS 10.0

http://lfs.mirror.fileplanet.com/lfs/view/10.0/

Требования к пакету

Добавьте следующие пакеты

sudo apt install build-essential bison gawk git htop texinfo

Установите эти переменные среды

export LFS=/mnt/lfs
export ALFS=/mnt/lfs/alfs

Раздел LFS

: стирает диск / dev / sdb

Создайте новый раздел ext4 /dev / sdb1 (опция n) и сделайте его загрузочным (опция a)

sudo fdisk /dev/sdb

Смонтировать новый раздел ext4

sudo mkdir $LFS
sudo mount -t ext4 /dev/sdb1 $LFS

Подготовить хост

Возьмите файлы проекта alfs

sudo git clone https://github.com/YurinKonstantin/alfs.git $ALFS
cd $ALFS

Проверка необходимых программ

sudo $ALFS/version_check.sh

Загрузите исходный код цепочки инструментов из wget-list

sudo -E $ALFS/get_packages.sh

Настройка пользовательской среды LFS

sudo -E $ALFS/useradd_lfs.sh

Скрипт настройки пока работает неверно, после его выполнение необходимо произвести ряд изменений описанных https://lx4u.ru/rel/stable/prepare/add-user/ https://lx4u.ru/rel/stable/prepare/set-env/ Добавив изменение переменных.

Применение изменений source ~/.bash_profile

Выйдите из lfs exit

Предоставим пользователю lin полный доступ к каталогам будущей ОС

chown -vR lfs $LFS

Создание набора инструментов

Эти скрипты необходимы для запуска от имени нового пользователя lfs

sudo su - lfs 
$ALFS/scripts/build_toolchain.sh
$ALFS/scripts/build_temp-toolchain.sh
exit

Сборка системы LFS

Запуск от имени root с переменными среды, установленными ранее

sudo -E $ALFS/scripts/build_lfs.sh

Загрузчик Grub

Ниже приведено предупреждение о том, как я установил grub, находясь внутри укорененной системы LFS

Подумайте о том, чтобы прочитать книгу LFS для резервного копирования вашего загрузчика.

http://lfs.mirror.fileplanet.com/lfs/view/stable/chapter10/grub.html

: убедитесь, что вы находитесь в chroot
grub-install --root-directory=/ /dev/sdb
grub-mkconfig -o /boot/grub/grub.cfg

Настройки Tweaks

Обновление настроек grub по умолчанию

vi /etc/default/grub

Получите понятные сетевые имена eth0 и консоль qemu при загрузке.

GRUB_TERMINAL=console
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"

Не забудьте запустить grub-mkconfig, чтобы применить новые настройки grub по умолчанию.

grub-mkconfig

Дополнительные скрипты

Убедитесь, что заданы переменные среды LFS и ALFS и что раздел LFS смонтирован.

Повторно введите chroot и передайте раздел

sudo -E $ALFS/extras/chroot.sh /dev/sdb1

Эмулируйте систему LFS с помощью qemu (pass drive)

sudo -E $ALFS/extras/qemu.sh /dev/sdb

Примечания

Пароль root в системе с привязкой к LFS - root.

LFS Пользователь

Пользователь lfs в хост-системе может быть удален с sudo deluser lfsпомощью папки lfs user /home / lfs, которую также можно удалить. Требуется только создать первый набор инструментов.

Kernel Panic

Это может произойти, если вы пытаетесь загрузиться из qemu, а запись для root=/dev/???не является sda

Просто отредактируйте vi /boot/grub/grub.cfgи измените корневые ссылки на sda1

root=/dev/sda1

Когда я загружаюсь со своего физического сервера, мне пришлось установить его обратно на sdb1, потому что sda - моя основная установка Debian.

root=/dev/sdb1

Ссылки

Linux с нуля 10 Книга

http://lfs.mirror.fileplanet.com/lfs/view/10.0/

За пределами Linux из книги Scrach 10

http://lfs.mirror.fileplanet.com/blfs/view/10.0/

Добавлены сжатые одностраничные версии в каталог книг

About

Automated Linux From Scratch (ALFS)

https://github.com/mattwind/alfs


Languages

Language:Shell 100.0%