====== Сборка на базе Mageia (Mandriva) ====== ===== Надобно создать образ корневой файловой системы ===== mkdir /home/uf4n/myrootfs/ Так решается непонятная проблема с urpmi mkdir -p /home/uf4n/myrootfs/usr/lib64/gconv cp /usr/lib64/gconv/gconv-modules.cache /home/uf4n/myrootfs/usr/lib64/gconv Примонтировать некоторые системные каталоги для более корректной работы пакетного менеджера сначала создать будущие точки монтирования mkdir /home/uf4n/myrootfs/proc /home/uf4n/myrootfs/dev /home/uf4n/myrootfs/sys примонтировать всё что нужно mount -t proc none /home/uf4n/myrootfs/proc mount --bind /dev /home/uf4n/myrootfs/dev mount --bind /sys /home/uf4n/myrootfs/sys Установка базового набора (система будет без пакетного менеждера; только Bash и основные утилиты) urpmi bash net-tools iputils dhcpcd --force --root /home/uf4n/myrootfs/ Установка пакетного менеджера urpmi rpm-build wget urpmi --force --root /home/uf4n/myrootfs/ Чтобы установить систему на диск, нужен загрузчик, утилиты для разбивки и форматирования диска urpmi lilo e2fsprogs --force --root /home/uf4n/myrootfs/ Примечание: ядро тянет непонятные зависимости и установка в среде chroot проходит не совсем корректно. Надо устанавливать ядро по-другому. Из исходников. По идее, этого достаточно, чтобы установить систему (вручную) с работающим пакетным менеджером. umount /home/uf4n/myrootfs/dev umount /home/uf4n/myrootfs/sys umount /home/uf4n/myrootfs/proc Запаковать в архив образ корневой файловой системы cd /home/uf4n/myrootfs/ tar -cJf MyPreciousRootFS.tar.xz * ===== Установка на диск вручную ===== 1) Записать на одну флешку rescue-образ, на другую архив с файловой системой. 2) Отформатировать диск создать разделы на /dev/sda fdisk /dev/sda * Удалить все существующие разделы на диске, введя d и указав номер раздела. * Создать новый раздел, введя n. * Выбрать тип раздела (обычно p для основного раздела или e для расширенного раздела). * Ввести номер нового раздела. * Ввести начальный и конечный сектор раздела. Если надо использовать все свободное пространство, оставьте эти поля пустыми. * Записать изменения, введя w. отформатировать разделы mkfs.ext4 /dev/sda1 3) Распаковать архив с корневой ФС на диск и чрутнуться на него mkdir /mnt/n95 && mount /dev/sda1 /mnt/n95 && cd /mnt/n95 tar -xpJf ../MyPreciousRootFS.tar.xz 4) Написать /etc/fstab (/mnt/n95/etc/fstab) proc /proc proc nosuid,noexec,gid=proc 0 0 devpts /dev/pts devpts nosuid,noexec,gid=tty,mode=620 0 0 tmpfs /tmp tmpfs nosuid 0 0 /dev/sda1 swap swap defaults 0 0 /dev/sda2 / ext4 noatime 1 1 5) Чрутнуться mount -o rbind /dev /mnt/n95/dev mount -o rbind /sys /mnt/n95/sys/ mount -t proc none /mnt/n95/proc/ env -i TERM=$TERM SHELL=/bin/bash HOME=$HOME $(which chroot) /mnt/n95 /bin/bash source /etc/profile export PS1="(chroot) $PS1" 6) Указать пакетному менеджеру репозиторий "Прокинуть" сеть в среду chroot ifconfig enp0s20u2c2 down ifconfig enp0s20u2c2 up dhcpcd enp0s20u2c2 urpmi.addmedia yamirr https://mirror.yandex.ru/mageia/distrib/9/x86_64/media/core/release/ 7) Собрать ядро urpmi ncurses-devel flex bison cd /boot tar -xpJf linux-5.15.79.tar.xz cd linux-5.15.79 make defconfig make -j`nproc` cp arch/x86_64/boot/bzImage /boot/vmlinuz cd /boot gcc -Wall init.c -o /sbin/my_init 8) Перегенерировать initrd [[перегенерация_initrd|Перегенерация initrd]] 9) Установить загрузчик lilo [[установка_и_настройка_загрузчика_lilo|Установка и настройка загрузчика LILO]] 10) Настроить lilo на загрузку нужного ядра и init'a ===== Попытка сделать образ с apt оказалась неудачной ====== urpmi rpm-build --root /home/uf4n/myrootfs/ urpmi apt --root /home/uf4n/myrootfs/ ===== Примечания ===== * количество странных зависимостей, типа python и systemd повергает в шок! * пакетный менеджер написан на perl. Это плохо. ------------------------ Ссылки [[пакетный_менеджер_urpmi|Пакетный менеджер urpmi]] [[https://habr.com/ru/companies/ruvds/articles/702570/|Как самому за один вечер собрать минимальную ОС Linux из исходного кода | Хабр]]