Подробный гайд: собрать Debian своими руками
Сборка Debian «своими руками» — задача нетривиальная, потому что Debian не предназначен для компиляции «с нуля» (в отличие от LFS). Это дистрибутив, построенный на бинарных пакетах, репозиториях и автоматизированных сборочных системах. Однако вы можете создать минимальную систему, настроить её под себя и упаковать в установочный ISO. Ниже приведён практический, безопасный и официально поддерживаемый путь.
Важно: Все команды выполняйте в виртуальной машине или на тестовой машине. Не используйте результат на продуктивных системах без проверки.
Что значит «собрать Debian»?
- Минимальная система →
debootstrap - Кастомный установочный ISO →
live-build - Сборка отдельных пакетов из исходников →
dpkg-buildpackage/sbuild - Официальные установочные образы →
debian-cd(для разработчиков дистрибутива)
В этом гайде рассмотрим путь 1 + 2: создадим минимальную систему, настроим её и соберём загрузочный ISO.
Подготовка
# На хост-машине (Debian/Ubuntu)
sudo apt update
sudo apt install debootstrap debian-archive-keyring live-build \
qemu-system-x86 kpartx squashfs-tools
- Рекомендуется использовать Debian Stable или Testing на хосте.
- Выделите минимум
10 ГБсвободного места. - Все дальнейшие шаги можно делать в директории
~/debian-custom/.
Шаг 1. Создаём минимальную систему через debootstrap
mkdir ~/debian-custom/chroot
sudo debootstrap --arch=amd64 stable ~/debian-custom/chroot https://deb.debian.org/debian/
stable→ можно заменить наtestingилиbookworm/trixie.- Если нужно другое зеркало, укажите его вместо
https://deb.debian.org/debian/.
Шаг 2. Входим в chroot и готовим окружение
sudo mount --bind /dev ~/debian-custom/chroot/dev
sudo mount --bind /dev/pts ~/debian-custom/chroot/dev/pts
sudo mount --bind /proc ~/debian-custom/chroot/proc
sudo mount --bind /sys ~/debian-custom/chroot/sys
sudo mount --bind /run ~/debian-custom/chroot/run
sudo chroot ~/debian-custom/chroot /bin/bash
Внутри chroot:
export DEBIAN_FRONTEND=noninteractive
apt update
# Базовые настройки
echo "deb https://deb.debian.org/debian stable main contrib non-free non-free-firmware" > /etc/apt/sources.list
echo "deb https://deb.debian.org/debian stable-updates main contrib non-free non-free-firmware" >> /etc/apt/sources.list
dpkg-reconfigure tzdata # часовой пояс
locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8
Шаг 3. Устанавливаем ядро, загрузчик и базовые пакеты
apt install linux-image-amd64 grub-pc sudo openssh-server vim network-manager
grub-pcнужен только если вы планируете делать bootable образ на диск. Для ISO его можно не ставить.
- Настройка сети и пользователей:
passwd root
adduser --disabled-password --gecos "" youruser
usermod -aG sudo youruser
passwd youruser
echo "custom-debian" > /etc/hostname
echo "127.0.1.1 custom-debian" >> /etc/hosts
- Настройка fstab (для chroot достаточно):
echo "proc /proc proc defaults 0 0" > /etc/fstab
echo "sysfs /sys sysfs defaults 0 0" >> /etc/fstab
- Очистка:
apt clean
rm -rf /tmp/* /var/tmp/*
Выход из chroot:
exit
sudo umount ~/debian-custom/chroot/{dev/pts,dev,proc,sys,run}
Шаг 4. Собираем кастомный ISO через live-build
live-build — официальный инструмент Debian для создания live- и установочных образов.
mkdir ~/debian-custom/iso && cd ~/debian-custom/iso
lb config --distribution stable --architectures amd64 --bootappend-live "boot=live components quiet splash"
Настройка пакетов и конфигураций:
mkdir -p config/package-lists config/includes.chroot
echo "openssh-server vim sudo network-manager" > config/package-lists/custom.list
# Если хотите добавить файлы в образ:
cp ~/debian-custom/chroot/etc/hostname config/includes.chroot/etc/
# ... и т.д.
Сборка:
sudo lb build
После завершения в ~/debian-custom/iso/ появится live-image-amd64.hybrid.iso.
Проверка в QEMU:
qemu-system-x86_64 -m 2G -boot d -cdrom live-image-amd64.hybrid.iso
Бонус: Сборка отдельных пакетов из исходников
Если вам нужно собрать не систему, а конкретный пакет (например, patched nginx или custom kernel module):
sudo apt build-dep <package-name>
apt source <package-name>
cd <package-name-*>
dpkg-buildpackage -us -uc -b
sudo dpkg -i ../<package>*.deb
Для чистой сборки используйте sbuild или pbuilder (изолированное окружение, как у Debian Developers).
Официальная документация
| Задача | Ссылка |
|---|---|
debootstrap manpage |
man debootstrap |
| Live Build Manual | https://live-team.pages.debian.net/live-manual/ |
| Debian Developer Reference | https://www.debian.org/doc/manuals/developers-reference/ |
| Сборка пакетов | https://www.debian.org/doc/manuals/maint-guide/ |
Частые ошибки и советы
- Не компилируйте ядро вручную без необходимости →
linux-image-amd64уже оптимизирован, содержит патчи безопасности и модули. - Не редактируйте
/etcв chroot без бэкапов → используйтеdebconf-set-selectionsилиpreseedдля автоматизации. - ISO не грузится? → проверьте UEFI/Legacy режим, Secure Boot, наличие
grub-efi-amd64илиsyslinuxвlive-build. - Хотите репозиторий своих пакетов? →
repreproилиaptly. - Хотите Debian "с нуля" как LFS? → посмотрите на
debian-bootstrapилиguix/nixos. Debian так не работает по дизайну.
Итог
debootstrap→ минимальная системаchroot→ настройка, ядро, пакеты, пользователиlive-build→ упаковываем в ISO- Тестируем в VM, заливаем на флешку
dd if=live.iso of=/dev/sdX bs=4M status=progress
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.