我想为大约 120 个用户安装 Ubuntu。但是使用 USB 和驱动器非常困难。
有什么建议么?
答案1
您可以安装一个 Ubuntu 系统(通常是 Ubuntu Server 系统,但不一定非要如此),然后将其用作服务器进行 PXE 引导并安装其他系统。客户端(您要安装 Ubuntu 的位置)上的 BIOS 必须支持 PXE(即网络启动) 才能正常工作。但如今大多数 BIOS 都支持此功能。
如果您已经设置好并且知道如何在非 Ubuntu 系统上配置必要的服务器,那么您也可以使用非 Ubuntu 系统作为主机来执行此操作。
这PXEInstallServer Ubuntu 帮助 wiki 文章解释如何将 Ubuntu 系统设置为 PXE 服务器,以及如何从该系统在其他系统上安装 Ubuntu。很难总结出要点——细节非常重要。因此,以下是整个内容(格式和标点符号略有更改):
介绍
这将指导您运行 Ubuntu 服务器作为 PXE 安装服务器。您需要在网络上运行 DHCP 服务器,不一定是此服务器,但您确实需要一个。
安装所需的软件包
您需要安装以下软件包:(
inetutils-inetd
以前netkit-inetd
),tftpd-hpa
(请参阅 安装软件)。
- 对于 Ubuntu 10.04, 有一个错误
inetutils-inetd
。它只监听 IPv6,而不监听 IPv4。作为一种快速解决方法,您可以改用openbsd-inetd
。如果这也将成为您的 DHCP 服务器,请安装包含在以下软件包中的 dhcp 服务器:(
dhcp3-server
请参阅 安装软件)。配置 tftpd-hpa
您需要告诉 tftpd-hpa 启动其守护进程(默认情况下不会启动)。为此,请编辑该
/etc/default/tftpd-hpa
文件,并确保它看起来像这样:#Defaults for tftpd-hpa RUN_DAEMON="yes" OPTIONS="-l -s /var/lib/tftpboot"
然后,运行启动脚本来实际启动守护进程:
/etc/init.d/tftpd-hpa restart
配置 dhcpd
如果你的 pxe 服务器也是你的 dhcp 服务器,你将需要如下内容
/etc/dhcp3/dhcpd.conf
:subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.200; filename "pxelinux.0"; }
如果您有现有的 dhcp 服务器,则应通过执行以下操作将其指向您的 pxe 服务器:
subnet 192.168.0.0 netmask 255.255.255.0 { <other config here> filename "pxelinux.0"; next-server <pxe host>; }
请务必重新启动 dhcp 服务器以使更改生效:
sudo /etc/init.d/dhcp3-server restart
配置 tftpd-hpa
tftpd-hpa
是从 调用的inetd
。因此,启动时传递给的选项tftpd-hpa
位于/etc/inetd.conf
默认设置对我们来说就足够了,你
/etc/inetd.conf
应该有一个如下的条目:tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
(尽管您可能需要编辑此文件并将其替换
udp
为udp4
,因为tftpd-hpa
现在似乎需要 IPv6 地址。)现在我们将从 Ubuntu CD 复制所需的文件:
sudo cp -r /media/cdrom/install/netboot/* /var/lib/tftpboot/
如果您的 dhcp 服务器发出正确的网络信息并且您的 pxe 客户端将具有网络访问权限,那么此时您将能够使用互联网存储库进行 Ubuntu 安装。
然而,我想更进一步,从安装服务器安装所有内容以及定制一些要安装的软件包。
安装 Apache
目前 nfs 安装还未得到很好的支持(如果我错了,请纠正我),所以我们将通过 http 安装。为此,我们的安装服务器上也需要一个 Web 服务器:安装以下软件包:(
apache
请参阅 安装软件)。复制 Ubuntu 文件
在新安装的 apache 文档根目录下创建一个 ubuntu 目录,并将 Ubuntu Alternate CD 的所有内容复制到该目录:
mkdir /var/www/ubuntu cp -r /media/cdrom/* /var/www/ubuntu/
自定义安装
有一个名为的软件包
system-config-kickstart
,它是创建 kickstart 文件的 GUI 前端。kickstart 文件告诉安装程序从哪里获取软件包、安装什么以及许多其他有用的设置。请参阅Kickstart兼容性了解更多信息。此软件包不必安装在您的安装服务器上,它可以安装在某个方便的 Ubuntu 桌面上。
ks.cfg
使用创建自定义system-config-kickstart
,确保在“安装方法”下指定 HTTP。提供安装服务器的 IP 并创建 HTTP 目录/ubuntu/
。保存文件并将其复制到安装服务器下的/var/www/html/
。一个非常简约的“ks.cfg”文件仅使用安装服务器上的安装文件并询问所有其他问题,可能如下所示:
install url --url http://192.168.0.1/ubuntu/
使用你的 ks.cfg
为了让您的网络 Ubuntu 安装能够使用您的 kickstart 文件,您必须告诉它在哪里找到它。编辑
/var/lib/tftpboot/pxelinux.cfg/default
并添加ks=http://<installserver>/ks.cfg
到附加行。它应该看起来像这样(请注意,附加行只有一行):label linux kernel ubuntu-installer/i386/linux append ks=http://192.168.0.1/ks.cfg vga=normal initrd=ubuntu-installer/i386/initrd.gz ramdisk_size=16432
根目录=/dev/rd/0 读写 --
在 Jaunty[可能还有后续版本,包括您可能使用的任何版本]1默认文件已被分解为包含文件。附加行位于
/ubuntu-installer/i386/boot-screens/text.cfg
:label install menu label ^Install (from my http server) menu default kernel ubuntu-installer/i386/linux append ks=http://192.168.0.1/ks.cfg vga=normal initrd=ubuntu-installer/i386/initrd.gz -- quiet
启动并安装
现在您应该能够通过网络在局域网上启动另一台电脑,并让其自动安装 Ubuntu。:) 您可以改变 tftp 和 http 安装点,以便在您的网络上安装多个版本的 Ubuntu。
直接使用 CD(或 .iso)
您也可以在不实际复制任何文件的情况下实现上述操作。您可以安装 CD(或 .iso),然后使用该
--bind
选项进行其他安装。这样做的好处是您可以升级 CD(或 .iso),而无需更新安装服务器文件。例如,将 CD(或 .iso)挂载到 后
/media/cdrom/
,您可以将 ubuntu 文件挂载到 web 目录:mount --bind /media/cdrom/ /var/www/ubuntu/
类似地,您可以对以下内容执行相同操作
tftproot
:mount --bind /media/cdrom/install/netboot/ /var/lib/tftpboot/
如果您要创建一个
pxelinux.cfg
包含适当默认文件的目录,则可以将其挂载到已挂载 CD 的顶部,以便 tftp 服务器提供您的 pxelinux.cfg/default 文件。例如,可以像这样挂载pxelinux.cfg
中的目录:~/pxelinux.cfg
mount --bind ~/pxelinux.cfg /var/lib/tftpboot/pxelinux.cfg
(请注意,在上面的例子中,目录的实际挂载点最终会变成
/var/lib/tftpboot/ubuntu-installer/i386/pxelinux.cfg
因为是pxelinux.cfg
CD(或 .iso)上的符号链接)。
—PXE安装服务器,格式、标点和大写字母略有变化,主要是为了适应 Ask Ubuntu 格式。
该文章来自Ubuntu 文档 wiki。它是由“Ubuntu 文档 wiki 贡献者”编写的,并且是领有牌照在下面版权声明:本文为转载,转载请保留本声明!,允许将其纳入此处,并附上适当的归属。
1[括号内的斜体文字]不是原文的;这是我的评论。
注意此方法与米奇建议的方法。该方法涉及从 CD/DVD 或 USB 闪存驱动器启动,然后通过网络安装系统。默认情况下,此网络是 Internet;为了使该方法合理地安装到网络上的数百台机器,您可能需要在网络上创建和托管 Ubuntu 存储库,并将您的安装指向该存储库。
这样做所需的工作量和基础设施与上述 PXE 启动机器所需的工作量和基础设施相当。因此,虽然这种方式可能满足您的需求,但如果您真的无需“物理介质”即可安装。
答案2
答案3
有很多方法可以实现这一点。
1 -网络启动
您必须根据自己的设置修改本 HOWTO 中的主机名和 IP 地址。此处描述的原则适用于除下文所述之外的其他 DHCP 和 TFTP 服务器;使用备用服务器软件留给读者练习。
有关如何使用 Windows 计算机作为 TFTP 和 DHCP 服务器的说明,请前往安装/WindowsServerNetboot。
本 HOWTO 将帮助您运行安装程序;如果您想执行 Ubuntu 的自动或无人值守安装,请参阅 Installation/LocalNet。
2 -本地网络
此安装方法利用 DHCP/BOOTP、TFTP 和 FTP/HTTP 获取安装源。安装程序本身由 Linux 内核和 initrd 组成。这些文件通过 DHCP/TFTP 引导过程传输。
其余安装源可以通过 FTP 或 HTTP 传输。如果目标计算机可以访问互联网,则可以直接从 Ubuntu 镜像中提取这些源。或者,您可以下载其中一个安装 ISO,将其回送安装,然后使用本地 HTTP/FTP 服务器提供它们。
3 -网络控制台
从 CD 启动(可以是 TFTP 或类似方式)并通过 SSH 安装系统。
4 -通过 SSH 快速安装
通过 ssh 在专用服务器上安装 Hardy Ubuntu 12.04 的快速指南。
查看完整文档服务器和网络安装
答案4
在安装 Ubuntu 18.04 LTS 时,对我有用的是基于伊莎贝尔·卡斯特洛 (Isabel Castello) 的指南,这似乎基于Ubuntu wiki 中的 LocalNet 指南,但对我来说更易读和易懂。
先决条件
您必须处于具有 3 个节点的网络中:
- 基本DHCP 路由器。
- 这目标服务器,即您想要安装 Ubuntu 的位置。它必须连接到路由器使用电缆(不是 WiFi)。并且显然在 BIOS 中支持网络启动。
- A来源服务器,它将提供初始安装文件和服务。本指南假设它也是 Ubuntu;其他操作系统当然也可以,但命令显然会有所不同。
脚步
确保启用网络启动在目标的 BIOS。
进入 BIOS 通常是在机器启动时按下或按住Del或来完成的。或者,按下通常会允许以某种特定于供应商的方式更改启动顺序,这可能会有所帮助。F2F12
找出以下值:
(您可能想要浏览/更改路由器找出其中的一些。另外,如果你设法进入网络启动启动阶段目标机器,它可能会至少显示MAC地址,这样你就可以记下来。)
- 这目标的 MAC 地址— 其网卡的属性,
- 这目标的 IP 地址— 由路由器,
- 这网关 IP— 换句话说,路由器的 IP,
- 这子网/网络掩码— 通常出现在来源的和/或路由器的网络设置。
安装和配置远程文件传输协议在来源主持人:
$ sudo apt-get install tftpd-hpa $ grep TFTP_DIRECTORY /etc/default/tftpd-hpa TFTP_DIRECTORY="/var/lib/tftpboot" $ wget http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/netboot.tar.gz $ sudo tar xzvf netboot.tar.gz -C /var/lib/tftpboot/ $ rm netboot.tar.gz
如果
grep
上面显示不同的路径,请相应地调整此步骤和下一步中列出的命令中的值。安装、配置和运行引导程序,同样在来源主持人:
笔记:将等值替换
$TARGET_MAC
为上述步骤 2 中收集的适当值。$TARGET_MAC
地址应以冒号(例如:)00:00:39:2B:54:B5
和$SUBNET_MASK
点号(例如)开头255.255.255.0
。$ sudo apt-get install bootp $ vim ./bootptab client: ha="$TARGET_MAC": ip=$TARGET_IP: gw=$GATEWAY_IP: sm=$SUBNET_MASK: td=/: hd=/: bf=pxelinux.0 $ sudo bootpd -d 4 -c /var/lib/tftpboot -s $PWD/bootptab
重新启动目标机器,同时确保网络启动功能已启用(F12如果需要请按,或不按,或根据 BIOS 的要求按)。
基于文本的交互式 Ubuntu 18.04 安装程序现在应该在目标机器上启动。继续正常安装 Ubuntu。
额外的:为了安全起见,安装完成后,应确保切换网络启动目标 BIOS 中的功能重新变为禁用状态。
希望这可以帮助!