Протестировано с 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
: стирает диск / 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
chown -vR lfs $LFS
Эти скрипты необходимы для запуска от имени нового пользователя lfs
sudo su - lfs
$ALFS/scripts/build_toolchain.sh
$ALFS/scripts/build_temp-toolchain.sh
exit
Запуск от имени root с переменными среды, установленными ранее
sudo -E $ALFS/scripts/build_lfs.sh
Ниже приведено предупреждение о том, как я установил 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
Обновление настроек 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 в хост-системе может быть удален с sudo deluser lfsпомощью папки lfs user /home / lfs, которую также можно удалить. Требуется только создать первый набор инструментов.
Это может произойти, если вы пытаетесь загрузиться из 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/
Добавлены сжатые одностраничные версии в каталог книг