我们正在尝试使用 pxe 进行自动网络安装。
我们安装了网络启动工具 (14.04 LTS),并将 ubuntu-14.04-desktop-amd64.iso 内容提取到 http 服务器。我们发现必须下载缺少的存储库 main/debian-installer (约 50MB),这是网络启动安装所必需的,但它不包含在 iso 分发文件中。
安装过程开始,但在“下载安装程序组件”阶段失败,提示安装程序无法从镜像中下载文件。问题是“是否可以将 main/debian-installer 存储库添加到原始 ubuntu-14.04-desktop-amd64.iso 内容中,以及如何添加?”。我们想在没有互联网访问的情况下进行自动安装。
答案1
我认为您应该首先创建一个定制的 Ubuntu-14.04 的 Live DVD。
程序:
a- 从以下网址下载官方桌面 CDhttp://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
答案2
如果你想通过 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 Non-Windows Asset Information File
;-Boot/Install:
; Ubuntu LTS 14.04 Server / 12.04 Alternate
;-Tested on:
; 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
;-Require:
; \NWA_PXE\ offered as as HTTP root
;-Notes:
; -
[PXESERVA_MENU_ENTRY]
asset = Ubuntu LTS 14.04.1 Server
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
如果您想使用不同于 Serva 的其他 PXE 服务器执行此操作,您可能需要对前面的参数进行一些编辑。