create iso boot debian
Добавлено: 30 апр 2026, 14:22
debootstrap создать загрузочный диск с нуля
Использование debootstrap — это классический путь создания чистой системы «с нуля» в стиле Debian/Ubuntu. Этот процесс сложнее, так как debootstrap создает только структуру файлов, а ядро и загрузчик нужно устанавливать вручную.
Вот пошаговый алгоритм создания минимального загрузочного ISO:
1. Подготовка окружения и базовой системы
Создадим рабочую директорию и развернем в ней минимальный Debian (например, bookworm):
bash
mkdir -p ~/live_build/chroot
sudo debootstrap --arch=amd64 bookworm ~/live_build/chroot http://debian.org
Используйте код с осторожностью.
2. Настройка системы внутри (Chroot)
Теперь нужно зайти «внутрь» будущей системы и установить ядро и загрузчик.
bash
sudo mount --bind /dev ~/live_build/chroot/dev
sudo mount --bind /proc ~/live_build/chroot/proc
sudo mount --bind /sys ~/live_build/chroot/sys
sudo chroot ~/live_build/chroot
Используйте код с осторожностью.
Внутри chroot:
Установите ядро и живую файловую систему:
bash
apt update
apt install --no-install-recommends linux-image-amd64 live-boot live-config
Используйте код с осторожностью.
Установите пароль root или создайте пользователя:
bash
passwd root
Используйте код с осторожностью.
Выйдите из chroot:
bash
exit
sudo umount ~/live_build/chroot/dev ~/live_build/chroot/proc ~/live_build/chroot/sys
Используйте код с осторожностью.
3. Создание сжатой файловой системы (SquashFS)
Live-диски Linux хранят систему в одном сжатом файле.
bash
mkdir -p ~/live_build/image/live
sudo mksquashfs ~/live_build/chroot ~/live_build/image/live/filesystem.squashfs -e boot
Используйте код с осторожностью.
4. Подготовка загрузчика (ISOLINUX)
Скопируйте ядро и initrd из вашей собранной системы в папку образа:
bash
mkdir -p ~/live_build/image/isolinux
cp ~/live_build/chroot/boot/vmlinuz-* ~/live_build/image/vmlinuz
cp ~/live_build/chroot/boot/initrd.img-* ~/live_build/image/initrd
Используйте код с осторожностью.
Скопируйте файлы ISOLINUX (из основной системы):
bash
cp /usr/lib/ISOLINUX/isolinux.bin ~/live_build/image/isolinux/
cp /usr/lib/syslinux/modules/bios/ldlinux.c32 ~/live_build/image/isolinux/
Используйте код с осторожностью.
Создайте конфиг ~/live_build/image/isolinux/isolinux.cfg:
text
DEFAULT linux
LABEL linux
KERNEL /vmlinuz
APPEND initrd=/initrd.img boot=live quiet
Используйте код с осторожностью.
5. Сборка ISO
Используем xorriso или genisoimage (как в предыдущем ответе):
bash
genisoimage -o custom_debian.iso \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-J -R -V "DEBIAN_LIVE" ~/live_build/image
isohybrid custom_debian.iso
Используйте код с осторожностью.
Что в итоге получится?
Вы получите ISO-файл весом около 300-500 МБ. При загрузке с него вы попадете в терминал чистой Debian-системы.
Важный нюанс: debootstrap по умолчанию не ставит сетевые утилиты и драйверы Wi-Fi. Если они нужны, добавьте network-manager в список apt install внутри chroot.
Вы планируете использовать этот образ для серверных задач или хотите добавить туда графический интерфейс?
В ответах искусственного интеллекта могут быть ошибки. Подробнее
create boot efi
Для создания EFI-загрузочного образа (в дополнение к BIOS или вместо него) процесс усложняется, так как UEFI не использует MBR или isolinux.bin. Ему нужен раздел FAT с EFI-загрузчиком (обычно GRUB).
Вот как модифицировать ваш процесс сборки для поддержки EFI:
1. Подготовка структуры файлов
Внутри вашей папки для образа (~/live_build/image) должна появиться структура для EFI:
bash
mkdir -p ~/live_build/image/boot/grub
mkdir -p ~/live_build/image/EFI/BOOT
Используйте код с осторожностью.
2. Создание EFI-загрузчика (grubx64.efi)
Вам нужно собрать автономный файл загрузчика GRUB, который будет искать конфиг на диске:
bash
grub-mkstandalone -d /usr/lib/grub/x86_64-efi/ -O x86_64-efi \
--modules="part_gpt part_msdos fat iso9660 search" \
--locales="" --fonts="" \
-o ~/live_build/image/EFI/BOOT/BOOTX64.EFI
Используйте код с осторожностью.
3. Создание образа FAT для EFI
Многие системы требуют, чтобы EFI-загрузчик находился внутри маленького образа файловой системы FAT внутри вашего ISO:
bash
# Создаем пустой файл на 4МБ
dd if=/dev/zero of=~/live_build/image/boot/grub/efi.img bs=1M count=4
# Форматируем в FAT
mkfs.vfat ~/live_build/image/boot/grub/efi.img
# Копируем туда наш загрузчик
mmd -i ~/live_build/image/boot/grub/efi.img ::/EFI
mmd -i ~/live_build/image/boot/grub/efi.img ::/EFI/BOOT
mcopy -i ~/live_build/image/boot/grub/efi.img ~/live_build/image/EFI/BOOT/BOOTX64.EFI ::/EFI/BOOT/BOOTX64.EFI
Используйте код с осторожностью.
4. Создание конфига GRUB
Создайте файл ~/live_build/image/boot/grub/grub.cfg:
text
set default=0
set timeout=5
menuentry "My Live Linux (EFI)" {
linux /vmlinuz boot=live quiet
initrd /initrd
}
Используйте код с осторожностью.
5. Сборка гибридного ISO (BIOS + EFI)
Теперь используем xorriso, так как он лучше справляется с комбинированными образами, чем старый genisoimage:
bash
xorriso -as mkisofs \
-iso-level 3 -full-iso9660-filenames \
-volid "LINUX_EFI" \
-eltorito-boot isolinux/isolinux.bin \
-eltorito-catalog isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
-eltorito-alt-boot \
-e boot/grub/efi.img \
-no-emul-boot -isohybrid-gpt-basdat \
-output my_linux_hybrid.iso \
~/live_build/image
Используйте код с осторожностью.
Ключевые отличия:
-e boot/grub/efi.img: Указывает путь к FAT-образу для загрузки UEFI.
-isohybrid-gpt-basdat: Позволяет образу загружаться с флешки на современных ПК с включенным Secure Boot (хотя для полной поддержки Secure Boot понадобится подпись образа и shim).
Grub вместо Isolinux: Для EFI стандартом является GRUB или systemd-boot.
Важно: Для выполнения этих команд вам понадобятся пакеты xorriso, grub-common, grub-efi-amd64-bin и mtools.
Использование debootstrap — это классический путь создания чистой системы «с нуля» в стиле Debian/Ubuntu. Этот процесс сложнее, так как debootstrap создает только структуру файлов, а ядро и загрузчик нужно устанавливать вручную.
Вот пошаговый алгоритм создания минимального загрузочного ISO:
1. Подготовка окружения и базовой системы
Создадим рабочую директорию и развернем в ней минимальный Debian (например, bookworm):
bash
mkdir -p ~/live_build/chroot
sudo debootstrap --arch=amd64 bookworm ~/live_build/chroot http://debian.org
Используйте код с осторожностью.
2. Настройка системы внутри (Chroot)
Теперь нужно зайти «внутрь» будущей системы и установить ядро и загрузчик.
bash
sudo mount --bind /dev ~/live_build/chroot/dev
sudo mount --bind /proc ~/live_build/chroot/proc
sudo mount --bind /sys ~/live_build/chroot/sys
sudo chroot ~/live_build/chroot
Используйте код с осторожностью.
Внутри chroot:
Установите ядро и живую файловую систему:
bash
apt update
apt install --no-install-recommends linux-image-amd64 live-boot live-config
Используйте код с осторожностью.
Установите пароль root или создайте пользователя:
bash
passwd root
Используйте код с осторожностью.
Выйдите из chroot:
bash
exit
sudo umount ~/live_build/chroot/dev ~/live_build/chroot/proc ~/live_build/chroot/sys
Используйте код с осторожностью.
3. Создание сжатой файловой системы (SquashFS)
Live-диски Linux хранят систему в одном сжатом файле.
bash
mkdir -p ~/live_build/image/live
sudo mksquashfs ~/live_build/chroot ~/live_build/image/live/filesystem.squashfs -e boot
Используйте код с осторожностью.
4. Подготовка загрузчика (ISOLINUX)
Скопируйте ядро и initrd из вашей собранной системы в папку образа:
bash
mkdir -p ~/live_build/image/isolinux
cp ~/live_build/chroot/boot/vmlinuz-* ~/live_build/image/vmlinuz
cp ~/live_build/chroot/boot/initrd.img-* ~/live_build/image/initrd
Используйте код с осторожностью.
Скопируйте файлы ISOLINUX (из основной системы):
bash
cp /usr/lib/ISOLINUX/isolinux.bin ~/live_build/image/isolinux/
cp /usr/lib/syslinux/modules/bios/ldlinux.c32 ~/live_build/image/isolinux/
Используйте код с осторожностью.
Создайте конфиг ~/live_build/image/isolinux/isolinux.cfg:
text
DEFAULT linux
LABEL linux
KERNEL /vmlinuz
APPEND initrd=/initrd.img boot=live quiet
Используйте код с осторожностью.
5. Сборка ISO
Используем xorriso или genisoimage (как в предыдущем ответе):
bash
genisoimage -o custom_debian.iso \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-J -R -V "DEBIAN_LIVE" ~/live_build/image
isohybrid custom_debian.iso
Используйте код с осторожностью.
Что в итоге получится?
Вы получите ISO-файл весом около 300-500 МБ. При загрузке с него вы попадете в терминал чистой Debian-системы.
Важный нюанс: debootstrap по умолчанию не ставит сетевые утилиты и драйверы Wi-Fi. Если они нужны, добавьте network-manager в список apt install внутри chroot.
Вы планируете использовать этот образ для серверных задач или хотите добавить туда графический интерфейс?
В ответах искусственного интеллекта могут быть ошибки. Подробнее
create boot efi
Для создания EFI-загрузочного образа (в дополнение к BIOS или вместо него) процесс усложняется, так как UEFI не использует MBR или isolinux.bin. Ему нужен раздел FAT с EFI-загрузчиком (обычно GRUB).
Вот как модифицировать ваш процесс сборки для поддержки EFI:
1. Подготовка структуры файлов
Внутри вашей папки для образа (~/live_build/image) должна появиться структура для EFI:
bash
mkdir -p ~/live_build/image/boot/grub
mkdir -p ~/live_build/image/EFI/BOOT
Используйте код с осторожностью.
2. Создание EFI-загрузчика (grubx64.efi)
Вам нужно собрать автономный файл загрузчика GRUB, который будет искать конфиг на диске:
bash
grub-mkstandalone -d /usr/lib/grub/x86_64-efi/ -O x86_64-efi \
--modules="part_gpt part_msdos fat iso9660 search" \
--locales="" --fonts="" \
-o ~/live_build/image/EFI/BOOT/BOOTX64.EFI
Используйте код с осторожностью.
3. Создание образа FAT для EFI
Многие системы требуют, чтобы EFI-загрузчик находился внутри маленького образа файловой системы FAT внутри вашего ISO:
bash
# Создаем пустой файл на 4МБ
dd if=/dev/zero of=~/live_build/image/boot/grub/efi.img bs=1M count=4
# Форматируем в FAT
mkfs.vfat ~/live_build/image/boot/grub/efi.img
# Копируем туда наш загрузчик
mmd -i ~/live_build/image/boot/grub/efi.img ::/EFI
mmd -i ~/live_build/image/boot/grub/efi.img ::/EFI/BOOT
mcopy -i ~/live_build/image/boot/grub/efi.img ~/live_build/image/EFI/BOOT/BOOTX64.EFI ::/EFI/BOOT/BOOTX64.EFI
Используйте код с осторожностью.
4. Создание конфига GRUB
Создайте файл ~/live_build/image/boot/grub/grub.cfg:
text
set default=0
set timeout=5
menuentry "My Live Linux (EFI)" {
linux /vmlinuz boot=live quiet
initrd /initrd
}
Используйте код с осторожностью.
5. Сборка гибридного ISO (BIOS + EFI)
Теперь используем xorriso, так как он лучше справляется с комбинированными образами, чем старый genisoimage:
bash
xorriso -as mkisofs \
-iso-level 3 -full-iso9660-filenames \
-volid "LINUX_EFI" \
-eltorito-boot isolinux/isolinux.bin \
-eltorito-catalog isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
-eltorito-alt-boot \
-e boot/grub/efi.img \
-no-emul-boot -isohybrid-gpt-basdat \
-output my_linux_hybrid.iso \
~/live_build/image
Используйте код с осторожностью.
Ключевые отличия:
-e boot/grub/efi.img: Указывает путь к FAT-образу для загрузки UEFI.
-isohybrid-gpt-basdat: Позволяет образу загружаться с флешки на современных ПК с включенным Secure Boot (хотя для полной поддержки Secure Boot понадобится подпись образа и shim).
Grub вместо Isolinux: Для EFI стандартом является GRUB или systemd-boot.
Важно: Для выполнения этих команд вам понадобятся пакеты xorriso, grub-common, grub-efi-amd64-bin и mtools.