Вопрос или проблема
Мы пытаемся выполнить автоматическую установку сети с помощью PXE.
Мы установили инструменты netboot (14.04 LTS) и извлекли содержимое ubuntu-14.04-desktop-amd64.iso на HTTP-сервер. Мы заметили, что нам нужно загрузить отсутствующий репозиторий main/debian-installer (примерно 50 МБ), который необходим для установки netboot, но он не включен в ISO-дистрибутив.
Процесс установки начался, но завершился неудачей на фазе “Загрузка компонентов установщика”, сообщив, что установщик не смог загрузить файл с зеркала. Вопрос: “Можно ли добавить репозиторий main/debian-installer в оригинальное содержимое ubuntu-14.04-desktop-amd64.iso и как это сделать?”. Мы хотим выполнить автоматическую установку без доступа в Интернет.
Считаю, что вам сначала следует создать индивидуальный live-dvd Ubuntu-14.04.
Процедура:
a- Скачайте официальный Desktop CD с http://releases.ubuntu.com/ (вы уже сделали это)
b- Переместите его в пустую директорию.
mkdir ~/livecdtmp
mv ubuntu-14.04-desktop-amd64.iso ~/livecdtmp
cd ~/livecdtmp
c- Смонтируйте и извлеките файловую систему .iso, а затем извлеките файловую систему SquashFS
mkdir mnt
mkdir extract-cd
sudo su
mount -o loop ubuntu-10.04-desktop-amd64.iso mnt
rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
unsquashfs mnt/casper/filesystem.squashfs
mv squashfs-root edit
cp /etc/resolv.conf edit/etc/
cp /etc/hosts edit/etc/
d- Подготовьте и выполните chroot
sudo su
mount --bind /dev/ edit/dev
chroot edit
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root
export LC_ALL=C
dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
e- Настройте, удалите все временные файлы и очистите временные файлы, используя команды:
sudo su
apt-get install package
apt-get remove --purge package
apt-get clean
apt-get autoremove
rm /etc/hosts
rm /var/lib/dbus/machine-id
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl
f- Отмонтируйте специальные файловые системы и выйдите из chroot
sudo su
umount /proc || umount -lf /proc
umount /sys
umount /dev/pts
exit
g- Создайте образ CD
sudo su
chmod +w extract-cd/casper/filesystem.manifest
chroot edit dpkg-query -W --showformat="${Package} ${Version}\n" > extract-cd/casper/filesystem.manifest
cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop
sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop
umount edit/dev
rm extract-cd/casper/filesystem.squashfs
mksquashfs edit extract-cd/casper/filesystem.squashfs -comp xz -e edit/boot
printf $(sudo du -sx --block-size=1 edit | cut -f1) > extract-cd/casper/filesystem.size
nano extract-cd/README.diskdefines
cd extract-cd
rm md5sum.txt
find -type f -print0 | xargs -0 md5sum | grep -v isolinux/boot.cat | tee md5sum.txt
mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-14.04-desktop-amad64-custom.iso
Источник: https://help.ubuntu.com/community/LiveCDCustomization
Если вы хотите установить PXE, т.е.
ubuntu-14.04.1-server-amd64.iso
ubuntu-14.04.1-server-i386.iso
без поддержки Интернета, пожалуйста, прочитайте, как это делает Serva здесь (я связан с разработкой Serva):
http://vercot.com/~serva/an/NonWindowsPXE3.html
;-Serva v2.1 Файл информации об активе для не-Windows
;-Загрузка/Установка:
; Ubuntu LTS 14.04 Сервер / 12.04 Альтернативный
;-Тестировано на:
; ubuntu-14.04.1-server-amd64.iso
; ubuntu-14.04.1-server-i386.iso
;
; ubuntu-12.04.4-alternate-amd64.iso
; ubuntu-12.04.4-alternate-i386.iso
;-Требования:
; \NWA_PXE\ предлагается как корень HTTP
;-Заметки:
; -
[PXESERVA_MENU_ENTRY]
asset = Ubuntu LTS 14.04.1 Сервер
platform = amd64
kernel = NWA_PXE/$HEAD_DIR$/install/netboot/ubuntu-installer/amd64/linux
;kernel = NWA_PXE/$HEAD_DIR$/install/netboot/ubuntu-installer/i386/linux
append = initrd=NWA_PXE/$HEAD_DIR$/install/netboot/ubuntu-installer/amd64/initrd.gz vga=788 mirror/country=manual mirror/http/hostname=$IP_BSRV$ mirror/http/directory=/$HEAD_DIR$ mirror/http/proxy="" live-installer/net-image=http://$IP_BSRV$/$HEAD_DIR$/install/filesystem.squashfs
;append = initrd=NWA_PXE/$HEAD_DIR$/install/netboot/ubuntu-installer/i386/initrd.gz vga=788 mirror/country=manual mirror/http/hostname=$IP_BSRV$ mirror/http/directory=/$HEAD_DIR$ mirror/http/proxy="" live-installer/net-image=http://$IP_BSRV$/$HEAD_DIR$/install/filesystem.squashfs
Если вы хотите сделать это, используя какой-то другой PXE-сервер, отличный от Serva, возможно, вам потребуется изменить некоторые из вышеперечисленных параметров.
Ответ или решение
Для автоматизированной установки Ubuntu 14.04 через PXE-сервер без доступа к интернету потребуется произвести дополнительные шаги, чтобы включить пакеты main/debian-installer
, которые отсутствуют в стандартном образе ubuntu-14.04-desktop-amd64.iso
. Ниже представлен пошаговый процесс, который поможет вам успешно настроить установку.
Шаг 1: Подготовка
-
Скачать ISO-образ:
Убедитесь, что у вас есть ISO-образ Ubuntu 14.04. Вы можете скачать его с официального сайта Ubuntu. -
Установить необходимые инструменты:
Убедитесь, что у вас установлены необходимые пакеты для работы с ISO, такие какgenisoimage
,squashfs-tools
,pxelinux
, иrsync
.
Шаг 2: Распаковка ISO-образа
-
Создайте временные директории:
mkdir ~/livecdtmp mv ubuntu-14.04-desktop-amd64.iso ~/livecdtmp cd ~/livecdtmp mkdir mnt mkdir extract-cd
-
Смонтируйте образ и перенесите содержимое:
sudo mount -o loop ubuntu-14.04-desktop-amd64.iso mnt rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd unsquashfs mnt/casper/filesystem.squashfs mv squashfs-root edit
-
Копирование конфигурационных файлов:
cp /etc/resolv.conf edit/etc/ cp /etc/hosts edit/etc/
Шаг 3: Настройка chroot
- Подготовьте среду chroot:
sudo mount --bind /dev/ edit/dev sudo chroot edit mount -t proc none /proc mount -t sysfs none /sys mount -t devpts none /dev/pts export HOME=/root export LC_ALL=C dbus-uuidgen > /var/lib/dbus/machine-id dpkg-divert --local --rename --add /sbin/initctl ln -s /bin/true /sbin/initctl
Шаг 4: Установка недостающих компонентов
-
Установите необходимые пакеты:
Здесь вы можете установить недостающие зависимости или компоненты, связанные с установкой. Например:apt-get install package
Убедитесь, что у вас есть доступ к локальным репозиториям или что все нужные пакеты включены в ваш ISO-образ.
Шаг 5: Создание нового ISO-образа
-
После завершения настройки выйдите из chroot и удалите временные файловые системы:
exit sudo umount /proc || sudo umount -lf /proc sudo umount /sys sudo umount /dev/pts
-
Подготовка нового образа:
sudo chmod +w extract-cd/casper/filesystem.manifest chroot edit dpkg-query -W --showformat="${Package} ${Version}\n" > extract-cd/casper/filesystem.manifest cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop sudo umount edit/dev rm extract-cd/casper/filesystem.squashfs mksquashfs edit extract-cd/casper/filesystem.squashfs -comp xz -e edit/boot printf $(sudo du -sx --block-size=1 edit | cut -f1) > extract-cd/casper/filesystem.size
Шаг 6: Создание CD-образа
- Создайте финальный образ:
cd extract-cd rm md5sum.txt find -type f -print0 | xargs -0 md5sum | grep -v isolinux/boot.cat | tee md5sum.txt mkisofs -D -r -V "Custom Ubuntu 14.04" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-14.04-desktop-custom.iso .
Шаг 7: Настройка PXE-сервера
Теперь, когда у вас есть новый ISO-образ с необходимыми пакетами, настройте PXE-сервер в соответствии с документом, который вы предоставили. Убедитесь, что все пути к файлам корректны и соответствуют вашей структуре каталогов.
Заключение
Теперь вы сможете устанавливать Ubuntu 14.04 через PXE без необходимости доступа в интернет, используя свой собственный модифицированный образ. Убедитесь, что все необходимые зависимости и пакеты включены в образ для успешной установки.